Code für abschießen----bei meinem is irgendwas falsch?HILFE
Übersicht

wooxBetreff: Code für abschießen----bei meinem is irgendwas falsch?HILFE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute..
Ich bin gerade dabei einen 2D Space-Shooter zu Programmieren... Aber mein Code is irgendwie falsch!! ![]() Hoffe ihr könnt mir helfen!! Zuerst erstelle ich aber nen Schuss ![]() Das Type alien is das mit dem abschießen Hier der Code: Code: [AUSKLAPPEN] Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Local a.alien For i= 1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x Next If ImagesCollide(s\img,s\x1, s\y1, 0, a\img,a\x,a\y,0) Then a\zahl =a\zahl -1 a\zahl =a\zahl +1 a\abschüsse = a\abschüsse + 1 |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
So beim überfliegen: Code: [AUSKLAPPEN] If ImagesCollide(s\img,s\x1, s\y1, 0, a\img,a\x,a\y,0) Then a\zahl =a\zahl -1 a\zahl =a\zahl +1 a\abschüsse = a\abschüsse + 1 Das müsste egdl auch in deine Foreach-Schleife nicht? grüße |
||
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mhh??Geht nicht....
Das is der ganze Code vieleicht kannst du daraus mehr schließen ![]() Code: [AUSKLAPPEN] Graphics 800,600,16,2 AppTitle "Space-Shooter" SetBuffer BackBuffer() Global playerx,playery,playerspeed Global Spieler = LoadImage ("gfx/ship.bmp") Global schusspic = LoadImage("gfx/orb.bmp") Global logo =LoadImage ("gfx/logo.bmp") Global img = LoadImage ("gfx/enemy1.bmp") Global SternAnzahl=200 Dim sternx(SternAnzahl),sterny(SternAnzahl),sternz(SternAnzahl) Type schuss Field x,y,speed,lifetime,img End Type For i=1 To SternAnzahl sternx(i) = Rand(0,800) sterny(i) = Rand(0,600) sternz(i) = Rand(1,4) Next menustate=1 Repeat Cls bewege_sterne() logo() Select menustate Case 1Color 0,0,250:Text 400,300,"Start game",1,1 Color 200,200,200:Text 400,350,"Beenden",1,1 Case 2 Color 200,200,200:Text 400,300,"Start game",1,1 Color 0,0,250:Text 400,350,"Beenden",1,1 End Select If KeyHit(200) And menustate>1 Then menustate=menustate- 1 If KeyHit(208) And menustate<2 Then menustate=menustate+ 1 If KeyHit(57) Select menustate Case 1 game() ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game() playerx=300 playery=300 playerspeed=4 While Not KeyHit(1) Cls ;nicht vergessen bewege_sterne() bewege_spieler() update_schuss() Flip Wend End Function Function bewege_spieler() ;spieler bewegen If KeyDown(200) And playery>20 Then playery = playery -playerspeed If KeyDown(208) And playery<570 Then playery = playery +playerspeed If KeyDown(203) And playerx>20 Then playerx = playerx -playerspeed If KeyDown(205) And playerx<760 Then playerx = playerx +playerspeed If KeyDown(57) Then create_schuss() If KeyDown(1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne() For i=1 To SternAnzahl If sternx(i)>0 Then sternx(i)=sternx(i)-sternz(i) Else sternx(i)=800 EndIf Plot sternx(i),sterny(i) Next End Function Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Local a.alien For i= 1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x If ImagesCollide(s\img,s\x1, s\y1, 0, a\img,a\x,a\y,0) Then a\zahl =a\zahl -1 a\zahl =a\zahl +1 a\abschüsse = a\abschüsse + 1 Next Mailt mir |
||
Hot-BitSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hoi.
Sorry, off-topic... Bitte ändere deinen Avatar. Ich denke immer, warum hat TheShadow mit sowas Probleme ? Man kann ja mal nach gucken, ob schon wer so einen Avatar hat. Sollte nicht zuviel verlangt sein. Toni |
||
... ..... .i.. ...
*** Sieger des BB-Gameboy-Contest 2004 Sieger des Blitzbaster 2D-Minigolf-Contest 2005 *** |
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo--->SORRY
Hast du denn auch ne Antwort auf mein Problem? ![]() |
||
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oder isses so richtig?
Code: [AUSKLAPPEN] Graphics 800,600,16,2 AppTitle "Space-Shooter" SetBuffer BackBuffer() Global playerx,playery,playerspeed Global Spieler = LoadImage ("gfx/ship.bmp") Global schusspic = LoadImage("gfx/orb.bmp") Global logo =LoadImage ("gfx/logo.bmp") Global img = LoadImage ("gfx/enemy1.bmp") Global SternAnzahl=200 Dim sternx(SternAnzahl),sterny(SternAnzahl),sternz(SternAnzahl) Type schuss Field x,y,speed,lifetime,img End Type For i=1 To SternAnzahl sternx(i) = Rand(0,800) sterny(i) = Rand(0,600) sternz(i) = Rand(1,4) Next menustate=1 Repeat Cls bewege_sterne() logo() Select menustate Case 1Color 0,0,250:Text 400,300,"Start game",1,1 Color 200,200,200:Text 400,350,"Beenden",1,1 Case 2 Color 200,200,200:Text 400,300,"Start game",1,1 Color 0,0,250:Text 400,350,"Beenden",1,1 End Select If KeyHit(200) And menustate>1 Then menustate=menustate- 1 If KeyHit(208) And menustate<2 Then menustate=menustate+ 1 If KeyHit(57) Select menustate Case 1 game() ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game() playerx=300 playery=300 playerspeed=4 While Not KeyHit(1) Cls ;nicht vergessen bewege_sterne() bewege_spieler() update_schuss() Flip Wend End Function Function bewege_spieler() ;spieler bewegen If KeyDown(200) And playery>20 Then playery = playery -playerspeed If KeyDown(208) And playery<570 Then playery = playery +playerspeed If KeyDown(203) And playerx>20 Then playerx = playerx -playerspeed If KeyDown(205) And playerx<760 Then playerx = playerx +playerspeed If KeyDown(57) Then create_schuss() If KeyDown(1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne() For i=1 To SternAnzahl If sternx(i)>0 Then sternx(i)=sternx(i)-sternz(i) Else sternx(i)=800 EndIf Plot sternx(i),sterny(i) Next End Function Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Local a.alien For i= 1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x Next If ImagesCollide(s\img,s\x1, s\y1, 0, a\img,a\x,a\y,0) Then a\zahl =a\zahl -1 a\zahl =a\zahl +1 a\abschüsse = a\abschüsse + 1 Next |
||
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Local a.alien
For i= 1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x Next For s=each alien If ImagesCollide(s\img,s\x1, s\y1, 0, a\img,a\x,a\y,0) Then a\zahl =a\zahl -1 a\zahl =a\zahl +1 a\abschüsse = a\abschüsse + 1 next Next Vielleicht gehts schon so! |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So gehts auch nicht.... ![]() ![]() ![]() ![]() Code: [AUSKLAPPEN] Graphics 800,600,16,2 AppTitle "Space-Shooter" SetBuffer BackBuffer() Global playerx,playery,playerspeed Global Spieler = LoadImage ("gfx/ship.bmp") Global schusspic = LoadImage("gfx/orb.bmp") Global logo =LoadImage ("gfx/logo.bmp") Global img = LoadImage ("gfx/enemy1.bmp") Global SternAnzahl=200 Dim sternx(SternAnzahl),sterny(SternAnzahl),sternz(SternAnzahl) Type schuss Field x,y,speed,lifetime,img End Type For i=1 To SternAnzahl sternx(i) = Rand(0,800) sterny(i) = Rand(0,600) sternz(i) = Rand(1,4) Next menustate=1 Repeat Cls bewege_sterne() logo() Select menustate Case 1Color 0,0,250:Text 400,300,"Start game",1,1 Color 200,200,200:Text 400,350,"Beenden",1,1 Case 2 Color 200,200,200:Text 400,300,"Start game",1,1 Color 0,0,250:Text 400,350,"Beenden",1,1 End Select If KeyHit(200) And menustate>1 Then menustate=menustate- 1 If KeyHit(208) And menustate<2 Then menustate=menustate+ 1 If KeyHit(57) Select menustate Case 1 game() ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game() playerx=300 playery=300 playerspeed=4 While Not KeyHit(1) Cls ;nicht vergessen bewege_sterne() bewege_spieler() update_schuss() Flip Wend End Function Function bewege_spieler() ;spieler bewegen If KeyDown(200) And playery>20 Then playery = playery -playerspeed If KeyDown(208) And playery<570 Then playery = playery +playerspeed If KeyDown(203) And playerx>20 Then playerx = playerx -playerspeed If KeyDown(205) And playerx<760 Then playerx = playerx +playerspeed If KeyDown(57) Then create_schuss() If KeyDown(1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne() For i=1 To SternAnzahl If sternx(i)>0 Then sternx(i)=sternx(i)-sternz(i) Else sternx(i)=800 EndIf Plot sternx(i),sterny(i) Next End Function Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Local a.alien For i= 1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x Next For s=Each alien If ImagesCollide(s\img,s\x1, s\y1, 0, a\img,a\x,a\y,0) Then a\zahl =a\zahl -1 a\zahl =a\zahl +1 a\abschüsse = a\abschüsse + 1 Next |
||
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube ich schreibe das abschießen nochmal neu!!
Vieleicht gehts dann ja..Ich hoffe ihr habt noch vorschläge... Wie ich es machen könnte!! Bitte schreibt noch!! ![]() |
||
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn ihr so freundlich seit und mir einer den richtigen Code schicken würde wäre ich dem jenigem sehr dankbar ![]() Bitte es soll mir einer den Code schreiben wenn es ncih zuviele umstände macht...!! Ich bin nämlich am versagen!! ![]() BITTE |
||
![]() |
adba |
![]() Antworten mit Zitat ![]() |
---|---|---|
das brauch zeit vorallem wenn man diese bilder nicht hat und dann irgendwelche dummy bilder nehen muss.. mach doch ein rar oder zip deinse projektes und wir schauen mal... | ||
![]() |
MoochBetreff: .. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sonst kann ich dir leider auch nicht helfen...
Musst du mal als zip oder rar irgendwo hochladen... |
||
Pentium IV 3.0Ghz; nVidia Geforce 6800;
Microsoft Windows XP Home SP2; BlitzBasic 3D .:: Sites ::. .:: http://www.fl4sh-clan.de/ ::. |
![]() |
MoochBetreff: .. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry für doppel-posting!
Also bei mir functs so: Code: [AUSKLAPPEN] Graphics 800,600,16,2 AppTitle "Space-Shooter" SetBuffer BackBuffer() Global playerx,playery,playerspeed Global Spieler = LoadImage ("player.bmp") Global schusspic = LoadImage("disc.bmp") Global logo =LoadImage ("racetrack.bmp") Global img = LoadImage ("alien.bmp") Global SternAnzahl=200 Dim sternx(SternAnzahl),sterny(SternAnzahl),sternz(SternAnzahl) Type schuss Field x Field y Field speed Field lifetime Field img End Type For i=1 To SternAnzahl sternx(i) = Rand(0,800) sterny(i) = Rand(0,600) sternz(i) = Rand(1,4) Next menustate=1 Repeat Cls bewege_sterne() logo() Select menustate Case 1 Color 0,0,250:Text 400,300,"Start game",1,1 Color 200,200,200:Text 400,350,"Beenden",1,1 Case 2 Color 200,200,200:Text 400,300,"Start game",1,1 Color 0,0,250:Text 400,350,"Beenden",1,1 End Select If KeyHit(200) And menustate>1 Then menustate=menustate- 1 If KeyHit(208) And menustate<2 Then menustate=menustate+ 1 If KeyHit(57) Select menustate Case 1 game() ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game() playerx=300 playery=300 playerspeed=4 While Not KeyHit(1) Cls ;nicht vergessen bewege_sterne() bewege_spieler() update_schuss() Flip Wend End Function Function bewege_spieler() ;spieler bewegen If KeyDown(200) And playery>20 Then playery = playery -playerspeed If KeyDown(208) And playery<570 Then playery = playery +playerspeed If KeyDown(203) And playerx>20 Then playerx = playerx -playerspeed If KeyDown(205) And playerx<760 Then playerx = playerx +playerspeed If KeyDown(57) Then create_schuss() If KeyDown(1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne() For i=1 To SternAnzahl If sternx(i)>0 Then sternx(i)=sternx(i)-sternz(i) Else sternx(i)=800 EndIf Plot sternx(i),sterny(i) Next End Function Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Local a.alien For i=1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x Next For s.alien=Each alien If ImagesCollide(s\img,s\x,s\y,0,a\img,a\x,a\y,0) Then a\zahl = a\zahl -1 a\zahl = a\zahl +1 a\abschüsse = a\abschüsse + 1 EndIf Next Warum denn s\x1 und s\y1 ? Ich hoffe, ich hab dein Problem verstanden?! |
||
Pentium IV 3.0Ghz; nVidia Geforce 6800;
Microsoft Windows XP Home SP2; BlitzBasic 3D .:: Sites ::. .:: http://www.fl4sh-clan.de/ ::. |
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo dein Code geht nur ein Problem wäre da noch!!
Er zeigt die Gegner nicht an==???? Bitte mail mir!! |
||
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habs immoment so:
Code: [AUSKLAPPEN] Graphics 800,600,16,2 AppTitle "Space-Shooter" SetBuffer BackBuffer() Global playerx,playery,playerspeed Global Spieler = LoadImage ("gfx/ship.bmp") Global schusspic = LoadImage("gfx/orb.bmp") Global logo =LoadImage ("gfx/logo.bmp") Global img = LoadImage ("gfx/orb.bmp") Global SternAnzahl=200 Dim sternx(SternAnzahl),sterny(SternAnzahl),sternz(SternAnzahl) Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Type schuss Field x Field y Field speed Field lifetime Field img End Type For i=1 To SternAnzahl sternx(i) = Rand(0,800) sterny(i) = Rand(0,600) sternz(i) = Rand(1,4) Next menustate=1 Repeat Cls bewege_sterne() logo() Select menustate Case 1 Color 0,0,250:Text 400,300,"Start game",1,1 Color 200,200,200:Text 400,350,"Beenden",1,1 Case 2 Color 200,200,200:Text 400,300,"Start game",1,1 Color 0,0,250:Text 400,350,"Beenden",1,1 End Select If KeyHit(200) And menustate>1 Then menustate=menustate- 1 If KeyHit(208) And menustate<2 Then menustate=menustate+ 1 If KeyHit(57) Select menustate Case 1 game() ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game() playerx=300 playery=300 playerspeed=4 While Not KeyHit(1) Cls ;nicht vergessen bewege_sterne() bewege_spieler() update_schuss() Flip Wend End Function Function bewege_spieler() ;spieler bewegen If KeyDown(200) And playery>20 Then playery = playery -playerspeed If KeyDown(208) And playery<570 Then playery = playery +playerspeed If KeyDown(203) And playerx>20 Then playerx = playerx -playerspeed If KeyDown(205) And playerx<760 Then playerx = playerx +playerspeed If KeyDown(57) Then create_schuss() If KeyDown(1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne() For i=1 To SternAnzahl If sternx(i)>0 Then sternx(i)=sternx(i)-sternz(i) Else sternx(i)=800 EndIf Plot sternx(i),sterny(i) Next End Function Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Local a.alien For i=1 To zahl a=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse DrawImage a\img,a\y,a\x Next For s.alien=Each alien DrawImage a\img,a\y,a\x If ImagesCollide(s\img,s\x,s\y,0,a\img,a\x,a\y,0) Then a\zahl = a\zahl -1 a\zahl = a\zahl +1 a\abschüsse = a\abschüsse + 1 EndIf Next |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Lad das Projekt + Bilder hoch sodas man sich keine Dummies einbauen muss. Vielleicht propierts dann ja jemand für dich aus! grüße |
||
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok,mach ich!!
Link zu meinem Code inclusive gfx Ordner!! http://mitglied.lycos.de/woox11/Spiel.rar BITTE MELDEN wenn ihr es hingekriegt habt!! |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Sowas in der Art: Code: [AUSKLAPPEN] Graphics 800,600,16,2 AppTitle "Space-Shooter" SetBuffer BackBuffer() Global playerx,playery,playerspeed Global Spieler = LoadImage ("gfx/ship.bmp") Global schusspic = LoadImage("gfx/orb.bmp") Global logo =LoadImage ("gfx/logo.bmp") Global img = LoadImage ("gfx/enemy1.bmp") Global SternAnzahl=200 Dim sternx(SternAnzahl),sterny(SternAnzahl),sternz(SternAnzahl) Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Type schuss Field x Field y Field speed Field lifetime Field img End Type zahl = 5 create_enemies(5) For i=1 To SternAnzahl sternx(i) = Rand(0,800) sterny(i) = Rand(0,600) sternz(i) = Rand(1,4) Next menustate=1 Repeat Cls bewege_sterne() logo() Select menustate Case 1 Color 0,0,250:Text 400,300,"Start game",1,1 Color 200,200,200:Text 400,350,"Beenden",1,1 Case 2 Color 200,200,200:Text 400,300,"Start game",1,1 Color 0,0,250:Text 400,350,"Beenden",1,1 End Select If KeyHit(200) And menustate>1 Then menustate=menustate- 1 If KeyHit(208) And menustate<2 Then menustate=menustate+ 1 If KeyHit(57) Select menustate Case 1 game() ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game() playerx=300 playery=300 playerspeed=4 While Not KeyHit(1) Cls ;nicht vergessen bewege_sterne() bewege_spieler() update_schuss() update_enemies() draw_enemies() Flip Wend End Function Function bewege_spieler() ;spieler bewegen If KeyDown(200) And playery>20 Then playery = playery -playerspeed If KeyDown(208) And playery<570 Then playery = playery +playerspeed If KeyDown(203) And playerx>20 Then playerx = playerx -playerspeed If KeyDown(205) And playerx<760 Then playerx = playerx +playerspeed If KeyDown(57) Then create_schuss() If KeyDown(1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne() For i=1 To SternAnzahl If sternx(i)>0 Then sternx(i)=sternx(i)-sternz(i) Else sternx(i)=800 EndIf Plot sternx(i),sterny(i) Next End Function Function create_schuss() s.schuss=New schuss s\x=playerx+50 s\y=playery+20 s\speed=10 s\lifetime=30 s\img=schusspic End Function Function update_schuss() For s.schuss = Each schuss ;alle schüsse del=0 ;löschen=0 s\lifetime=s\lifetime-1 ;lebenszeit-1 If s\lifetime<0 Then del=1 ;wenn lebenszeit<0 dann löschen s\x=s\x+s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del=1 Then ;wenn gelöscht werden soll del=0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo() DrawImage logo ,180,200 End Function Function create_enemies(anzahl) For i=1 To anzahl a.alien=New alien a\x=Rand(0,640) a\y=Rand(0,480) a\img=img a\zahl= zahl a\abschüsse = abschüsse Next End Function Function update_enemies() For a.alien=Each alien For s.schuss = Each schuss If ImagesCollide(s\img,s\x,s\y,0,a\img,a\x,a\y,0) Then Delete a Exit EndIf Next Next End Function Function draw_enemies() For a.alien=Each alien DrawImage a\img,a\y,a\x Next End Function Wie wärs übrigens mit Codeformatierung? Und, so ganz perfekt durchdacht ist der Code auch nicht oder? Wieso hast du nichtmal vorher geplant was du nacher implementierst? ![]() grüße |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
CodeFormatierung... ich mach mir mal die Mühe ![]() Graphics 800 ,600,16,2
AppTitle "Space-Shooter" SetBuffer BackBuffer () Global playerx,playery,playerspeed Global Spieler = LoadImage ("gfx/ship.bmp") Global schusspic = LoadImage ("gfx/orb.bmp") Global logo = LoadImage ("gfx/logo.bmp") Global img = LoadImage ("gfx/enemy1.bmp") Global SternAnzahl = 200 Dim sternx (SternAnzahl) ,sterny (SternAnzahl) ,sternz (SternAnzahl) Type alien Field x,y,img Field zahl = zahl + 1 Field abschüsse = 0 Field schusspic End Type Type schuss Field x Field y Field speed Field lifetime Field img End Type zahl = 5 create_enemies (5) For i = 1 To SternAnzahl sternx (i) = Rand (0 ,800) sterny (i) = Rand (0 ,600) sternz (i) = Rand (1 ,4) Next menustate = 1 Repeat Cls bewege_sterne () logo () Select menustate Case 1 Color 0 ,0,250 : Text 400 ,300,"Start game",1,1 Color 200 ,200,200 : Text 400 ,350,"Beenden",1,1 Case 2 Color 200 ,200,200 : Text 400 ,300,"Start game",1,1 Color 0 ,0,250 : Text 400 ,350,"Beenden",1,1 End Select If KeyHit (200) And menustate > 1 Then menustate = menustate - 1 If KeyHit (208) And menustate < 2 Then menustate = menustate + 1 If KeyHit (57) Then Select menustate Case 1 game () ;function_options() Case 2 ; Bei Case 3 wird nur das END abgefragt also wenn man Space (leertaste) drückt Endet das Programm! End End Select EndIf Flip Forever Function game () playerx = 300 playery = 300 playerspeed = 4 While Not KeyHit (1) Cls ;nicht vergessen bewege_sterne () bewege_spieler () update_schuss () update_enemies () draw_enemies () Flip Wend End Function Function bewege_spieler () ;spieler bewegen If KeyDown (200) And playery > 20 Then playery = playery - playerspeed If KeyDown (208) And playery < 570 Then playery = playery + playerspeed If KeyDown (203) And playerx > 20 Then playerx = playerx - playerspeed If KeyDown (205) And playerx < 760 Then playerx = playerx + playerspeed If KeyDown (57) Then create_schuss () If KeyDown (1) Then End ;spieler darstellen DrawImage spieler,playerx,playery End Function Function bewege_sterne () For i = 1 To SternAnzahl If sternx (i) > 0 Then sternx (i) = sternx (i) - sternz (i) Else sternx (i) = 800 EndIf Plot sternx (i) ,sterny (i) Next End Function Function create_schuss () s.schuss = New schuss s\x = playerx + 50 s\y = playery + 20 s\speed = 10 s\lifetime = 30 s\img = schusspic End Function Function update_schuss () For s.schuss = Each schuss ;alle schüsse del = 0 ;löschen=0 s\lifetime = s\lifetime - 1 ;lebenszeit-1 If s\lifetime < 0 Then del = 1 ;wenn lebenszeit<0 dann löschen s\x = s\x + s\speed ;neue position DrawImage s\img,s\x,s\y ;darstellen If del = 1 Then ;wenn gelöscht werden soll del = 0 Delete s ;lösche das type EndIf Next ;nächstes End Function Function logo () DrawImage logo ,180,200 End Function Function create_enemies (anzahl) For i = 1 To anzahl a.alien = New alien a\x = Rand (0 ,640) a\y = Rand (0 ,480) a\img = img a\zahl = zahl a\abschüsse = abschüsse Next End Function Function update_enemies () For a.alien = Each alien For s.schuss = Each schuss If ImagesCollide (s\img,s\x,s\y,0,a\img,a\x,a\y,0) Then Delete a Exit EndIf Next Next End Function Function draw_enemies () For a.alien = Each alien DrawImage a\img,a\y,a\x Next End Function |
||
[BB2D | BB3D | BB+]
|
woox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab jetzt alles neu geschrieben 3 Dateien gemacht
Spiel,Variablen,Functionen Dann alles in Types und Functionen gesetzt nun gehts!! ![]() ![]() ![]() HUUHU Aber trodzdem danke fürs schreiben an: ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group