panzer

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

blitzattack

Betreff: panzer

BeitragDo, Apr 15, 2004 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich bräuchte mal eure hilfe
Code: [AUSKLAPPEN]
Graphics 800,600,16,2
Const ESC = 1,Hoch= 200,Runter=208,Links = 203,Rechts=205 , Space = 57
Const Gas#= 0.06, Traegheit#=0.02, Speedmax=3
Const Lenkspeed = 2; hier nur durch 360 teilbares ; 1,2,3,4,5,6,8,9,10,12,15,18,usw.
Const debugmode = 1 :
Global Maxschuss
Dim Schuss#(15,3)
Dim Panzer (360);PanzerGrafik_berechnen max 360 Einzelbilder <
Panzer(0) = LoadImage("gfx\panzer2.bmp")
HandleImage Panzer(0) ,10 ,10
Schuss#(t,1) = x_pos# + Cos(grad)*20 ;<<< *20
Schuss#(t,2) = y_pos# + Sin(grad)*20 ;<<< *20
For z = 0 To 359 Step Lenkspeed
panzer(z) = CopyImage (Panzer(0))
RotateImage panzer(z),z
HandleImage Panzer(0),10,10
Next;PanzerGrafik_berechnen max 360 Einzelbilder ......fertig

;startposition
positionX# = 400 : positionY# = 300

SetBuffer BackBuffer()
While Not KeyDown(ESC);#######################################
; tasten abfrage
If KeyHit(Space) Then schuss_starten(PositionX#,PositionY#,Grad )

If speed# => 0 Then
Grad=(Grad+(KeyDown(Rechts)-KeyDown(Links))*Lenkspeed+360)Mod 360
Else
Grad=(Grad+(KeyDown(Links)-KeyDown(Rechts))*Lenkspeed+360)Mod 360
End If

Speed#=Speed#+(KeyDown( Hoch)-KeyDown(Runter))*Gas#

If (KeyDown(Hoch)+KeyDown(Runter)) = 0 Then
If Speed# > 0 Then Speed# = Speed# - Traegheit# ;langsam werden
If Speed# < 0 Then Speed# = Speed# + Traegheit# ;langsam werden
If Speed# < Traegheit# And Speed# > (Traegheit#*-1) Then Speed# = 0; völliger Stillstand
End If
If speed#> Speedmax Then speed#= Speedmax
If speed#< (Speedmax*-1) Then speed#= (Speedmax*-1)

;Position ändern Panzer
positionX# = positionX# + Cos(Grad) *speed#
positionY# = positionY# + Sin(Grad) *speed#

PositionY# = (PositionY#+GraphicsHeight()) Mod GraphicsHeight()
PositionX# = (PositionX#+GraphicsWidth ()) Mod GraphicsWidth ()

DrawImage Panzer(Grad),Int(positionX#),Int(positionY#)
Schuss_malen()
;####################################################
If debugmode Then Gosub Debug
Flip : Cls:
bwx= bwx +1:If MilliSecs() > oltZeit + 999Then BW = bwx:bwx = 0: oltZeit= MilliSecs() ;FPS
Wend :End;#################################################



Function schuss_starten (x_pos#,y_pos#,grad)
For t= 0 To 15
If Schuss#(t,0)= 0 Then ; freien Schuss gefunden ;bzw Leere variable
Schuss#(t,0) = 1; schuss aktivieren
Schuss#(t,1) = x_pos# + Cos(grad)*20
Schuss#(t,2) = y_pos# + Sin(grad)*20
Schuss#(t,3) = grad ;welche Waffe es ist
Exit ;schleife verlassen da eine gefunden wurde
End If
Next
End Function


Function Schuss_malen() ; alle malen
If debugmode Then Maxschuss = 0
For t= 0 To 15
If Schuss#(t,0) = 1 Then ; Wenn aktiver Schuss dann malen
Schuss#(t,1) = Schuss#(t,1)+ Cos(Schuss#(t,3))*8
Schuss#(t,2) = Schuss#(t,2)+ Sin(Schuss#(t,3))*8
Rect Int(Schuss#(t,1)-1),Int(Schuss#(t,2)-1),2,2,1
If Schuss#(t,1)> 800 Or Schuss#(t,1) < 0 Or Schuss#(t,2)> 600 Or Schuss#(t,2) < 0 Then
Schuss#(t,0) = 0
End If
If debugmode Then Maxschuss = Maxschuss +1
End If
Next
End Function

.Debug
Text 10,10,"FPS: " + BW
Text 10,30,"Speed: " + Speed#
Text 10,50,"Lenkspeed: " + Lenkspeed
Text 10,70,"Grad: " + Grad
Text 10,90,"geschosse Max:" + Maxschuss
Return

da wird der panzer nie angezeigt
es kommt aber auch keine fehlermeldung

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Apr 15, 2004 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
hab den Code gerade mit einer grafik getestet, da geht es!
zeigt das Proggi den die DebugWerte an und ändern sich die auch?
[BB2D | BB3D | BB+]

rambo256

BeitragDo, Apr 15, 2004 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Also bei mir klappt es auch.
Vielleicht musst du dich etwas gedulden,bis der PC die Grafik gedreht hat.
Das kann dauern,kommt aber auf die Größe des Image an.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Apr 15, 2004 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,
setz das mal in dein Code rein dann hast du sofort eine Prozent-Anzeige für das Laden Code: [AUSKLAPPEN]
For z = 0 To 359 Step Lenkspeed
panzer(z) = CopyImage (Panzer(0))
RotateImage panzer(z),z
HandleImage Panzer(0),10,10
Text 200,200,z*100/360+"%": Flip:Cls  ; <<<NUR DIESE ZEILE einbauen
Next;PanzerGrafik_berechnen max 360 Einzelbilder ......fertig
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group