Hauptmenü
Übersicht

![]() |
Flori-DBetreff: Hauptmenü |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.Was geht an dem Code nicht?
Ich kriege immer die fehlermeldung "Image does not exist", das kann aber nicht sein da alle Bilder in dem gleichen Ordner sind wie der Code. Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") hinter = LoadImage ("stars.bmp") tiles = LoadImage ("blocks1.bmp") maus = LoadImage ("pointer.bmp") font = LoadFont("Times New Roman", 40, 1, 0, 0) SetFont font Dim Rak(100,2) Dim Alien(50,2) Dim AlienExplodiert(50,1) X = 305 Y = 420 ;Menüpunkte erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Menüsteine erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü bezeichnen Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Start" MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; SetBuffer BackBuffer() Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Einstellungen() Repeat Cls Text 100,100, "Einstellungen" Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Text 100,100, "Ende" Flip Until KeyHit(1) Or KeyHit(57) End End Function Function Start() Repeat Cls ; ; Hauptschleife ; Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H ;hier kommt die Fehlermeldung. DrawImage schiff, X,Y ;Punkte Anzeige Text 400,10, "Sie haben "+punkte+" Punkte Punkte = Punkte +1 ; Schuß-Test If KeyHit(57) Then Schuss = Schuss + 1 If Schuss = 101 Then Schuss = 1 Rak(Schuss,0) = 1 Rak(Schuss,1) = X+10 Rak(Schuss,2) = Y-19 PlaySound(schusston) EndIf ; ggf. Raketen zeichnen For I=1 To 100 If Rak(I,0) = 1 Then DrawImage rakete, Rak(I,1), Rak(I,2) Rak(I,2) = Rak(I,2) - 10 EndIf Next ; Pfeiltasten abfragen If KeyDown(200) = 1 Then Y = Y - 1 If KeyDown(208) = 1 Then Y = Y + 1 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 ; Rand-Überschreitung verhindern If X < 0 Then X = 0 If X > 609 Then X = 609 If Y < 0 Then Y = 0 If Y > 449 Then Y = 449 ; Kollision testen For I=1 To 100 If Rak(I,0) <> 0 Then For J=1 To 50 If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then PlaySound(trefferton) Alien(J,0) = -1 EndIf Next EndIf Next ; Explosion Alien zeichnen For I=1 To 50 If Alien(I,0) = -1 Then If AlienExplodiert(I,1) + 100 < MilliSecs() Then AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1 AlienExplodiert(I,1) = MilliSecs() If AlienExplodiert(I,0) = 6 Then AlienExplodiert(I,0) = 0 AlienExplodiert(I,1) = 0 Alien(I,0) = 0 EndIf EndIf DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0) EndIf Next ;Kollision Komet-Spieler For I=1 To 50 If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y) Then PlaySound(trefferton) Alien(I,0) = -1 Print ("Game Over") Delay 9000000000000 EndIf Next ; Alien-Steuerung For I=1 To 50 If Alien(I,0) = 0 Then Alien(I,0) = Rand(100,400) Alien(I,1) = Rand(-20,640) Alien(I,2) = Rand(-100,0) EndIf If Alien(I,0) <> -1 Then Alien(I,2) = Alien(I,2) + 1 Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0) EndIf If Alien(I,2) > 480 Then Alien(I,0) = 0 If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2) Next Flip Until KeyHit(1) Flip Until KeyHit(1) End Function |
||
BB is Macht!
Homepage: www.flori-d.de |
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst die Bilder Global setzen. | ||
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nee,ohne Hauptmenü gehts ja.Nur mit Spinnt er. | ||
BB is Macht!
Homepage: www.flori-d.de |
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuchs mal
Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() global hinter = LoadImage("stars.bmp") global schiff = LoadImage("R4.bmp") global alienbild = LoadImage("Rock1.bmp") global rakete = LoadImage("torpedo0016.bmp") global explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) global schusston = LoadSound("soundfx11.wav") global trefferton = LoadSound("soundfx25.wav") global hinter = LoadImage ("stars.bmp") global tiles = LoadImage ("blocks1.bmp") global maus = LoadImage ("pointer.bmp") font = LoadFont("Times New Roman", 40, 1, 0, 0) SetFont font Dim Rak(100,2) Dim Alien(50,2) Dim AlienExplodiert(50,1) X = 305 Y = 420 ;Menüpunkte erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Menüsteine erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü bezeichnen Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Start" MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; SetBuffer BackBuffer() Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Einstellungen() Repeat Cls Text 100,100, "Einstellungen" Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Text 100,100, "Ende" Flip Until KeyHit(1) Or KeyHit(57) End End Function Function Start() Repeat Cls ; ; Hauptschleife ; Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H ;hier kommt die Fehlermeldung. DrawImage schiff, X,Y ;Punkte Anzeige Text 400,10, "Sie haben "+punkte+" Punkte Punkte = Punkte +1 ; Schuß-Test If KeyHit(57) Then Schuss = Schuss + 1 If Schuss = 101 Then Schuss = 1 Rak(Schuss,0) = 1 Rak(Schuss,1) = X+10 Rak(Schuss,2) = Y-19 PlaySound(schusston) EndIf ; ggf. Raketen zeichnen For I=1 To 100 If Rak(I,0) = 1 Then DrawImage rakete, Rak(I,1), Rak(I,2) Rak(I,2) = Rak(I,2) - 10 EndIf Next ; Pfeiltasten abfragen If KeyDown(200) = 1 Then Y = Y - 1 If KeyDown(208) = 1 Then Y = Y + 1 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 ; Rand-Überschreitung verhindern If X < 0 Then X = 0 If X > 609 Then X = 609 If Y < 0 Then Y = 0 If Y > 449 Then Y = 449 ; Kollision testen For I=1 To 100 If Rak(I,0) <> 0 Then For J=1 To 50 If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then PlaySound(trefferton) Alien(J,0) = -1 EndIf Next EndIf Next ; Explosion Alien zeichnen For I=1 To 50 If Alien(I,0) = -1 Then If AlienExplodiert(I,1) + 100 < MilliSecs() Then AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1 AlienExplodiert(I,1) = MilliSecs() If AlienExplodiert(I,0) = 6 Then AlienExplodiert(I,0) = 0 AlienExplodiert(I,1) = 0 Alien(I,0) = 0 EndIf EndIf DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0) EndIf Next ;Kollision Komet-Spieler For I=1 To 50 If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y) Then PlaySound(trefferton) Alien(I,0) = -1 Print ("Game Over") Delay 9000000000000 EndIf Next ; Alien-Steuerung For I=1 To 50 If Alien(I,0) = 0 Then Alien(I,0) = Rand(100,400) Alien(I,1) = Rand(-20,640) Alien(I,2) = Rand(-100,0) EndIf If Alien(I,0) <> -1 Then Alien(I,2) = Alien(I,2) + 1 Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0) EndIf If Alien(I,2) > 480 Then Alien(I,0) = 0 If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2) Next Flip Until KeyHit(1) Flip Until KeyHit(1) End Function |
||
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mut dem Global komme ich nicht mal ins Hauptmenü der fehler ist da "Duplicate indentifer...".Mit Global gehts nich.Aber eigentlich müsste vom rein logischen her mein Menü doch gehen.(Haare ausreis,Haare ausreis....) | ||
BB is Macht!
Homepage: www.flori-d.de |
newkev |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier ein kleiner Auszug aus der Online hilfe, die sehr zu empfelen ist:
Diese Fehlermeldungen erscheinen, wenn ein Bild im Grafikspeicher nicht gefunden werden konnte. Dafür gibt es mehrere Gründe: -Ein Bild konnte auf dem Datenträger nicht gefunden werden -Die Grafikdatei ist fehlerhaft -Der Grafikspeicher wurde mit GRAPHICS gelöscht -Wert der Variable "Bild" wurde gelöscht -Die Variable "Bild" hat einen falschen Namen -Die Variable "Bild" wurde nicht als global definiert |
||
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, mann hast nicht reichtig gelesen oder wie?
Es geht ohne Hauptmenü nr mit nicht. ![]() |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
aufgefallen ist mir das du 2 mal Hinter ladest, die darf natürlich nur einmal definiert werden sonst gibt es fehlerCode: [AUSKLAPPEN] global hinter = LoadImage ("stars.bmp") ubd dann nochmal Code: [AUSKLAPPEN] global hinter = LoadImage ("stars.bmp")
da solltest du dann nur falls erforderlich Code: [AUSKLAPPEN] hinter = LoadImage ("stars.bmp") so laden ohne diese dann nochmal als global zu machen
|
||
[BB2D | BB3D | BB+]
|
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab jetzt selbst ein Bisschen dran rumgebastelt.Kann einer von euch den Code mal Testen?Müsste zwar laufen läuft aber bei mir nr extrem langsam.Mit dem Delay hängts nicht zusammen soviel schon mal vorweg.(ihr hab alle Bilder aser das Ramschiff auf der Buch-CD)
Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") tiles = LoadImage ("blocks1.bmp") maus = LoadImage ("pointer.bmp") font = LoadFont("Times New Roman", 40, 1, 0, 0) SetFont font Dim Rak(100,2) Dim Alien(50,2) Dim AlienExplodiert(50,1) X = 305 Y = 420 ; Graphik für Menüpunkt erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Graphik für aktiven Spielstein erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü definieren Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Start" MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; SetBuffer BackBuffer() Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Einstellungen() Repeat Cls Text 100,100, "Einstellungen" Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Text 100,100, "Ende" Flip Until KeyHit(1) Or KeyHit(57) End End Function Function Start() Repeat Cls hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") ; ; Hauptschleife ; Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y ;Punkte Anzeige Text 400,10, "Sie haben "+punkte+" Punkte Punkte = Punkte +1 ; Schuß-Test If KeyHit(57) Then Schuss = Schuss + 1 If Schuss = 101 Then Schuss = 1 Rak(Schuss,0) = 1 Rak(Schuss,1) = X+10 Rak(Schuss,2) = Y-19 PlaySound(schusston) EndIf ; ggf. Raketen zeichnen For I=1 To 100 If Rak(I,0) = 1 Then DrawImage rakete, Rak(I,1), Rak(I,2) Rak(I,2) = Rak(I,2) - 10 EndIf Next ; Pfeiltasten abfragen If KeyDown(200) = 1 Then Y = Y - 1 If KeyDown(208) = 1 Then Y = Y + 1 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 ; Rand-Überschreitung verhindern If X < 0 Then X = 0 If X > 609 Then X = 609 If Y < 0 Then Y = 0 If Y > 449 Then Y = 449 ; Kollision testen For I=1 To 100 If Rak(I,0) <> 0 Then For J=1 To 50 If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then PlaySound(trefferton) Alien(J,0) = -1 EndIf Next EndIf Next ; Explosion Alien zeichnen For I=1 To 50 If Alien(I,0) = -1 Then If AlienExplodiert(I,1) + 100 < MilliSecs() Then AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1 AlienExplodiert(I,1) = MilliSecs() If AlienExplodiert(I,0) = 6 Then AlienExplodiert(I,0) = 0 AlienExplodiert(I,1) = 0 Alien(I,0) = 0 EndIf EndIf DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0) EndIf Next ;Kollision Komet-Spieler For I=1 To 50 If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y) Then PlaySound(trefferton) Alien(I,0) = -1 Print ("Game Over") Delay 9000000000000 EndIf Next ; Alien-Steuerung For I=1 To 50 If Alien(I,0) = 0 Then Alien(I,0) = Rand(100,400) Alien(I,1) = Rand(-20,640) Alien(I,2) = Rand(-100,0) EndIf If Alien(I,0) <> -1 Then Alien(I,2) = Alien(I,2) + 1 Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0) EndIf If Alien(I,2) > 480 Then Alien(I,0) = 0 If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2) Next Flip Until KeyHit(1) Flip Until KeyHit(1) End Function |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
Maniac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gleich mal vorweg ich leg mom ne schaffenspause in BB ein (programmier in DB und C) deshalb könnte ich mnich irren ![]() Hehe du ladest deine Bilder in der main schleife^^ Code: [AUSKLAPPEN] Function Start()
Repeat Cls hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") [..] Tja und wieso machst du deine hauptschleife in ner function? t.t Wäre nicht das besser?Code: [AUSKLAPPEN] repeat
zb.?
lal() lol() lul() until keyhit(1) Das jetzt was mir so aufgefallen ist.. |
||
User posted image
^^ |
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
So.Jetzt läufts fast so wie ichs will, nur mein Raumschiff bleibt immer da wo ich am Angang gezeichnet habe.Wenn ich also vorwärts drücke
bewegt es sich um 1 und geht dann wieder an den Ausgangspunkt zurück. Was kann ich dagegen machen? Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") tiles = LoadImage ("blocks1.bmp") maus = LoadImage ("pointer.bmp") Dim Rak(100,2) Dim Alien(50,2) Dim AlienExplodiert(50,1) X = 305 Y = 420 ; Graphik für Menüpunkt erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Graphik für aktiven Spielstein erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü definieren Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Start" MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Einstellungen() Repeat Cls Text 100,100, "Einstellungen" Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Text 100,100, "Ende" Flip Until KeyHit(1) Or KeyHit(57) End End Function Function Start() Repeat Cls hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") ; ; Hauptschleife ; Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y X = 305 Y = 200 ;Punkte Anzeige Text 400,10, "Sie haben "+punkte+" Punkte Punkte = Punkte +1 ; Schuß-Test If KeyHit(57) Then Schuss = Schuss + 1 If Schuss = 101 Then Schuss = 1 Rak(Schuss,0) = 1 Rak(Schuss,1) = X+10 Rak(Schuss,2) = Y-19 PlaySound(schusston) EndIf ; ggf. Raketen zeichnen For I=1 To 100 If Rak(I,0) = 1 Then DrawImage rakete, Rak(I,1), Rak(I,2) Rak(I,2) = Rak(I,2) - 10 EndIf Next ; Pfeiltasten abfragen If KeyDown(200) = 1 Then Y = Y - 1 If KeyDown(208) = 1 Then Y = Y + 1 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 ; Rand-Überschreitung verhindern If X < 0 Then X = 0 If X > 609 Then X = 609 If Y < 0 Then Y = 0 If Y > 449 Then Y = 449 ; Kollision testen For I=1 To 100 If Rak(I,0) <> 0 Then For J=1 To 50 If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then PlaySound(trefferton) Alien(J,0) = -1 EndIf Next EndIf Next ; Explosion Alien zeichnen For I=1 To 50 If Alien(I,0) = -1 Then If AlienExplodiert(I,1) + 100 < MilliSecs() Then AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1 AlienExplodiert(I,1) = MilliSecs() If AlienExplodiert(I,0) = 6 Then AlienExplodiert(I,0) = 0 AlienExplodiert(I,1) = 0 Alien(I,0) = 0 EndIf EndIf DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0) EndIf Next ;Kollision Komet-Spieler For I=1 To 50 If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y) Then PlaySound(trefferton) Alien(I,0) = -1 Print ("Game Over") Delay 90000000000 EndIf Next ; Alien-Steuerung For I=1 To 50 If Alien(I,0) = 0 Then Alien(I,0) = Rand(100,400) Alien(I,1) = Rand(-20,640) Alien(I,2) = Rand(-100,0) EndIf If Alien(I,0) <> -1 Then Alien(I,2) = Alien(I,2) + 1 Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0) EndIf If Alien(I,2) > 480 Then Alien(I,0) = 0 If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2) Next Flip Until KeyHit(1) Until KeyHit(1) End Function |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
da isser der Fehler ![]() Code: [AUSKLAPPEN] Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y X = 305 >hier setzt du die position immer wieder zurück, Y = 200 >sollte vor der Schleife stehen als startpunkt |
||
[BB2D | BB3D | BB+]
|
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und was soll ich jetzt mit dem X machen?
Ich brauch das doch. |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es is doch zum Schreien! ![]() Jetzt kann ich nur nach rechts lenken. ![]() Ich krieg ne kriese! ![]() Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") tiles = LoadImage ("blocks1.bmp") maus = LoadImage ("pointer.bmp") Dim Rak(100,2) Dim Alien(50,2) Dim AlienExplodiert(50,1) X = 305 Y = 420 ; Graphik für Menüpunkt erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Graphik für aktiven Spielstein erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü definieren Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Start" MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Einstellungen() Repeat Cls Text 100,100, "Einstellungen" Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Text 100,100, "Ende" Flip Until KeyHit(1) Or KeyHit(57) End End Function Function Start() Repeat Cls hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") ; ; Hauptschleife ; Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y Y = 200 ;Punkte Anzeige Text 400,10, "Sie haben "+punkte+" Punkte Punkte = Punkte +1 ; Schuß-Test If KeyHit(57) Then Schuss = Schuss + 1 If Schuss = 101 Then Schuss = 1 Rak(Schuss,0) = 1 Rak(Schuss,1) = X+10 Rak(Schuss,2) = Y-19 PlaySound(schusston) EndIf ; ggf. Raketen zeichnen For I=1 To 100 If Rak(I,0) = 1 Then DrawImage rakete, Rak(I,1), Rak(I,2) Rak(I,2) = Rak(I,2) - 10 EndIf Next ; Pfeiltasten abfragen If KeyDown(200) = 1 Then Y = Y - 1 If KeyDown(208) = 1 Then Y = Y + 1 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 ; Rand-Überschreitung verhindern If X < 0 Then X = 0 If X > 609 Then X = 609 If Y < 0 Then Y = 0 If Y > 449 Then Y = 449 ; Kollision testen For I=1 To 100 If Rak(I,0) <> 0 Then For J=1 To 50 If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then PlaySound(trefferton) Alien(J,0) = -1 EndIf Next EndIf Next ; Explosion Alien zeichnen For I=1 To 50 If Alien(I,0) = -1 Then If AlienExplodiert(I,1) + 100 < MilliSecs() Then AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1 AlienExplodiert(I,1) = MilliSecs() If AlienExplodiert(I,0) = 6 Then AlienExplodiert(I,0) = 0 AlienExplodiert(I,1) = 0 Alien(I,0) = 0 EndIf EndIf DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0) EndIf Next ;Kollision Komet-Spieler For I=1 To 50 If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y) Then PlaySound(trefferton) Alien(I,0) = -1 Print ("Game Over") Delay 90000000000 EndIf Next ; Alien-Steuerung For I=1 To 50 If Alien(I,0) = 0 Then Alien(I,0) = Rand(100,400) Alien(I,1) = Rand(-20,640) Alien(I,2) = Rand(-100,0) EndIf If Alien(I,0) <> -1 Then Alien(I,2) = Alien(I,2) + 1 Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0) EndIf If Alien(I,2) > 480 Then Alien(I,0) = 0 If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2) Next Flip Until KeyHit(1) Until KeyHit(1) End Function |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Repeat
Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y Y = 200 <den muste auch weg machen und auserhab der schleifesetzten weil du doch die Positionen veränderst bei jedem durchlauf, dann malste da schiff und setzt es wieder auf die alte position und das soll doch nicht so sein ODER? |
||
[BB2D | BB3D | BB+]
|
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
So hab das jetzt auch weggemacht.Jetzt läufts RASEND schnell und das Raumschiff ist immer Links oben und knall gleich nach dem Start mit den Asteroid zusammen.
Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") tiles = LoadImage ("blocks1.bmp") maus = LoadImage ("pointer.bmp") Dim Rak(100,2) Dim Alien(50,2) Dim AlienExplodiert(50,1) X = 305 Y = 420 ; Graphik für Menüpunkt erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Graphik für aktiven Spielstein erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü definieren Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Start" MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Einstellungen() Repeat Cls Text 100,100, "Einstellungen" Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Text 100,100, "Ende" Flip Until KeyHit(1) Or KeyHit(57) End End Function Function Start() Repeat Cls hinter = LoadImage("stars.bmp") schiff = LoadImage("R4.bmp") alienbild = LoadImage("Rock1.bmp") rakete = LoadImage("torpedo0016.bmp") explosion = LoadAnimImage("explodeA.bmp", 60,46, 0,6) schusston = LoadSound("soundfx11.wav") trefferton = LoadSound("soundfx25.wav") ; ; Hauptschleife ; Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y ;Punkte Anzeige Text 400,10, "Sie haben "+punkte+" Punkte Punkte = Punkte +1 ; Schuß-Test If KeyHit(57) Then Schuss = Schuss + 1 If Schuss = 101 Then Schuss = 1 Rak(Schuss,0) = 1 Rak(Schuss,1) = X+10 Rak(Schuss,2) = Y-19 PlaySound(schusston) EndIf ; ggf. Raketen zeichnen For I=1 To 100 If Rak(I,0) = 1 Then DrawImage rakete, Rak(I,1), Rak(I,2) Rak(I,2) = Rak(I,2) - 10 EndIf Next ; Pfeiltasten abfragen If KeyDown(200) = 1 Then Y = Y - 1 If KeyDown(208) = 1 Then Y = Y + 1 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 ; Rand-Überschreitung verhindern If X < 0 Then X = 0 If X > 609 Then X = 609 If Y < 0 Then Y = 0 If Y > 449 Then Y = 449 ; Kollision testen For I=1 To 100 If Rak(I,0) <> 0 Then For J=1 To 50 If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then PlaySound(trefferton) Alien(J,0) = -1 EndIf Next EndIf Next ; Explosion Alien zeichnen For I=1 To 50 If Alien(I,0) = -1 Then If AlienExplodiert(I,1) + 100 < MilliSecs() Then AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1 AlienExplodiert(I,1) = MilliSecs() If AlienExplodiert(I,0) = 6 Then AlienExplodiert(I,0) = 0 AlienExplodiert(I,1) = 0 Alien(I,0) = 0 EndIf EndIf DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0) EndIf Next ;Kollision Komet-Spieler For I=1 To 50 If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y) Then PlaySound(trefferton) Alien(I,0) = -1 Print ("Game Over") Delay 90000000000 EndIf Next ; Alien-Steuerung For I=1 To 50 If Alien(I,0) = 0 Then Alien(I,0) = Rand(100,400) Alien(I,1) = Rand(-20,640) Alien(I,2) = Rand(-100,0) EndIf If Alien(I,0) <> -1 Then Alien(I,2) = Alien(I,2) + 1 Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0) EndIf If Alien(I,2) > 480 Then Alien(I,0) = 0 If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2) Next Flip Until KeyHit(1) Until KeyHit(1) End Function |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] ;
; Hauptschleife ; x= 400; gehört vor die schleife---------------------------------- y= 500 ; sowie dieses----als startpunkt----------------------------- Repeat Cls H = H+1 If H=200 Then H=0 TileBlock hinter, 0,H DrawImage schiff, X,Y hatte ich aber schon vorhin reingeschrieben ![]() |
||
[BB2D | BB3D | BB+]
|
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Daaaaaaaaaaanke!Es geht.Ich dachte schon ich werde zum ![]() Aber jetzt bin ich er ![]() |
||
BB is Macht!
Homepage: www.flori-d.de |
![]() |
Maniac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das war ja eine schwere geburt^^ | ||
User posted image
^^ |
![]() |
Flori-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo haste recht. ![]() |
||
BB is Macht!
Homepage: www.flori-d.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group