mx, my

Previous topic - Next topic

Shogun

Hallo alle zusammen, würde mich freuen wenn mir jemand helfen kann.
Ich möchte verschiedene Sprites mit Hilfe der Maus auswählen.

Also:
if px < mx then animplayer = 1
if px > mx then animplayer = 2
if py < my then animplayer = 3
if py > my then animplayer = 4

DRAWANIM 3, animplayer, px, py

für sich einzeln genommen (z.Bsp. nur mx oder nur my) funktioniert es wunderbar, nur beide zusammen geht nicht.
Man könnte ja auch einzelne sprites mit drawsprite laden, nur würde mich interessieren warum das obige Beispiel nicht geht.
Sollte man es überhaupt so machen? Mir würde es so reichen.

Schranz0r

Dir ist klar das px/py nur 1 Pixel ist ?

Bist du jetzt < px aber z.B  < py dann hast du animplayer 3

wieso das ? GANZ einfach! ;)

Das programm arbeiten von oben nach unten runter
um es richtig zu benutzen musst du wenn du px abfragen willst genau auf der höhe von py sein.

Schau dir mal BOXCOLL an, glaub das ist dafür besser ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Shogun

Danke, du hast recht, habe ich garnicht bedacht.
Hm Boxcoll für die Sprites? Ich benötige doch das ganze Spielfeld um die Sprites zu ändern.
Wo soll ich denn da immer kollidieren?
Hast du Lust ein kurzes Beispiel zu schreiben? Nur ein zwei Zeilen, dass ich weiß wie du es meinst.
Finde es gut, dass die Leute hier so hilfsbereit sind.

Schranz0r

Du willst nen Mapeditor machen?
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Shogun

Nein, mein player sprite soll sich mit der Maus verändern. Also rechts vom Player, Player schaut rechts, links vom player player schaut links usw.
Eventuell bereiche festlegen und die einzelnen sprites drawn? Würde es gerne mit anim machen.

Shogun

Schranzor schreibst du mir ein kleines Beispiel?

Schranz0r

#6
Jow ich würde es so machen :


Code (glbasic) Select

SYSTEMPOINTER TRUE
LOCAL bild_x = 300, bild_y = 220, bild_id

WHILE TRUE
LOCAL mx, my, b1, b2
MOUSESTATE mx, my, b1, b2

// bild_y+20 / bild_x+20 damit die Bildmitte genommen wird!( beim bild 40x40 )
LOCAL winkel = ATAN(bild_y+20-my,bild_x+20-mx)+180

DRAWRECT bild_x, bild_y, 40, 40, RGB(0xff, 0x00, 0x00)

SELECT winkel
  // rechts
  CASE > 315 < 44
   bild_id = 1
  // unten
  CASE 45 TO 134
   bild_id = 2
  // links
  CASE 135 TO 224
   bild_id = 3
  // oben
  CASE 225 TO 314
   bild_id = 4
ENDSELECT


PRINT winkel, 10,10
PRINT bild_id,10,20
SHOWSCREEN
WEND
END



Musst halt mit deinem DRAWANIM benutzen ;D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Shogun

danke schonmal, werde es gleichmal ausprobieren