erster post erstes gam erstes problem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Gast

Betreff: erster post erstes gam erstes problem

BeitragMi, Mai 26, 2004 15:51
Antworten mit Zitat
hiho Exclamation
ich hab mir mal so mein erstes game zusammengebastelt es ist ein shoter
doch leider komme ich mit der kollisionsabfrage net zurecht Confused wäre froh für hilfe Wink
Code: [AUSKLAPPEN]
Graphics 640,480,32,1
SetBuffer BackBuffer()

;::::::::::::::::::VARIABLEN::::::::::::::::::::

;bilder und schriften und töne laden
Global hintergrund=LoadImage ("wolken.bmp")
Global spieler=LoadImage ("schifff.bmp")
Global schuss= LoadImage ("schussk.bmp")
Global planet=LoadImage ("planet1.bmp")
Global asteroid=LoadImage ("kamikaze.bmp")
Global leben=LoadImage("herz.bmp")
Global gameover=LoadImage("gameover.bmp")

;schriften

Global fontgross= LoadFont ("arial",50,1,1,1)

;töne
Global schusston=LoadSound ("schusston.wav")
Global over=LoadSound ("wind.wav")

;positionen
Global px=290
Global py=420
Const hoch = 200, runter = 208, rechts = 205, links = 203, space = 57

;sonstiges
live = 3
xx = Rand(0,300)
yy = Rand(0,300)

Dim rak(100,2)
Dim gegner(5,2)

;einleitungssong

PlayMusic("over.wav")
Delay 2000

;hintergrundsong
LoopSound over
PlaySound over




;:::::::::::::::::::::.Hauptschleife:::::::::::::::::::::::::::
Repeat

;hintergrund
h = h+1
If h = 90000000 Then h = 0

TileBlock hintergrund,0,h
PlayMusic(kami)
;gegner
For t =1 To 5
If gegner(t,0) = 0 Then
gegner(t,0)= Rnd(100,400)
gegner(t,1)= Rnd(-20,640)
gegner(t,2)= Rnd(-100,0)

  EndIf
gegner(t,2) = gegner(t,2) +1
If gegner(t,2) > 480 Then gegner(t,0)= 0

DrawImage asteroid,gegner(t,1),gegner(t,2)

Next


 
;spieler

DrawImage spieler ,px,py



;steuerung
If KeyDown(links) = 1 Then px = px-2

If KeyDown(rechts) = 1 Then px = px+2

If KeyDown(hoch) = 1 Then py = py-2


If KeyDown(runter) = 1 Then py= py+2

;rand
If px < 0 Then px = 0
If px >605  Then px = 605
If py < 0 Then py = 0
If py > 451 Then py = 451



;schuss
If KeyHit(space) Then
PlaySound(schusston)
schusss = schusss +1
If schusss = 100 Then schusss = 1
rak(schusss,0) =1
rak(schusss,1) =px+23
rak(schusss,2) =py-19
EndIf

;schuss bewegen
For i=1 To 100
If rak(i,1) < 0 Then rak(i,0) = 0
If rak(i,0) = 1 Then
DrawImage schuss,rak(i,1),rak(i,2)
rak(i,2) = rak(i,2) -10
EndIf
Next


;leben zeichnen
If live = 3 Then
DrawImage leben , 1,5
DrawImage leben , 31,5
DrawImage leben , 61,5
EndIf

If live = 2 Then
DrawImage leben , 1,5
DrawImage leben , 31,5
EndIf

If live = 1 Then
DrawImage leben , 1,5
EndIf

If live = 0 Then
Cls
FreeSound schusston
FreeSound over
DrawImage gameover ,150,130

WaitKey

EndIf


;pause
 If KeyHit(25) =1 Then
SetFont fontgross
Text 230,100,"PAUSE"
Flip
FlushKeys
WaitKey
EndIf



;test lebenabzug
 If KeyHit(24) =1 Then live = live -1









Flip



Until KeyDown(1)



 
End



:EDIT
hab mir bei free webspace die sachen online gestellt
http://www.free-webspace.biz/zaeziwil/
das is tmein account und hab die daten unter
http://www.free-webspace.biz/z...ic/shooter
reingestellt geht das?
  • Zuletzt bearbeitet von Gast am Do, Mai 27, 2004 11:03, insgesamt einmal bearbeitet

Bigmichi

BeitragMi, Mai 26, 2004 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
es wäre besser wenn du dein Prjekt packst udn irgendwo hochlädst damit anderen das Spiel starten können und so leichter nach dem Fehler suchen können =)

Kabelbinder

Sieger des WM-Contest 2006

BeitragMi, Mai 26, 2004 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo wir gerade bei dem Thema sind. Wo ladet ihr eigentlich immer eure Datein und Bilder hoch? Ich hab ne billige Homepage bei Beepworld. Aber da passen nur 100 Kb rein und für neuen Speicherplatz muss ich was bezahlen (Was die schonmal vergessen können). Also, weis einer was, wo man auch größere Datein für umsonst hochladen kann? Embarassed
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

Affje

BeitragMi, Mai 26, 2004 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
www.arcor.de

bekommste 25mb und das ist sehr schneller space und gratis dazu.
www.drachengarde.tk
Guckst da Hier

Kabelbinder

Sieger des WM-Contest 2006

BeitragMi, Mai 26, 2004 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, Affje. Ich werde das gleich mal ausprobieren. Very Happy
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

sbrog

BeitragMi, Mai 26, 2004 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
www.webspace4free.biz
200 mb

Kabelbinder

Sieger des WM-Contest 2006

BeitragMi, Mai 26, 2004 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, wer bietet mehr? Laughing
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Michi1988

BeitragMi, Mai 26, 2004 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn dich nen EURO/m nicht stört...
50Mb und 2 Gb Traffic.

Is ja schließlich auch fast Geschenkt

Michi

General Alex

BeitragMi, Mai 26, 2004 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Michi1988 hat Folgendes geschrieben:
Wenn dich nen EURO/m nicht stört...
50Mb und 2 Gb Traffic.

Is ja schließlich auch fast Geschenkt

Michi

Kannst du bitte noch die URL eingeben?

Michi1988

BeitragMi, Mai 26, 2004 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Weiß ich im mom nich. Mein Kumpel den der Webspace gehört,
is auf Klassenfahrt. Muss circa 80 cent bezahlen. Haben den Webspace 25Mb/25Mb aufgeteilt. Also 50 Mb.

Weiß im mom halt nich wo. Anfang der nächsten woche weiß ich es.
 

Gast

BeitragDo, Mai 27, 2004 11:22
Antworten mit Zitat
hier mal die gezippte version
hoffentlich blickt ihr da durch:)

http://www.free-webspace.biz/zaeziwil/game1.zip

Bigmichi

BeitragDo, Mai 27, 2004 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab nun ma geschaut =) programierst eh bissi aufwedig Wink aber si ja deine sache =)

ersetz den Code mit deiner Next Schleifen in der Hauptschleife wo du die Gegne rmalst

Code: [AUSKLAPPEN]
For t =1 To 5
If gegner(t,0) = 0 Then
gegner(t,0)= Rnd(100,400)
gegner(t,1)= Rnd(-20,640)
gegner(t,2)= Rnd(-100,0)

  EndIf
gegner(t,2) = gegner(t,2) +1
If gegner(t,2) > 480 Then gegner(t,0)= 0

DrawImage asteroid,gegner(t,1),gegner(t,2)

IF imagescollide(Spieler,PX,PY,0,asteroid,gegner(t,1),gegner(t,2),0) THEN
   gegner(t,0) = 0
   Live = live -1
   ;was passireen sol wen Spieler mit anderen Flieger kollediert
END IF

Next


müsste gehen =)
 

Gast

BeitragDo, Mai 27, 2004 15:04
Antworten mit Zitat
cool danke geht
nur wie kann ich abfragen ob ein schuss und ein flieger kolidiert sind?
sry aber halt mein erstes game und was haltet ihr davon?iss halt schlicht und einfach Wink
 

Gast

BeitragDo, Mai 27, 2004 17:04
Antworten mit Zitat
bigmichi? Rolling Eyes
kannst du nochmal bitebittebitte

Michi1988

BeitragDo, Mai 27, 2004 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Joah. Is eigentlich von jedem das erste
Spiel. Ich und meine beiden Freunde, die auch
BB können, habe auch mit einem Space Invaders Klon
angefangen.

Michi

Bigmichi

BeitragDo, Mai 27, 2004 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
hab aber die schüsse zu types umgewandelt XD ich mag types mehr deshalb Wink sind auch sehr einfach zu bedienen =)

Code: [AUSKLAPPEN]
Graphics 640,480,32,2
SetBuffer BackBuffer()

;::::::::::::::::::VARIABLEN::::::::::::::::::::

;bilder und schriften und töne laden
Global hintergrund=LoadImage ("wolken.bmp")
Global spieler=LoadImage ("schifff.bmp")
Global schuss= LoadImage ("schussk.bmp")
Global asteroid=LoadImage ("kamikaze.bmp")
Global leben=LoadImage("herz.bmp")
Global gameover=LoadImage("gameover.bmp")

;schriften

Global fontgross= LoadFont ("arial",50,1,1,1)

;töne
Global schusston=LoadSound ("schusston.wav")
Global over=LoadSound ("wind.wav")

;positionen
Global px=290
Global py=420
Const hoch = 200, runter = 208, rechts = 205, links = 203, space = 57

;sonstiges
live = 3
xx = Rand(0,300)
yy = Rand(0,300)

;Dim rak(100,2)

TYPE RakT
  FIELD AK
  FIELD X
  FIELD Y
END TYPE

Dim gegner(5,2)

;einleitungssong

PlayMusic("over.wav")
;Delay 2000

;hintergrundsong
LoopSound over
PlaySound over




;:::::::::::::::::::::.Hauptschleife:::::::::::::::::::::::::::
Repeat

;hintergrund
h = h+1
If h = 90000000 Then h = 0

TileBlock hintergrund,0,h
;PlayMusic(kami)
;gegner




FOR t =1 To 5

If gegner(t,0) = 0 Then
gegner(t,0)= Rnd(100,400)
gegner(t,1)= Rnd(-20,640)
gegner(t,2)= Rnd(-100,0)

ENDIF

gegner(t,2) = gegner(t,2) +1
If gegner(t,2) > 480 Then gegner(t,0)= 0

DrawImage asteroid,gegner(t,1),gegner(t,2)

IF imagescollide(Spieler,PX,PY,0,asteroid,gegner(t,1),gegner(t,2),0) THEN
   gegner(t,0) = 0
   Live = live -1
   ;was passireen sol wen Spieler mit anderen Flieger kollediert
END IF

Next


 
;spieler

DrawImage spieler ,px,py



;steuerung
If KeyDown(links) = 1 Then px = px-2

If KeyDown(rechts) = 1 Then px = px+2

If KeyDown(hoch) = 1 Then py = py-2


If KeyDown(runter) = 1 Then py= py+2

;rand
If px < 0 Then px = 0
If px >605  Then px = 605
If py < 0 Then py = 0
If py > 451 Then py = 451



;schuss
If KeyHit(space) Then
PlaySound(schusston)


SchussT.RakT = NEW RakT

   SchussT\X = PX+23
   SchussT\Y = PY-19

EndIf




FOR SchussT.RakT = EACH RakT

  DrawImage schuss,SchussT\X,SchussT\Y
  SchussT\Y = SchussT\Y - 20
 

FOR t =1 To 5

IF gegner(t,0) <> 0 THEN
  IF imagescollide(schuss,SchussT\X,schussT\Y,0,asteroid,gegner(t,1),gegner(t,2),0) THEN
    gegner(t,0) = 0
   ;was passireen sol wen schuss mit anderen Flieger kollediert
  END IF
END IF
NEXT


  IF SchussT\Y < 0 THEN
     DELETE SchussT
  END IF

NEXT











;leben zeichnen
If live = 3 Then
DrawImage leben , 1,5
DrawImage leben , 31,5
DrawImage leben , 61,5
EndIf

If live = 2 Then
DrawImage leben , 1,5
DrawImage leben , 31,5
EndIf

If live = 1 Then
DrawImage leben , 1,5
EndIf

If live = 0 Then
Cls
FreeSound schusston
FreeSound over
DrawImage gameover ,150,130

WaitKey

EndIf


;pause
 If KeyHit(25) =1 Then
SetFont fontgross
Text 230,100,"PAUSE"
Flip
FlushKeys
WaitKey
EndIf



;test lebenabzug
 If KeyHit(24) =1 Then live = live -1









Flip

Cls

Until KeyDown(1)



 
End
 


geht nun alles so wie du willst Wink

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group