X Achse in 10er Schritten

Status
Nicht offen für weitere Antworten.

Chrisi

Mitglied
Hallo zusammen,

ich suche nach einer Lösung meine Rakette in 10er Schritten auf der X-Achse zu bewegen, die breite des
Spielffeldes beträgt 400px.

Das knifflige dabei ist das ich die aktuelle X Position der Maus abfrage und anhand dessen die Bewegung meiner Rakette auf der X Achse festlege.

Nun möchte ich vermeiden das die Rakette z.B. 5 px oder 1 oder 7 etc ... mitgeht, sondern sie soll nur volle 10er Schritte machen.

Meine Idee wäre jetzt immer eine if() Abfrage zu machen ob der x Mauswert irgendwo zwsichen einem 10er liegt:

Code:
if(Xmaus zwischen 10px)
{
  set_x = 10;
} 
if(xmaus zwischen 20px)
{
  set_x = 20;
}

u.s.w.... um die 10er schritte zu realisieren.

Allerdings halte ich das nicht für besonders klever und auf dauer auch nicht besonders dynamisch, falls sich mal die größe des Spiefeldes ändert oder sowas.

Kennt jemand vieleicht dieses Problem oder hat jemand vieleicht einen Tipp wie ich das sinnvoll lösen kann ?

Viele Grüße und danke,

Chrisi
 

nagash56

Aktives Mitglied
Also weiss jetzt nicht ob ich dich richtig verstehe aber du könntest das mit einer Ganzzahldivision lösen.
Dazu muss die X-Koordinate der Maus ein Integerwert sein.

Code:
int a = x_maus / 10;
set_x = a * 10;

Angenommen x_maus ist jetzt 53. Dann liefert die erste Division den Wert 5... und dann mit 10 multipliziert die Position 50. Wenn du es in dem Fall lieber auf 60 hättest einfach set_x = (a + 1) * 10;
 
M

mr1st

Gast
Hallo,

wenn Du zB 12 pixel hast, kannst du durch 10 dividieren. Wenn die Variablen Integerwerte sind, werden die Nachkommastellen "weggeschmissen". Du erhältst also als Ergebnis 1. Wenn Du das jetzt wieder mit 10 multiplizierst, erhältst Du statt anfangs 12 pixel nur 10 pixel.

Also alles zw. 10 und 19 pixel ergibt 10.

Code:
int pos = ((int)xmaus/10)*10;

MfG


Edit: Zu spät :wink:
 

Chrisi

Mitglied
huhu,

danke für eure antworten, werde das gleich mal einbauen, da habe ich mit meiner if abfrage ja ein großes fass aufgemacht *g* ...

viele grüße,

chrisi
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben