Bewegung an Markierte Pos. (erledigt)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Andy S

Betreff: Bewegung an Markierte Pos. (erledigt)

BeitragDo, Jan 22, 2004 10:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Embarassed

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

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Jan 22, 2004 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi hier ein BeispielCode: [AUSKLAPPEN]
Graphics 800,600,16,2
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
Kopieren > Probieren
[BB2D | BB3D | BB+]
  • Zuletzt bearbeitet von Rallimen am Sa, Jan 24, 2004 20:43, insgesamt einmal bearbeitet
 

Andy S

BeitragDo, Jan 22, 2004 12:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@Rallimen,

einfach nur genial, Danke! Smile

WEBLink

BeitragDo, Jan 22, 2004 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab so was auch mal gemach mit anklicken und so. + BEschreibung

Hier der Link:

http://weblink.art-fx.org/Lauf.rar

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group