collideproblem
Übersicht

pepetigoBetreff: collideproblem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die CollideFunction(ganz unten) functioniert nicht. Ich hoffe ihr konnt mir helfen.
Hier 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() Cls Repeat star() DrawImage loser, 20, 140 Flip Until KeyHit(57) Or KeyHit(28) Or KeyHit(1) 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 |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Player_pos_X also Global definieren.
Ich würde allerdings nicht eine Zeile Code in eine Funktion rein packen, sondern erst so ab vier Zeilen und nur dann, wenn die Funktion aus mehreren Codepositionen aus gebraucht wird. Ist aber meine Meinung. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group