Timer funtzt net

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Lion

Betreff: Timer funtzt net

BeitragFr, Dez 31, 2004 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Die überschrift sagt es ich hab auch schon die forumssuche benutzt aber nix gefunden naja ich geb euch mal den code
Code: [AUSKLAPPEN]
  Global timer = MilliSecs()
  ...
  If MilliSecs() > timer + 1000 Then
  timer = MilliSecs()
  DrawImage schuss2,schuss2_x,schuss2_y : schuss2_x = schuss2_x - 3
  EndIf


thx im vorraus
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x
 

noir

BeitragFr, Dez 31, 2004 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
funktioniert doch!
der code ist korrekt, wird an etwas anderem liegen.
 

Apocalyptic

BeitragFr, Dez 31, 2004 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du zeichnest und bewegst dein Geschoss nur jede Sekunde, ich denke, du willlst eher pro Sekunde einen Schuss, oder? Dann sieh dir am besten mal Types an... Wenn sich dein Geschoss jedoch wirklich nur in Ein-Sekunden-Schritten bewegen soll, nimm das Drawimage mit in die Hauptschleife, und überprüfe, ob das Geschoss noch existiert...
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
  • Zuletzt bearbeitet von Apocalyptic am Fr, Dez 31, 2004 18:29, insgesamt einmal bearbeitet

Ralf

BeitragFr, Dez 31, 2004 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ist nichts korrekt!
Alle 1000 MilliSecs wird der Schuss um 3 Pixel bewegt, und ganz kurz angezeigt. Vermutlich wird man das kaum sehen.
Allerdings weiss ich nicht was Lion wirklich programmieren wollte, die Zeilen sind jedenfalls Quatsch.

Edit: Wieder mal zu langsam Crying or Very sad
  • Zuletzt bearbeitet von Ralf am Fr, Dez 31, 2004 18:31, insgesamt einmal bearbeitet
 

noir

BeitragFr, Dez 31, 2004 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
nein ich denk er will, dass die 1 Kugel,oder was auch immer, jede sekunde sich um 3 einheiten bewegt.
 

Lion

BeitragFr, Dez 31, 2004 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganzer Code(allerdings ein bischsen geupdatet und funtzt immernoch net Sad) :
Code: [AUSKLAPPEN]
AppTitle "Time to die"
Graphics 800,600,16,1

Global timer = MilliSecs()
Global sperre = MilliSecs()
Global Gesundheit=100
Global Gegnerschuss=0

;Laden

;sound
Global treffer=LoadSound("treffer.wav")

;Grafiken

Global Geisel=LoadImage ("Geisel.bmp")
Global Geisel_x=490
Global Geisel_y=500

Global schuss2=LoadImage ("schuss.bmp")
Global schuss2_x=Geisel_x
Global schuss2_y=Geisel_y

Global Player=LoadImage ("Typ.bmp")
Global Player_x=50
Global Player_y=390

Global LS=LoadImage ("Landschaft.bmp")
Global Ls_x=0
Global Ls_y=560

Global schuss=LoadImage ("schuss.bmp")
Global schuss_x=Player_x
Global schuss_y=Player_y

Global Kreuz=LoadImage ("Fadenkreuz.bmp")

Global mouse_hit = 0

Include "funcs and types.bb"

While Not KeyDown(1)

;mouse_hit auf null setzen
mouse_hit = 0
;Bewegen
   If KeyDown(203)
      player_x=player_x-4
      If player_x<0 Then player_x=0
   EndIf

   If KeyDown(205)
      player_x=player_x+4
   EndIf
   
   If KeyDown(200)
      player_y=player_y-3
   EndIf
   
   ;Schwerkraft
   Player_y=Player_y+3
   Geisel_y=Geisel_y+3
   
   Cls

DrawImage Player,Player_x,Player_y
DrawImage Geisel,Geisel_x,Geisel_y
DrawBlock Ls,ls_x,Ls_y
DrawImage Kreuz,MouseX(),MouseY()

If MouseHit(1) Then mouse_hit = 1
   
;Collisionen
If mouse_hit = 1 Then DrawImage schuss, Player_x,Player_y
If ImagesCollide(player , player_x , player_y , player_frame , LS , LS_x , LS_y , LS_Frame ) Then
Player_y=Player_y-3
EndIf

If ImagesCollide(Geisel , Geisel_x , Geisel_y , Geisel_frame , LS , LS_x , LS_y , LS_Frame ) Then
Geisel_y=Geisel_y-3
EndIf

If ImagesCollide(Schuss2,Schuss2_x,Schuss2_y,Schuss2_frame,player , player_x , player_y , player_frame) Then
Player_x=Player_x -2 : Gesundheit = Gesundheit -1 : PlaySound treffer
EndIf

If ImagesCollide(Kreuz ,MouseX(),MouseY(),Kreuz_frame , Geisel , Geisel_x , Geisel_y , Geisel_frame ) Then
If mouse_hit = 1 Then Geisel_x=Geisel_x +7 : PlaySound treffer : If geisel_x = 525 Then RotateImage Geisel,(90) : update_shoot
EndIf

;Gegner

DrawImage schuss2,schuss2_x,schuss2_y

schuss2_x = schuss2_x - 3

  If MilliSecs() > schuss + 1000 Then
  timer = MilliSecs()
  Gegnerschuss = 1
  EndIf

  If MilliSecs() > Sperre + 1100 Then
  timer = MilliSecs()
  Gegnerschuss = 0
  EndIf

If Gegnerschuss = 1 Then DrawImage schuss2,schuss2_x,schuss2_y : schuss2_x = schuss2_x - 3

;Sin,Cos
alpha = 67
schuss_speed = 1
x=x+Cos(alpha) * schuss_speed
y=y+Sin(alpha)  * schuss_speed

;Leben
Print "Gesundheit=" + Gesundheit
If gesundheit = 0 Then Text 345,235, "Er ist VERSTORBEN!!!" : Delay 5000 : End

Flip
Wend
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Ralf

BeitragFr, Dez 31, 2004 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
  If MilliSecs() > schuss + 1000 Then
  timer = MilliSecs()
  Gegnerschuss = 1
  EndIf

  If MilliSecs() > Sperre + 1100 Then
  timer = MilliSecs()
  Gegnerschuss = 0
  EndIf

Weder die Variabel Timer, schuss noch sperre werden im weiteren Verlauf des Programms verändert.
Also ist MilliSecs immer größer als die Variabel "sperre" und "schuss".
Und die Variabel "timer" ist immer = MilliSecs.
Also bleibt Gegnerschuss immer 0 und der Schuss wird nicht angezeigt.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group