kleiner spaceshooter
Übersicht

pinochino |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Haha... Wenn gegnercounter keinen "Grundwert" hat kann er da natürlich auch nichts draufzählen xD
Danke |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Deine Formulierung ist etwas sonderbar, aber scheinbar hast du die Problemstelle ja gefunden.
Gegnercounter wird bei jedem For/EACH natürlich immer weiter hochgezählt und erreicht deshalb nie den Zustand kleiner als der Level zu sein. Richtig wäre GegnerCounter for der FOR/EACH jedesmals wieder auf 0 zu setzen. |
||
pinochino |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt.
Meine Formulierung war nicht nur Sonderbar, sondern völlig Falsch. ![]() Hab einfach sofort das erste geschrieben was mir in den Sinn kam und erst nach meinem Post nochmal drüber nachgedacht. Da hab ich dann auch Gemerkt das ich Blödsinn geschrieben habe da der Counter ja immer 1 Speichert und somit niemals die Bedingung für Create_Gegner() erfüllt. |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie kommst du jetzt wieder drauf, dass der Counter 1 speichert? bei mir zählt der hoch bis 1000.
Hast Du den DEBUGLOG überhaupt eingebaut und im Debug-Fenster beobachtet, was geschieht? |
||
pinochino |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es ist späääät ...
wenn ich nicht gegnercounter=0 vor der for-schleife definiere, zählt er bis über tausend .... bei gegnercounter=0 vor der for schleife zählt er 0 erstellt einen gegner und zählt dann solange eins bis gegner deleted wird und zählt dann wieder 0 und so weiter ![]() EDIT: und ja ich hab ihn eingebaut Code: [AUSKLAPPEN] DebugLog gegnercounter + " " + player_level
|
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber müßten denn Gegner, die das Spielfeld links verlassen haben, nicht auch DELETEd werden oder vielleicht wieder rechts reinkommen?
ändere den code in: BlitzBasic: [AUSKLAPPEN] Local gegnercounter%=0 |
||
pinochino |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja.
Gegner die x<=0 sind werden deleted counter ist dann wieder 0 und create_gegner schafft daraufhin einen neuen Habe den Code hinterher wieder so hingebügelt das die gegner bei x=830 erstellt werden und bei x<0 deleted werden EDIT: Code: [AUSKLAPPEN] Const xmax=800, ymax=600
Graphics xmax,ymax,16,2 SetBuffer BackBuffer() Global fps=CreateTimer(60) Global playerx# = 30 Global playery# = ymax/2 Global playerspeed# = 5 Global player_last_schuss Global player_level = 1 Global playergfx=LoadImage("gfx\raumschiff.png") MidHandle playergfx Global schussgfx=LoadImage("gfx\schuss.png") MidHandle schussgfx RotateImage schussgfx, 90 Global gegnergfx=LoadImage("gfx\gegnerschiff.png") MidHandle gegnergfx RotateImage gegnergfx, -90 Type schuss Field x# Field y# Field speed# Field tot End Type Type gegner Field x# Field y# Field speed# Field tot End Type Repeat WaitTimer(fps) DrawImage playergfx, playerx,playery If KeyDown(200) Then playery=playery-playerspeed EndIf If KeyDown(208) Then playery=playery+playerspeed EndIf If playery>600 Then playery=playery-playerspeed If playery<0 Then playery=playery+playerspeed If KeyDown(57)And player_last_schuss<MilliSecs() Then create_schuss(playerx,playery,10) player_last_schuss=MilliSecs()+1000 EndIf For s.schuss = Each schuss DrawImage schussgfx,s\x,s\y s\x=s\x+10 If s\x>800 Then s\tot =1 If s\tot = 1 Then Delete s.schuss Next Local gegnercounter=0 For g.gegner = Each gegner DebugLog "Gegner vorhanden bei " + g\x gegnercounter=gegnercounter+1 DrawImage gegnergfx,g\x,g\y If g\x<=0 Then g\tot=1 g\x=g\x-g\speed For s.schuss = Each schuss If ImagesCollide(gegnergfx,g\x,g\y,0,schussgfx,s\x,s\y,0) Then s\tot=1 g\tot=1 EndIf Next If g\tot=1 Then Delete g.gegner EndIf Next DebugLog gegnercounter + " " + player_level If gegnercounter<player_level Then create_gegner() EndIf Flip 0 Cls Until KeyHit(1) End Function create_schuss(x#,y#,speed#) s.schuss = New schuss s\x = x s\y = y s\speed= speed End Function Function create_gegner() g.gegner = New gegner g\x= 830 g\y= Rand(10,590) g\speed= 3 End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group