If-Abfragen nicht hintereinander ausführbar
Übersicht

WhiteyBetreff: If-Abfragen nicht hintereinander ausführbar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute ![]() muss für ein Uniprojekt ein bissl was proggen. Man sollte dazu sagen das ich es nur als notlösung mache ![]() wie auch immer, hab mich so gut es geht selber eingearbeitet... klappt soweit auch ganz gut (dank robsite und einigen anderen tuts) Bis ich auf ein mir völlig unerklärliches Problem gestossen bin. Hab bestimmt schon um die hundert If-Abfragen in meinem Programm drin. Alle funktionieren sie wie sie sollen bis auf folgende: Code: [AUSKLAPPEN] If ImagesOverlap(cursoropen,MouseX(),MouseY(),d1, 120, 920) And GetMouse()=1 Then
buildstate=1 EndIf If buildstate=1 Then DrawImage d1,MouseX()+20, MouseY()+10 EndIf If buildstate=1 And MouseDown(2) Then Umgebung(MouseX()/50, MouseY()/50) = "12" buildstate=0 EndIf If ImagesOverlap(cursoropen,MouseX(),MouseY(),d2, 190, 920) And GetMouse()=1 Then buildstate=2 EndIf If buildstate=2 Then DrawImage d2,MouseX()+20, MouseY()+10 EndIf If buildstate=2 And MouseDown(2) Then Umgebung(MouseX()/50, MouseY()/50) = "13" buildstate=0 EndIf If ImagesOverlap(cursoropen,MouseX(),MouseY(),d3, 260, 920) And GetMouse()=1 Then buildstate=3 EndIf If buildstate=3 Then DrawImage d3,MouseX()+20, MouseY()+10 EndIf If buildstate=3 And MouseDown(2) Then Umgebung(MouseX()/50, MouseY()/50) = "14" buildstate=0 EndIf If ImagesOverlap(cursoropen,MouseX(),MouseY(),d4, 330, 920) And GetMouse()=1 Then buildstate=4 EndIf If buildstate=4 Then DrawImage d4,MouseX()+20, MouseY()+10 EndIf If buildstate=4 And MouseDown(2) Then Umgebung(MouseX()/50, MouseY()/50) = "15" buildstate=0 EndIf zusatzinfo: buildstate wird vor der schleife als buildstate=0 definiert Was funktioniert nicht? Er führt die ersten drei abfragen ohne problem durch, setzt den buildstate danach auch wieder auf 0 aber alle weiteren wollen nicht. Wenn ich jetzt aber die Reihenfolge ändere (sprich die nächsten drei) vor die ersten drei setze funktionieren diese einwandfrei, die nachfolgenden jedoch wieder nicht. Bisher wollte ich das immer alles selber lösen...aber da ich nur noch wenige Tage Zeit hab wird mir das zu riskant ![]() Und wenn ich so dreist sein darf ![]() hab bei der gleichen Abfrage noch ein Problem ![]() Und zwar funktioniert das ja momentan nur mit linksklick (getmouse=1) und dann rechtsklick(mousedown(2)) ... irgendwer ne Idee wie ich das mit zweimal linksklick hinkriege (so wie in nahezu jedem strategie spiel gebäude gebaut werden? Mfg Whitey Und schon mal vieeelen Dank im voraus!!!! |
||
- Zuletzt bearbeitet von Whitey am Do, Jul 24, 2008 21:36, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie kann ich Mausklicks richtig abfragen ? wird dir helfen (sofern sich getmouse![]() ![]() Ist buildstate nun Int oder String? buildstate=1 spricht für Int, buildstate="0" für String... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Whitey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi ![]() hab es mal mit mousehit versucht aber das wollte genauso wenig... das is aber nicht ganz so wichtig da werd ich mich schon reinfuchteln irgendwie... ausser irgendwer hat ne super einfach lösung^^ aber das wird schon ...vllt krieg ichs ja hin wenn ich mir nochmal das mouseclick faq anschau. wegen dem buildstate: da buildstate nur in den paar zeilen benutzt wird is das ja an sich egal...habs mal als string und mal als integer getestet beides reagiert gleich.... hab auch schon für jedes 3er Set der If Abfragen eigene Statenamen gegeben um auf nummer sicher zu gehen aber das hat auch nicht geholfen Edit: hab grade gesehen was du gemeint hast^^ die "0" sollte natürlich nur 0 sein... habs im ersten post geändert ![]() mfg Whitey |
||
![]() |
Blackside |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probier mal am anfang der Schleife Mousehit(1) zu definieren:
Code: [AUSKLAPPEN] While Not KeyDown(1) mh = MouseHit(1) If mh = 1 Then Print "Test" End If Wend und mit den buildstate würde ich nicht jeden einzelnen mit if abfragen sondern: Code: [AUSKLAPPEN] Select buildstate Case 1 ;Was wenn buildstate = 1 Case 2 ;Was wenn buildstate = 2... Default ;Wenn es keins von denen ist End Select |
||
Hier sollte eigentlich eine Signatur stehen! |
Whitey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey ![]() Aber ohne deinen Ansatz wär ich nicht auf die Lösung gekommen !!! muchos grazias!!! vielleicht nicht ganz optimal aber fürs erste reichts...und aufgrund des Zeitdrucks gehts nicht mehr anders... Aber ich hab schon wieder ein Problem (lol...da schreibt man mittlerweile tausende Zeilen code und dann haperts auf einmal hintereinander grrr) und zwar hat jemand eine Idee wie man folgendes Umsetzen kann (eigentlich müsste das einfach sein aber ich steh auf der Leitung: Achtung Pseudocode!!! Code: [AUSKLAPPEN] If Rechte Maustastegeklickt und gehalten und Maus sich in Richtung<x bewegt dann mache state=mauslinks
Else mache state=mausrechts Hoffe das versteht man... habs mit Mousespeed versucht und hab auch versucht die Mauspositionen miteinander zu vergleichen aber das wollte beides nicht... jemand noch ne idee??? mfg Whitey |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich glaube du meinst sowas:
Code: [AUSKLAPPEN] SetBuffer BackBuffer()
While Not KeyDown(1) Cls If MouseDown(1) And MouseXSpeed()<0 Then Text 0,0,"Links" : Else : Text 0,0,"Rechts" Flip Wend End Bei mir geht dieser Code. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group