Seite 1 von 2

Spiel

Verfasst: 29.04.2006 12:05
von Svking
Hi, ich habe angefangen ein kleines Spiel zu schreiben :)

Nur leider habe ich ein kleines Problem. Es Startet sich nur ein Schwarzer Bildschirm und sonst nichts :(. kann mir da please einer helfen?

Es soll sich ein Balken (player.bmp) nach links und rechts bewegen und herunterfallendes Eis Aufsammeln.

Hier mein code:

Code: Alles auswählen

InitSprite() 
InitKeyboard() 
OpenScreen(800,600,32,"eating Sv") 

LoadSprite(0,"data\pics\background.bmp")
LoadSprite(1,"data\pics\player.bmp")
LoadSprite(2,"data\pics\icecream.bmp")

player_x = 363

ice_x = 0 
ice_y = 0

If ice_y > 600 
   ice_y = 0 
   ice_x = Random(640-20) 
EndIf 
 Repeat 
 ice_y - 3
 ForEver
    Repeat 

    ExamineKeyboard() 
    ClearScreen(0,0,0) 

If KeyboardPushed(#PB_Key_Left)
player_x - 5
 If player_x < 0
  player_x = 0
  EndIf
  EndIf
  
  If KeyboardPushed(#PB_Key_Right)
player_x + 5
 If player_x > 700
  player_x = 700
  EndIf
  EndIf

DisplaySprite(0,0,0)
DisplayTransparentSprite(1,player_x,559)
DisplayTransparentSprite(2,ice_x,ice_y)


    FlipBuffers() 

Until KeyboardPushed(#PB_Key_Escape)

Verfasst: 29.04.2006 12:08
von Macros
Hier

Code: Alles auswählen

Repeat
 ice_y - 3
 ForEver 
Hängt sich dein Programm auf, für immer.

Verfasst: 29.04.2006 12:17
von Svking
ah danke x) aber wie mach ich das dann , dass das bitmap immer nach unten fällt?

Verfasst: 29.04.2006 12:21
von Macros

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"eating Sv")

LoadSprite(0,"data\pics\background.bmp")
LoadSprite(1,"data\pics\player.bmp")
LoadSprite(2,"data\pics\icecream.bmp") 

player_x = 363

ice_x = 0
ice_y = 0
 
    Repeat
     ice_y + 3
If ice_y > 600
   ice_y = 0
   ice_x = Random(640-20)
EndIf
    ExamineKeyboard()
    ClearScreen(0,0,0)

If KeyboardPushed(#PB_Key_Left)
player_x - 5
 If player_x < 0
  player_x = 0
  EndIf
  EndIf
 
  If KeyboardPushed(#PB_Key_Right)
player_x + 5
 If player_x > 700
  player_x = 700
  EndIf
  EndIf

DisplaySprite(0,0,0)
DisplayTransparentSprite(1,player_x,559)
DisplayTransparentSprite(2,ice_x,ice_y)


    FlipBuffers()

Until KeyboardPushed(#PB_Key_Escape)

Verfasst: 29.04.2006 12:30
von Svking
das stürzt bei mir auch ab ^^ :(

Edit: Ah ne hatte was falsch eingegeben funzt perfekt :) big THX


Eine Frage hätt ich aber noch^^:

ich habe den code jetzt so:

Code: Alles auswählen

InitSprite() 
InitKeyboard() 
InitMovie()
OpenScreen(800,600,32,"eating Sv") 

LoadSprite(1,"data\pics\player.bmp") 
LoadSprite(2,"data\pics\icecream.bmp") 
LoadSprite(3,"data\pics\bread.bmp") 

LoadMovie(1,"data\1.wav")
player_x = 363 

ice_x = 0 
ice_y = 0 

bonusA = 0
bonus_x = 0
bonus_y = 0
punkte = 0
speed = 3


    Repeat 
     ice_y + speed 
If ice_y > 600 
   ice_y = 0 
   ice_x = Random(770-20) 
EndIf 
    ExamineKeyboard() 
    ClearScreen(0,0,0) 

    StartDrawing(ScreenOutput())    
    DrawText("punkte")    
    StopDrawing()
    
    If Punkte = 100
    speed = 5
    EndIf
    
     If Punkte = 300
    speed = 7
    EndIf
    
    If Punkte = 600
    speed = 9
    EndIf
    
 If SpriteCollision(1,player_x,559,2,ice_x,ice_y) = 1   
punkte + 10
PlayMovie(1,0)
ice_y = 0 
ice_x = Random(640-20) 
EndIf

If KeyboardPushed(#PB_Key_Left) 
player_x - 5 
 If player_x < 0 
  player_x = 0 
  EndIf 
  EndIf 
  
  If KeyboardPushed(#PB_Key_Right) 
player_x + 5 
 If player_x > 700 
  player_x = 700 
  EndIf 
  EndIf 

If KeyboardPushed(#PB_Key_P)
MessageRequester("Punkte",punkte$,0)
 EndIf
DisplayTransparentSprite(1,player_x,559) 
DisplayTransparentSprite(2,ice_x,ice_y) 


    FlipBuffers() 

Until KeyboardPushed(#PB_Key_Escape) 
Wie bekomme ich jetzt bei dieser Stelle:

Code: Alles auswählen

    StartDrawing(ScreenOutput())    
    DrawText("punkte")    
    StopDrawing()
da wo jetzt punkte steht die Anzahl der Punkte hin? also, dass dann oben links am Bildschirmrand die Punkte stehen.

Die Punkte werden ja schon gezählt oben

punkte = 0

Verfasst: 29.04.2006 19:23
von coder
Probiers mal mit:

Code: Alles auswählen

StartDrawing(ScreenOutput())
  DrawingFont(FontID())  
  Locate(600-TextLength("Punkte: "+Str(punkte)), 10)
  DrawText("Punkte: "+Str(punkte))
StopDrawing()
Bei PB 3.94 müsste das klappen.

Verfasst: 29.04.2006 19:25
von Svking
hm bei mir sagt er: There is no current Font.
bei der Zeile DrawingFont(Font ID())

Aber wenn ich die Zeile wegnehme gehts, thx :)

Verfasst: 29.04.2006 19:43
von Marvin
> There is no current font
Ein bisschen Englisch hilft weiter, du hast doch gar keine Font geladen, welche soll dann auch zum Zeichnen benutzt werden... :wink:

Verfasst: 30.04.2006 15:19
von Svking
hm also bis jetzt ises nen ganz cooles game x)
weis nur nich, wie ich die punkte in nen MessageRequester bekomme.

Ich habs so probiert:

Code: Alles auswählen

MessageRequester("Punkte: "+Str(punkte)) 
will aber nich.
Wie geht das den?


Sv

Verfasst: 30.04.2006 15:24
von Macros
Fast richtig, du hast nur die Überschrift angegeben

Code: Alles auswählen

MessageRequester("Punkte","Punkte: "+Str(punkte))