Waffe ausrichten

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Mr Hopp

Betreff: Waffe ausrichten

BeitragMi, Mai 04, 2005 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich habe ein kleines Weltraumballerspiel geplant, in dem man mit den Pfeiltasten sein Raumschiff nach links und rechts bewegen kann, und mit der Maus die Waffe ausrichten kann, zur besseren Zielbarkeit, wird ein Cursor angezeigt, in dessen Richtung sich die Waffe richten soll. Wie kann ich die Waffe drehem, gibt's da einen spezielen Befehl dafür?

Mfg Mr Hopp

satzzeichen

BeitragMi, Mai 04, 2005 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
http://home.arcor.de/inpac/tut1.htm

Da wird gezeigt wie man ein Auto dreht ka ob dir das bei der Waffe auch was nützt! Ansonsten ... kennst du Counterstrike 2D? Da ist das ja genauso und das beste die haben den Sourcecode veröffentlicht da kann man ganz bequem rauskopieren Smile Allerdings weis ich ehrlichgesagt im Moment nicht wo die den Code nochmal anboten srry musst wohl mal bei Google suchen!
 

Apocalyptic

BeitragMi, Mai 04, 2005 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:atan2 (Falls sich die Waffe in die Richtung der Mauskoordinaten drehen soll)
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Mai 04, 2005 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Beispiel gibts hier im Forum, hab aber keine Lust zu suchen...deswegen kommt das beispiel von meiner HDD!BlitzBasic: [AUSKLAPPEN]

Graphics 800 ,600,16,2
;PanzerGrafik_berechnen > 360 Einzelbilder <
Dim Panzer (360)
Panzer (0) = CreateImage (30 ,20)
SetBuffer ImageBuffer (Panzer (0))
Rect 0,0,20,20:Rect 20 ,9,10,2,1
MidHandle Panzer (0)
For z = 1 To 359
panzer (z) = CopyImage (Panzer (0))
RotateImage panzer (z) ,z
Next
;
x = 400 : y = 300

SetBuffer BackBuffer ()
Repeat
If MouseHit (1) Then
x = MouseX ()
Y = MouseY () ;Winkel bezieht sich auf den Panzer
winkel = Objekt_richtung_grad (x,y ,400 ,300)
End If
posPanzer = posPanzer + DrehAufZiel (posPanzer,Winkel)
If posPanzer < 0 Then posPanzer = posPanzer +360
If posPanzer > 359 Then posPanzer = posPanzer -360
;Panzer malen
DrawBlock Panzer (posPanzer) ,400,300
;Klickpunkt malen
Oval x - 5 ,y - 5 ,10,10,1
;Schuss
If posPanzer = Winkel Then Line x,y ,400 ,300
;debugAusgabe
Text 100 ,30, posPanzer + \" Panzer\"
Text 100 ,60, winkel + \" Grad\"
Flip
Cls
Until KeyHit (1)

End

Function Objekt_richtung_grad (Zielpunkt_X,Zielpunkt_Y,Ausgangspunkt_X,Ausgangspunkt_Y )
grad = ATan2 (Zielpunkt_Y - Ausgangspunkt_Y, Zielpunkt_X - Ausgangspunkt_X)
If grad < 0 Then grad = grad + 360
Return grad
End Function

Function drehAufZiel (pospanzer,winkel)
If posPanzer > Winkel Then
If posPanzer - 180 < Winkel Then Return - 1
Else
If posPanzer + 180 < Winkel Then Return - 1
End If
Return 1
End Function
[BB2D | BB3D | BB+]

satzzeichen

BeitragMi, Mai 04, 2005 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist denn eine HDD?

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Mai 04, 2005 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
HDD=
[BB2D | BB3D | BB+]

satzzeichen

BeitragMi, Mai 04, 2005 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso danke Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group