Bewegung an Markierte Pos. (erledigt)
Übersicht

Andy SBetreff: Bewegung an Markierte Pos. (erledigt) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute,
habe ein kleines Problem, ich habe eine kleine Grafik die die Pos. 400, 300 hat nun möchte ich die Grafk an die Pos. 452, 330 bewegen. Jetzt Bewege ich die Grafik mit x = x + 1 und y = y + 1, das geht, aber ich ereiche die Pos. nicht auf geradem weg. Jetzt meine frage wie macht man so was ![]() Hier mein Code: Code: [AUSKLAPPEN] ; Spieler an die gesetzte Pos. Bewegen
If SPISpieler_Bewegung_Status = 1 Then ; Links If SPIAkt_Spieler_Pos_X < SPISet_Spieler_Pos_X Then If SPIAkt_Spieler_Pos_X = SPISet_Spieler_Pos_X Then SPISpieler_Bewegung_Status = 0 Else SPIAkt_Spieler_Pos_X = SPIAkt_Spieler_Pos_X + 0.5 End If End If ; Rechts If SPIAkt_Spieler_Pos_X > SPISet_Spieler_Pos_X Then If SPIAkt_Spieler_Pos_X = SPISet_Spieler_Pos_X Then SPISpieler_Bewegung_Status = 0 Else SPIAkt_Spieler_Pos_X = SPIAkt_Spieler_Pos_X - 0.5 End If End If ; Open If SPIAkt_Spieler_Pos_Y > SPISet_Spieler_Pos_Y Then If SPIAkt_Spieler_Pos_Y = SPISet_Spieler_Pos_Y Then SPISpieler_Bewegung_Status = 0 Else SPIAkt_Spieler_Pos_Y = SPIAkt_Spieler_Pos_Y - 0.5 End If End If ; Unten If SPIAkt_Spieler_Pos_Y < SPISet_Spieler_Pos_Y Then If SPIAkt_Spieler_Pos_Y = SPISet_Spieler_Pos_Y Then SPISpieler_Bewegung_Status = 0 Else SPIAkt_Spieler_Pos_Y = SPIAkt_Spieler_Pos_Y + 0.5 End If End If End If Gruß Andy S. |
||
- Zuletzt bearbeitet von Andy S am Do, Jan 22, 2004 12:07, insgesamt einmal bearbeitet
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi hier ein BeispielCode: [AUSKLAPPEN] Graphics 800,600,16,2
Kopieren > Probieren
SetBuffer BackBuffer() Const ESC = 1, Bildwiederholung = 50, debug =1 Global frameTimer=CreateTimer(Bildwiederholung) Global posX#= 100,PosY# = 100 While Not KeyDown(ESC) Rect int(posX),int(PosY),10,10,0 If MouseHit(1) ; neues ziel zuweisen x_Ziel = MouseX() Y_Ziel = MouseY() grad = Objekt_richtung_grad(x_Ziel ,Y_Ziel,posX ,posY) posX_Speed# = Cos(grad )*2 ; 1 = Speed je nachdem wie viele Pixel schnell posY_Speed# = Sin(grad )*2 End If posX = posX + posX_Speed If posX_Speed < 0 And posX < x_Ziel Then; abfrage ob ziel erreicht posX_Speed = 0 posX = x_Ziel Else If posX_Speed > 0 And posX > x_Ziel Then posX_Speed = 0 posX = x_Ziel EndIf posY = posY + posY_Speed If posY_Speed < 0 And posY < y_Ziel Then; abfrage ob ziel erreicht posY_Speed = 0 posY = y_Ziel Else If posY_Speed > 0 And posY > y_Ziel Then posY_Speed = 0 posY = y_Ziel EndIf If debug Then Text 500,360, "posX : "+ posX Text 500,380, "posY: "+ posY Text 500,400, "posX Speed: "+ posX_Speed Text 500,420, "posY Speed: "+ posY_Speed Text 500,440, "x_Ziel : "+ x_Ziel Text 500,460, "y_Ziel : "+ y_Ziel Text 500,480, "Grad : "+ grad EndIf WaitTimer(frameTimer) Flip Cls Wend End Function Objekt_richtung_grad(Zielpunkt_X,Zielpunkt_Y,Ausgangspunkt_X,Ausgangspunkt_Y ) Waagerechte = Zielpunkt_X -Ausgangspunkt_X Hoehe = Zielpunkt_Y -Ausgangspunkt_Y ;0 grad ist hier nach links und im Uhrzeigersinn wird er höher grad =ATan2(Hoehe ,Waagerechte) If grad < 0 Then grad = grad+360 Return grad End Function |
||
[BB2D | BB3D | BB+]
|
- Zuletzt bearbeitet von Rallimen am Sa, Jan 24, 2004 20:43, insgesamt einmal bearbeitet
Andy S |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Rallimen,
einfach nur genial, Danke! ![]() |
||
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab so was auch mal gemach mit anklicken und so. + BEschreibung
Hier der Link: http://weblink.art-fx.org/Lauf.rar |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group