Selektieren eines Bildes, Fehler bei dem 2 und folgenden!
Übersicht

SmellGreenBetreff: Selektieren eines Bildes, Fehler bei dem 2 und folgenden! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich probiere momentan ein bisschen mit Blitzbasic rum. Ich möchte gerade mit der Taste "K" ein neues Bild "spawnen" lassen und es dann per linksklick auswählen und mit einem rechtsklick bewegen lassen. Dies Funktioniert auch, aber immer nur beim ersten Bild. Liegt das vielleicht daran, dass wenn man auf das 2 Bild klickt, die Forschleife aber grade bei dem 1 Bild ist, dass ein False dabei herauskommt? Hier mal der Code: Code: [AUSKLAPPEN] Graphics 1280,720
timer = CreateTimer(60) run = True mx = 0 my = 0 tank = LoadImage("tank.png") tank_click = LoadImage("tank_click.png") Type tank Field x Field y Field state Field walkx Field walky End Type While run = True Cls mx = MouseX() my = MouseY() If KeyHit(1) Then run = False If KeyHit(37) t.tank = New Tank t\x = 100 t\y = 100 EndIf For t.tank = Each Tank Text 0, 100, t\x + " | " + t\y Select t\state Case 0 DrawImage(tank,t\x,t\y) Case 1 DrawImage(tank_click,t\x,t\y) End Select If MouseHit(1) If RectsOverlap(t\x,t\y,50,50,mx,my,1,1) Select t\state Case 0 t\state = 1 Case 1 t\state = 0 End Select EndIf EndIf If MouseHit(2) If t\state = 1 t\walkx = MouseX() t\walky = MouseY() EndIf EndIf If t\x < t\walkx Then t\x = t\x + 1 If t\x > t\walkx Then t\x = t\x - 1 If t\y < t\walky Then t\y = t\y + 1 If t\y > t\walky Then t\y = t\y - 1 Next Flip WaitTimer(timer) Wend End |
||
![]() |
Triology |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey,
Ich würde deine objekte in ein Array laden und diese durch eine Id identifizieren, wodurch du auch einfacher ein Objekt selektieren lassen kannst. MfG, Triology |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vergiss das Array, Types sind wesentlich dynamischer, da bist Du schon auf dem rechten Weg. Der Fehler liegt darin dass Du Maushit in der Schleife abfragst, und das liefert in der Tat nur beim ersten Durchgang true, danalch wird es auf null gesetzt. Frag Mousehit vor der Schleife ab und lass Die Schleife nur anlaufen wenn es true war. Dann checkst Du in der Schleife die Koordinaten und vergleichst sie mit den Mauskoordinaten ob das zum aktuellen Tank passt und bewegst dementsprechend. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
SmellGreen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke,
Jetzt geht es, ich hatte mir das mit der For Schleife schon gedacht, aber manchmal kommt man einfach nicht auf die einfachsten Ideen. Danke BladeRunner! ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group