GLBasic forum

Other languages => GLBasic - de => Topic started by: Shogun on 2009-Oct-07

Title: mx, my
Post by: Shogun on 2009-Oct-07
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.
Title: Re: mx, my
Post by: Schranz0r on 2009-Oct-07
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 ;)
Title: Re: mx, my
Post by: Shogun on 2009-Oct-08
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.
Title: Re: mx, my
Post by: Schranz0r on 2009-Oct-08
Du willst nen Mapeditor machen?
Title: Re: mx, my
Post by: Shogun on 2009-Oct-08
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.
Title: Re: mx, my
Post by: Shogun on 2009-Oct-10
Schranzor schreibst du mir ein kleines Beispiel?
Title: Re: mx, my
Post by: Schranz0r on 2009-Oct-10
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
Title: Re: mx, my
Post by: Shogun on 2009-Oct-10
danke schonmal, werde es gleichmal ausprobieren