Hi,
Ich habe einen Thread geschrieben, der ein Canvas über den Bildschirm fliegen lässt. Mit 4 Buttons auf dem Schirm kann der Benutzer selber bestimmen welche Richtung das Canvas einschlagen soll.
In der Mitte befindet sich noch ein zweites Canvas. Das kleine Flugcanvas soll jedoch nicht über das zweite Canvas können.
Meine Threadsyntax ist einfach so gelöst, dass ich in jedem Button die Richtung bestimme und in der Bewegungsschleife die Position ändere, je nachdem, welcher Button zuletzt gedrückt wurde.
Mein Code steht hier:
Mein Problem besteht nun jedoch leider darin, dass mein Bewegungscanvas sobald es gegen die Mauer fliegt stehen bleibt. Das ist zwar auch erstmals gut so, doch nun habe ich festgestellt, dass ich das Canvas danach garnicht mehr bewegen kann, selbst wenn ich den Button in Gegenrichtung drücke.
Das liegt daran, da ich schließlich jetzt, wo die If-Struktur sowiso immer "false" sendet mein Canvas eh nie wieder bewegt werden kann.
Ich möchte jedoch, dass dieser Fehler behoben wird.
Erst versuchte ich mein Problem damit zu lösen indem ich im elseteil abfragte welche der 4 IfBlöcke denn schuld daran sei, dass mein Canvas in den verbotenen Bereich gekommen ist.
Doch da in der Abfrage nur gefragt wird ob sich das Canvas im verbotenen Bereich befindet oder nicht, und nicht WO genau hat das nicht geklappt.
Hat jemand eine Idee?
cya
David
Ich habe einen Thread geschrieben, der ein Canvas über den Bildschirm fliegen lässt. Mit 4 Buttons auf dem Schirm kann der Benutzer selber bestimmen welche Richtung das Canvas einschlagen soll.
In der Mitte befindet sich noch ein zweites Canvas. Das kleine Flugcanvas soll jedoch nicht über das zweite Canvas können.
Meine Threadsyntax ist einfach so gelöst, dass ich in jedem Button die Richtung bestimme und in der Bewegungsschleife die Position ändere, je nachdem, welcher Button zuletzt gedrückt wurde.
Mein Code steht hier:
Code:
mauerx = mauer.getX();
mauery = mauer.getY();
mauerb = mauer.getWidth();
mauerh = mauer.getHeight();
if(y+10<mauery || y>mauery+mauerh || x+10<mauerx || x>mauerx+mauerb)
{
if(oben2==true)
{
y=y-speed;
}
if(unten2==true)
{
y=y+speed;
}
if(rechts2==true)
{
x=x+speed;
}
if(links2==true)
{
x=x-speed;
}
}
else
{
oben2=false;
unten2=false;
links2=false;
rechts2=false;
}
Mein Problem besteht nun jedoch leider darin, dass mein Bewegungscanvas sobald es gegen die Mauer fliegt stehen bleibt. Das ist zwar auch erstmals gut so, doch nun habe ich festgestellt, dass ich das Canvas danach garnicht mehr bewegen kann, selbst wenn ich den Button in Gegenrichtung drücke.
Das liegt daran, da ich schließlich jetzt, wo die If-Struktur sowiso immer "false" sendet mein Canvas eh nie wieder bewegt werden kann.
Ich möchte jedoch, dass dieser Fehler behoben wird.
Erst versuchte ich mein Problem damit zu lösen indem ich im elseteil abfragte welche der 4 IfBlöcke denn schuld daran sei, dass mein Canvas in den verbotenen Bereich gekommen ist.
Doch da in der Abfrage nur gefragt wird ob sich das Canvas im verbotenen Bereich befindet oder nicht, und nicht WO genau hat das nicht geklappt.
Hat jemand eine Idee?
cya
David