Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.01.2011, 13:35

Array Koords vom Rand berechnen

Hallo @ all,

ich hätte da eine kurze Frage. Ich komme einfach nicht auf die Lösung-.-
Ich hab ein 10x10 Feld in einem Fenster. Die Felder sind 40px hoch und breit.
Wenn ich z.B. auf das Feld 5,5 klicke bekomme ich die Pixel z.B. 655, 233.
Das Feld ist 40px vom oberen Rand entfernt und 470px vom linken.

Aber wie berechne ich, dass das eben das 5,5 Feld ist?:s
Das müsste doch eig. ganz einfach sein, aber ich komme einfach nicht drauf xD

Ich hoffe jemandem fällts ein^^

2

16.01.2011, 13:39

LoL, wie blöd xD
x % 470 = blabla;
blabla / 40 = arrayKoordsmitKorrektur^^;

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

18.01.2011, 13:45

Sollte es nicht "-470" sein und nicht "%470" ? Das Feld ist doch 470 Pixel nach rechts verschoben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

4

18.01.2011, 19:17

Sollte es nicht "-470" sein und nicht "%470" ? Das Feld ist doch 470 Pixel nach rechts verschoben.
Dachte ich anfangs auch, darum machte ichs immer falsch.
Es ist %.
Beispiel:

x=655
655 % 470 = 185
185 / 40 = 4.625

Somit wurde im Array das Feld in x-Richtung 4 gedrückt:)

5

18.01.2011, 19:33

Ja, dann guck mal, was passiert, wenn es nur noch 10 Pixel statt 470 entfernt ist. Die modulo Operation ist hier schlicht falsch und funktioniert nur zufällig.
Lieber dumm fragen, als dumm bleiben!

6

18.01.2011, 19:37

Wenn du prüfen willst, welches Feld mit der Maus gedrückt wurde, musst du ganz einfach teilen.
Also xArPos = MousePosX / 40; bzw. yArPos = MousePosY / 40;

lg chaia

7

18.01.2011, 20:08

Wenn du prüfen willst, welches Feld mit der Maus gedrückt wurde, musst du ganz einfach teilen.
Also xArPos = MousePosX / 40; bzw. yArPos = MousePosY / 40;

lg chaia

Ja hast du auch recht, aber nur wenn das Feld links oben die Koordinaten 0,0 hat.
Ich hab das Problem angesprochen wenn das Feld irgendwo in der Mitte liegt. (in meinem Falle 470 vom linken Rand weg.)

mfg timi19:)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

8

18.01.2011, 20:19

erst subtrahierst du die position der linken oberen ecke des feldes 0,0 und dann teilst du durch die tilegröße. mudolu macht in dem fall im grunde das gleiche, aber nur unter der bedingung, dass das feld relativ klein und der abstand zu den pixelkoordinaten 0,0 sehr groß ist. solltest du also mal das feld vergrößern oder verschieben hast du nen problem ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige