Das game "startet nicht"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ozzi789

Betreff: Das game "startet nicht"

BeitragMo, März 19, 2007 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Mad Shocked Crying or Very sad
Code: [AUSKLAPPEN]
;Das Auto dreht sich schön doch nachher bleibt es dort und das Game macht keinen wank mehr;


Graphics 800,600,16,1
SetBuffer BackBuffer()
TFormFilter 1
AutoMidHandle 1
SeedRnd MilliSecs()

hintergrund= LoadImage("C:\grass.bmp")


Dim sp_grafik(360)

For gr=0 To 359 sp_grafik(gr)=LoadImage("C:\car.bmp")
RotateImage sp_grafik(gr),gr
Cls
DrawBlock sp_grafik(gr),400,300
Flip
;Wo muss ich jetz das DrawImage hintergrund, 0, 0 hintuen ?;



Next

Type player
 Field x#,y#,grad#
 Field spx#,spy#,maxspeed#,wendigkeit#,beschleunigung#
End Type


Global spieler.player=New player
spieler\maxspeed#=5
spieler\beschleunigung#=0.05
spieler\wendigkeit#=2


Origin 400,300

;Hier beginnt die Hauptschleife:

While Not KeyHit(1)
 steuerung()
 spieler_versetzten()

Flip
Wend
End

Function steuerung()
 If KeyDown(203)Then spieler\grad#=spieler\grad-spieler\wendigkeit#
 If KeyDown(205)Then spieler\grad#=spieler\grad+spieler\wendigkeit#

If spieler\grad#>=360 Then spieler\grad#=spieler\grad# Mod 360
If spieler\grad#<0 Then spieler\grad#=360+spieler\grad#



 If KeyDown(200) Then
 If spieler\spx#<Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#+Abs(Cos(spieler\grad#)*spieler\beschleunigung#)
 If spieler\spx#>Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#-Abs(Cos(spieler\grad#)*spieler\beschleunigung#)

 If spieler\spy#<Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#+Abs(Sin(spieler\grad#)*spieler\beschleunigung#)
 If spieler\spy#>Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#-Abs(Sin(spieler\grad#)*spieler\beschleunigung#)

End If
End Function


Function spieler_versetzten()
 spieler\x#=spieler\x#+spieler\spx#
 spieler\y#=spieler\y#+spieler\spy#

End Function

Function spieler_malen()
 DrawImage sp_grafik(Int(spieler\grad#)),0,0

End Function
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Holzchopf

Meisterpacker

BeitragMo, März 19, 2007 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst die Grafikausgabe auch in die Hauptschleife nehmen.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

ozzi789

Betreff: ??

BeitragMo, März 19, 2007 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich soll die grafik in die Hauptschleife nehmen Confused

Jetz dreht sich die Karren rechts unten im Bildschrim und macht nachher nichts mehr . Shocked

Code: [AUSKLAPPEN]



;Etwa so ?? ;

Graphics 800,600,16,1SetBuffer BackBuffer()
TFormFilter 1
AutoMidHandle 1
SeedRnd MilliSecs()

Type player
Field x#,y#,grad#
Field spx#,spy#,maxspeed#,wendigkeit#,beschleunigung#
End Type


Global spieler.player=New player
spieler\maxspeed#=5
spieler\beschleunigung#=0.05
spieler\wendigkeit#=2


Origin 400,300

;Hier beginnt die Hauptschleife:


Dim sp_grafik(360)

For gr=0 To 359 sp_grafik(gr)=LoadImage("C:\car.bmp")
RotateImage sp_grafik(gr),gr
Cls
DrawBlock sp_grafik(gr),400,300
Flip

next

While Not KeyHit(1)
steuerung()
spieler_versetzten()

Flip
Wend
End

Function steuerung()
If KeyDown(203)Then spieler\grad#=spieler\grad-spieler\wendigkeit#
If KeyDown(205)Then spieler\grad#=spieler\grad+spieler\wendigkeit#

If spieler\grad#>=360 Then spieler\grad#=spieler\grad# Mod 360
If spieler\grad#<0 Then spieler\grad#=360+spieler\grad#



If KeyDown(200) Then
If spieler\spx#<Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#+Abs(Cos(spieler\grad#)*spieler\beschleunigung#)
If spieler\spx#>Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#-Abs(Cos(spieler\grad#)*spieler\beschleunigung#)

If spieler\spy#<Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#+Abs(Sin(spieler\grad#)*spieler\beschleunigung#)
If spieler\spy#>Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#-Abs(Sin(spieler\grad#)*spieler\beschleunigung#)

End If
End Function


Function spieler_versetzten()
spieler\x#=spieler\x#+spieler\spx#
spieler\y#=spieler\y#+spieler\spy#

End Function

Function spieler_malen()
DrawImage sp_grafik(Int(spieler\grad#)),0,0

End Function
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Thorsten

BeitragMo, März 19, 2007 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast es nicht wirklich in die Hauptschleife sondern einfach nur hinter den Kommentar ";Hier beginnt die Hauptschleife:" gesetzt Wink

Die Hauptschleife beginnt bei "While Not KeyHit(1) "

mfG

ozzi789

Betreff: script help

BeitragMo, März 19, 2007 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
bitteeee hilf mir es geht nichts mehr....


Code: [AUSKLAPPEN]

Graphics 800,600,16,1
SetBuffer BackBuffer()
TFormFilter 1
AutoMidHandle 1
SeedRnd MilliSecs()

hintergrund= LoadImage("C:\grass.bmp")

Repeat Until Not KeyHit (1)
steuerung()
spieler_versetzten()


Dim sp_grafik(360)

For gr=0 To 359 sp_grafik(gr)=LoadImage("C:\car.bmp")
RotateImage sp_grafik(gr),gr
Cls
DrawBlock sp_grafik(gr),400,300

Next

Type player
Field x#,y#,grad#
Field spx#,spy#,maxspeed#,wendigkeit#,beschleunigung#
End Type


Global spieler.player=New player
spieler\maxspeed#=5
spieler\beschleunigung#=0.05
spieler\wendigkeit#=2


Origin 400,300



Function steuerung()
If KeyDown(203)Then spieler\grad#=spieler\grad-spieler\wendigkeit#
If KeyDown(205)Then spieler\grad#=spieler\grad+spieler\wendigkeit#

If spieler\grad#>=360 Then spieler\grad#=spieler\grad# Mod 360
If spieler\grad#<0 Then spieler\grad#=360+spieler\grad#


If KeyDown(200) Then
If spieler\spx#<Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#+Abs(Cos(spieler\grad#)*spieler\beschleunigung#)
If spieler\spx#>Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#-Abs(Cos(spieler\grad#)*spieler\beschleunigung#)

If spieler\spy#<Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#+Abs(Sin(spieler\grad#)*spieler\beschleunigung#)
If spieler\spy#>Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#-Abs(Sin(spieler\grad#)*spieler\beschleunigung#)

End If
End Function

Function spieler_versetzten()
spieler\x#=spieler\x#+spieler\spx#
spieler\y#=spieler\y#+spieler\spy#

End Function

DrawImage sp_grafik(Int(spieler\grad#)),0,0
DrawIMage hintergrund 0,0

Flip
Wend
End
Arrow
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

d-bug

BeitragMo, März 19, 2007 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Jesses, ist das verbuggt:

Code: [AUSKLAPPEN]
Graphics 800,600,16,1
SetBuffer BackBuffer()
TFormFilter 1
AutoMidHandle 1
 SeedRnd MilliSecs()

hintergrund= LoadImage("C:\grass.bmp")

Dim sp_grafik(360)

sp_grafik(0) = LoadImage("C:\car.bmp")

For gr=1 To 359
sp_grafik(gr) = COPYIMAGE(sp_grafik(0))
RotateImage sp_grafik(gr),gr
Next

Type player
Field x#,y#,grad#
Field spx#,spy#,maxspeed#,wendigkeit#,beschleunigung#
End Type


Global spieler.player=New player
spieler\maxspeed#=5
spieler\beschleunigung#=0.05
spieler\wendigkeit#=2


Origin 400,300

;Erst nach der ganzen Initialisierung die Hauptschleife einfügen
Repeat ;<------------------------------------ nur repeat
steuerung()
spieler_versetzten()

DrawIMage hintergrund 0,0
DrawImage sp_grafik(Int(spieler\grad#)),0,0


Flip
Cls ; <-- CLS vergessen

Until Not KeyHit (1) ;<---------------------- hier kommt das hint



Function steuerung()
If KeyDown(203)Then spieler\grad#=spieler\grad-spieler\wendigkeit#
If KeyDown(205)Then spieler\grad#=spieler\grad+spieler\wendigkeit#

If spieler\grad#>=360 Then spieler\grad#=spieler\grad# Mod 360
If spieler\grad#<0 Then spieler\grad#=360+spieler\grad#


If KeyDown(200) Then
  If spieler\spx#<Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#+Abs(Cos(spieler\grad#)*spieler\beschleunigung#)
  If spieler\spx#>Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#-Abs(Cos(spieler\grad#)*spieler\beschleunigung#)

  If spieler\spy#<Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#+Abs(Sin(spieler\grad#)*spieler\beschleunigung#)
  If spieler\spy#>Sin(spieler\grad#)*spieler\maxspeed# Then  spieler\spy#=spieler\spy#-Abs(Sin(spieler\grad#)*spieler\beschleunigung#)

End If
End Function

Function spieler_versetzten()
spieler\x#=spieler\x#+spieler\spx#
spieler\y#=spieler\y#+spieler\spy#

End Function

End


Weiß nicht ob ich jetzt alles gefunden habe, aber du musst dir mal mehr gedanken über den Aufbau deines Codes machen. Ich empfehle dir dringend mal die Tutorals auf www.Robsite.de durchzulesen.

cheers

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, März 19, 2007 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier noch einer...
Until Not KeyHit (1) ;so wird die Schleife sofort verlassen
Until KeyHit (1) ; so ist es richtig

Und versuch am besten erst mal selbst was zu coden,
und wenn es nur ein Ball ist der über dem Bildschirm fliegt.Wink
[BB2D | BB3D | BB+]

d-bug

BeitragMo, März 19, 2007 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
und noch einer:

Code: [AUSKLAPPEN]
DrawIMage hintergrund 0,0

sollte

Code: [AUSKLAPPEN]
DrawIMage hintergrund,0,0

heißen

ozzi789

Betreff: Danke

BeitragMo, März 19, 2007 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Laughing Danke jetz funkts

Ich hoffe ich kann auch mal helfen...
Laughing
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Puterich

Betreff: ...

BeitragMo, März 19, 2007 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann es sein dass das Auto jetzt nicht vorwärts kommt?
Print "Halt Die Fresse"

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group