Space Shouter funktioniert nicht

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

bioso

Betreff: Space Shouter funktioniert nicht

BeitragFr, Feb 27, 2004 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
ich bins mal wieder und habe mal wieder ein Problem:

Ich möchte das die Aliens schiesen aber wie geht das (Hinweis: Den Anfang des Queltextes habe ich aus einem Buch, stammt also nicht von mir.) Und hier mein Quelltext:
Graphics 640, 480
;SetBuffer BackBuffer()
hinter = LoadImage("Graphiken\stars.bmp")
schiff = LoadImage("Graphiken\spaceship2.bmp")
alienbild = LoadImage("Graphiken\player.bmp")
rakete = LoadImage("Graphiken\bullet.bmp")
explosion = LoadAnimImage("Graphiken\kaboom.bmp", 60,46, 0,6)
schusston = LoadSound("Sound\soundfx11.wav")
trefferton = LoadSound("Sound\soundfx16.wav")
energie = LoadImage("Graphiken\Kreuz.bmp")
gegner = LoadImage("Graphiken\gegner2.bmp")
;animation = LoadAnimImage("Graphiken\Asteroid23.bmp", 40,40, 0,8)
gegnerrakete = LoadImage("Graphiken\Gegnerrakete.bmp")

Dim touch(5)
Dim Rak(100,2)
Dim Alien(5,2)
Dim AlienExplodiert(5,1)
Dim Spieler(1)
Dim SpielerExplodiert(1)
Dim Punkte23(5)


Repeat
Cls
H = H+1
If H=200 Then H=0
TileBlock hinter,0,H
DrawImage schiff, X,Y

; 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

;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

; 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

; 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

; 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

;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


; Game Over
; ---------
If startenergie = 0 Then
Text 100,100, "YOU LOSE - THE ALIENS INVADED EARTH"
WaitKey
End
EndIf


; Kollision testen
For I=1 To 100
If Rak(I,0) <> 0 Then
For J=1 To 5
If ImagesOverlap(gegner, Alien(J,1), Alien(J,2), rakete, Rak(I,1),Rak(I,2)) Then
PlaySound(trefferton)
Alien(J,0) = -1
Punkteberechnung(J)
Else
Punkte23(J) = False
EndIf
Next
EndIf
Next

; Energie Anzeige

Text 9,10,"Energie:"
Text 75,10,startenergie, ""

; Punkte Anzeige

Text 20,50, "Punkte:"
Text 60,90,punkte, ""

; Gegner Kollision
; ----------------
For J=1 To 5
If ImagesOverlap(schiff, X, Y, gegner, Alien(J,1), Alien(J,2)) Then
EnergieAbzug(J)
Else
touch(J) = False
EndIf
Next



; Explosion Alien zeichnen
For I=1 To 5
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

; Level

If punkte > 4000 Then
Include "Level2.bb"
EndIf

; Alien schiest

; Hier kommt dan der Teil wo das Alien schiest
; Raketen zeichnen
; Hier kommt der Teil wo die Rakete gezeichnet wird

; Raketen Kolision mit Spieler
; Hier soll der Teil stehen, wo der Spieler von einer Rakete getroffen wird.


; Alien-Steuerung
For I=1 To 5
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 gegner, Alien(I,1), Alien(I,2)
Next

Flip


Until KeyDown(1)
End




ich hoffe ihr könnt mir helfen, ich habe noch nicht so viel Erfahrung ich programmiere auch erst seit ein paar Wochen.

Bitte schnell antworten.

Steffen, 14
 

bioso

BeitragFr, Feb 27, 2004 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum antwortet mir keiner?????
 

Edlothiol

BeitragFr, Feb 27, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Benutze [code] - Tags.
2. Kommt das ganz drauf an wann die Aliens schießen sollen etc. Gib mal ein paar genauere Infos.
 

bioso

BeitragFr, Feb 27, 2004 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja ich möchte das die Aliens schießen wenn sie ungefähr in der Mitte sind.

Hubsi

BeitragFr, Feb 27, 2004 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If alien_x>250 And alien_x<390
  If MilliSecs()>timer+1500
    timer=MilliSecs()
    alien_schiesst=True
  End If
End If
If alien_schiesst
  ; Schuss bewegen
  ; Randüberschreitung prüfen
  ; Wenn getroffen oder Rand überschritten
  ; alien_schiesst=False setzen
EndIf


So schiesst das Alien alle 1.5 Sekunden wenn es ca. mittig des Schirms ist.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

bioso

BeitragFr, Feb 27, 2004 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für deine Hilfe aber wie mache ich das mit dem Schuss bewegen Embarassed könntest du mir den Quelltext dazu aufschreiben und wie das mit dem falls getroffen hat irgendwie auch nicht funktioniert.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group