Kollisions und abschlussbild problem
Übersicht

snörklBetreff: Kollisions und abschlussbild problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi. Ich und mein Freund haben ein Problem mit folgendem Code.
1. Wenn man verliert, wird das "verlierer-bild" nicht angezeigt. Erst wenn man nochmal auf space drückt erscheint es für den bruchteil einer sekunde und ein neues spiel wird gestartet. 2. In der letzten funktion (collide() ) funktioniert die kollision nicht richtig. Zum einen kollidiert das Bild nicht an jeder stelle mit dem anderen, zum anderen erscheint ein fehler, wenn es kollidiert. Wir hoffen, ihr könnt uns helfen, mfg. Der Code: Code: [AUSKLAPPEN] ;Grafikmodus setzen
Graphics 640, 480, 16, 2 ;Fenstertitel bestimmen AppTitle "Schuss frei" ;Alle benötigten Bilder laden und gegebenfalls mit transparenz versorgen Global spieler_1 = LoadImage("gfx/Spieler_1.png") MaskImage spieler_1 ,255, 0, 255 Global gegner_1=LoadImage("gfx/gegner_2.png") MaskImage gegner_1 ,255, 0, 255 Global stars=LoadImage("gfx/stars.bmp") Global loser=LoadImage("gfx/loser.png") MaskImage loser, 255,0,255 ;Globale Variablen ;Hintergrundvariablen Global x_star = 1 ;Gegnervariablen SeedRnd MilliSecs() Global Gegner_pos_X = Rnd(1, 640) Global Gegner_pos_Y = 1 Global gtimer = MilliSecs() ;Spielervariablen Global leben = 3 Global schaden = 1 Global stimer = MilliSecs() ;buffer setzen u. Spieler zeichnen SetBuffer BackBuffer() DrawImage spieler_1, 0, 380 ;Musik Global titelsound = LoadSound("sound/17_sasha_-_goodbye.mp3");(namen ersetzen für eigenes lied) sound() ;HAUPTSCHLEIFE Repeat ;funktionen star() gegner() collide() ;Leben etc. Text 1,1,"Leben:" + leben If KeyHit(57) Then leben = leben - 1 If leben <= 0 Then lose() ;spieler bewegen If KeyDown(203) If MilliSecs() > stimer + 100 Player_pos_X=Player_pos_X-20 stimer=MilliSecs() EndIf If Player_pos_X=<0 Then Player_pos_X=1 EndIf If KeyDown(205) If MilliSecs() > stimer + 100 player_pos_x=player_pos_X +20 stimer=MilliSecs() EndIf If Player_pos_X=>540 Then Player_pos_X=540 EndIf ;Spieler zeichnen (positionswechsel?) DrawImage spieler_1,player_pos_x,380 ;Buffer swap u. altes bild cls Flip Cls ;ENDE HAUPTSCHLEIFE Until KeyHit(1) ;beenden End ;//////////////////FUNKTIONEN\\\\\\\\\\\\\\\\\\\\\\\ Function sound() LoopSound titelsound titelsound =PlaySound(titelsound) End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function gegner() DrawImage gegner_1, Gegner_pos_X, Gegner_pos_Y If MilliSecs() > gtimer + 150 Gegner_pos_Y=Gegner_pos_Y+5 gtimer=MilliSecs() EndIf End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function lose() Repeat DrawImage loser, 20, 140 star() Until KeyHit(57) leben = 3 End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function star() TileImage stars, x_star, 1 x_star = x_star + 1 If x_star = 201 Then x_star = 1 End Function Function collide() If ImagesCollide(spieler_1, Player_pos_X, 380, 0, gegner_1, Gegner_pos_X, Gegner_pos_Y, 0) Then leben = leben -1 End Function |
||
![]() |
Dreiser |
![]() Antworten mit Zitat ![]() |
---|---|---|
In der lose-Function fehlt CLS/Flip. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group