Sternenhintergrund
Übersicht

Hektor IIBetreff: Sternenhintergrund |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tag auch,
ich habe jetzt probiert, meinem Space - Shooter einen vorbeiziehenden Sternenhintergrund zu verpassen. Doch leider habe ich das Problem, dass nur ein Viertel eines Sternenbildschirms vorbeizieht. Hier der Teil des Codes: Code: [AUSKLAPPEN] Global sterne_x1=1
Global sterne_y1=1 Global sterne_x2=1 Global sterne_y2=-480 Global sternespeed=4 Global sterne=LoadImage("stars.bmp") Function stars() If sterne_y1 > 480 Then sterne_y1=-480 EndIf sterne_y1=sterne_y1+sternespeed If sterne_y2 > 480 Then sterne_y2 = -480 EndIf sterne_y2=sterne_y2+sternespeed End Function Function Draw() DrawImage sterne, sterne_x1, sterne_y1 DrawImage sterne, sterne_x2, sterne_y2 DrawImage player, player_x, player_y DrawImage enemy, enemy_x, enemy_y, anim If bullet_fired Then DrawImage bullet, bullet_x, bullet_y EndIf End Function Für bessere Verständnis hier noch einmal der ganze Code, inkl. Gfx zum Starten: http://files.filefront.com/Tes...einfo.html Was mache ich falsch? |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutze Tileimage. Damit sollte es gehen.
Also statt Drawimage sterne,x,y machst du tileimage sterne,0,tmp wobei du die variable tmp in jeder schleife um 1 erhöhst. Hier der ganze Code: Code: [AUSKLAPPEN] ;---------------------------------------------
;Variablen Global tmp Global player_x=310 Global player_y=450 Global player_speed# = 3.5 ; Geschwindigkeit des Raumschiffs, standart:3.5 Global enemy_x=0 Global enemy_y=20 Global anim=0 Global counter=0 Global mog=1 Global timer=0 Global bullet_fired=False Global bullet_x=0 Global bullet_y=0 Global score=0 ;Sterne ;--------------------------------------------- Global sterne_x1=1 Global sterne_y1=1 Global sterne_x2=1 Global sterne_y2=-480 Global sternespeed=4 ;--------------------------------------------- ;Grafik Graphics 640, 480, 32, 2 SetBuffer BackBuffer() Global player=LoadImage("spaceship2.bmp") Global enemy=LoadAnimImage("alien.bmp", 49, 34, 0, 2) Global bullet=LoadImage("bullet.bmp") Global sterne=LoadImage("stars.bmp") ;--------------------------------------------- ;Hauptschleife Repeat Cls Text 320, 0, "Punkte: " + score Animation Check_Bullet stars Draw Move_Player Move_Enemy If timer<100 Then gratz EndIf Flip Until KeyHit(1) End ;--------------------------------------------- ;Funktionen Function Move_player() If KeyDown(203) Then player_x=player_x-player_speed EndIf If KeyDown(205) Then player_x=player_x+player_speed EndIf If player_x < 0 Then player_x = 0 EndIf If player_x > 605 Then player_x = 605 EndIf End Function ;--------------------------------------------- Function Move_Enemy() Enemy_x=Enemy_x+mog If enemy_x > 590 Or enemy_x<0 Then mog=-mog EndIf End Function ;--------------------------------------------- Function Check_Bullet() If KeyHit(57) Then bullet_x=player_x+8 bullet_y=player_y-10 bullet_fired=True EndIf If bullet_fired bullet_y=bullet_y-4 If bullet_y>0 Then If ImagesCollide(bullet, bullet_x, bullet_y, 0, enemy, enemy_x, enemy_y, anim) And mog >0 Then mog=mog+0.5 score=score+100 enemy_x=0 bullet_fired = False ElseIf ImagesCollide(bullet, bullet_x, bullet_y, 0, enemy, enemy_x, enemy_y, anim) And mog < 0 Then mog=mog-0.5 score=score+100 enemy_x=0 bullet_fired=False EndIf ElseIf bullet_y<0 Then score=score-50 bullet_fired=False EndIf EndIf End Function ;--------------------------------------------- Function gratz() If score=500 Then Text 310, 40, "Glückwunsch, du hast 500 Punkte erreicht!" timer=timer+1 EndIf If score=1000 Then Text 310, 40, "Glückwunsch, du hast 1000 Punkte erreicht!" timer=timer+1 EndIf End Function ;--------------------------------------------- Function Animation() If anim=0 Then counter=counter+1 ElseIf anim=1 Then counter=counter+1 EndIf If counter=20 Then If anim=0 Then anim=1 ElseIf anim=1 Then anim=0 EndIf counter=0 EndIf End Function ;--------------------------------------------- Function Draw() ;DrawImage sterne, sterne_x1, sterne_y1 ;DrawImage sterne, sterne_x2, sterne_y2 tmp=tmp+1 TileImage sterne,0,tmp DrawImage player, player_x, player_y DrawImage enemy, enemy_x, enemy_y, anim If bullet_fired Then DrawImage bullet, bullet_x, bullet_y EndIf End Function ;--------------------------------------------- Function stars() If sterne_y1 > 480 Then sterne_y1=-480 sterne_y1=sterne_y1+sternespeed EndIf If sterne_y2 > 480 Then sterne_y2 = -480 EndIf sterne_y2=sterne_y2+sternespeed End Function Der Name tmp für die Variable ist natürlich schlecht. Den musst du halt noch anpassen, wie er dir gefällt ![]() MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
Hektor II |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK, danke für die schnelle Antwort. ![]() Aber soll ich wie du, Tileimage und davor trotzdem noch die beiden Drawimage oder dann nur Tileimage, 0, tmp? Ok danke ich seh´s schon... Also ist der ganze Code mit sterne_x1 usw. umsonst gewesen? ^^ |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ok danke ich seh´s schon... Also ist der ganze Code mit sterne_x1 usw. umsonst gewesen? ^^
Ja ![]() |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Ich finde den download nicht. ![]() 2. Habe den Text nur überflogen. Postet zurück wenn ich etwas falsch interpretiert habe. 3.Verbesserung: Code: [AUSKLAPPEN] Global player_speed# = 3.5 ; Geschwindigkeit des Raumschiffs, standart:3.5
Code: [AUSKLAPPEN] If KeyDown(203) Then
player_x=player_x-player_speed elseif KeyDown(205) Then player_x=player_x+player_speed EndIf Code: [AUSKLAPPEN] tmp=tmp+1
TileImage sterne,0,tmp So wie's aussieht kann man beschleinigen und bremsen. Vielleicht könnte man den Sternenbackground schneller/langsamer bewegen lassen, je nach dem, wie schnell man fliegt. Code: [AUSKLAPPEN] tmp#=tmp#+player_speed/5.0
if tmp#>imageheight(sterne) then tmp#=tmp#-imageheight(sterne) TileImage sterne,0,tmp# Hab noch ne kleine Sicherung eingebaut. Nicht das da irgendso nen Fanatiker stundenlang spielt und tmp# irgendwann über 2,.... Mrd. kommt!!! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group