Irgendwo ist der Wurm drin, aber wo ???

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

[Ko5MoS]

Betreff: Irgendwo ist der Wurm drin, aber wo ???

BeitragMo, Okt 29, 2007 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
hi hab hier jetzt mal ein schon halbwegs spielbare version von meinem 2d shooter Nemos World hinbekommen, aber irgendwas funktioniert nicht richtig:
1: es wird langsamer nach einer bestimmten zeit
2: gegner kann man nicht abschiessen

... wie kann ich diese sachen beheben

hier der Code:
Nemo´s World

Code: [AUSKLAPPEN]


Graphics 640,480,16,1

;VARS

Global lvl,py,px,gegner.gegner_1,player.player,timer_ball,ball.ball,dmg,z,life
Global ballcolor1,ballcolor2,gegner2.gegner_2,hp_bonus
Global timer_ball2,ball2.lifeball,name$,shot.schuss,treffer,punkte,speedplus
Global font1=LoadFont("arial",40,1,0,0)
Global song_1=LoadSound("blabla.mp3")
Global song_2=LoadSound("blabla2.mp3")
Global sound_1=LoadSound("shot-1.wav")
Global gegner_jpg=LoadImage(".jpg")
Global gegner2_jpg=LoadImage(".jpg")
Global player_jpg=LoadImage(".jpg")
Global crash_pic=LoadImage(".png")
Global life_jpg=LoadImage(".jpg")
Global player_shot=LoadImage(".png")
MaskImage player_shot,255,0,255
MaskImage gegner_jpg,255,0,255
MaskImage player_jpg,255,0,255
MaskImage gegner2_jpg,255,0,255
MaskImage life_jpg,255,0,255
SeedRnd MilliSecs()

;TYPES

Type ball
Field ball_x
Field ball_y
Field ball_speed
Field ball_size
Field farbe
End Type

Type lifeball
Field ball_x
Field ball_y
Field ball_speed
Field ball_size
Field farbe
Field grafik
Field crash
End Type

Type gegner_1
Field x
Field y
Field grafik
Field crash
Field speed
Field hp
End Type

Type player
Field xx
Field yy
Field leben
Field grafik_player
End Type

Type gegner_2
Field x
Field y
Field grafik
Field crash
Field speed
Field hp
End Type

Type schuss
Field x
Field y
Field speed
Field kugel
Field dmg
End Type

;HAUPTPROGRAMM

geschichte()

name$=Input("Bitte geben sie ihren namen ein: ")
Cls

Repeat
SetBuffer BackBuffer()

anzeige_def()

ball_def()
 
schuss_def()

lifeball_def()

bewegung()

player_def()

If player\leben <=0 Then Gosub ende

gegner_1def()

gegner_2def()

Cls

level()

kolligegner1()

kolligegner2()

DrawImage player\grafik_player,player\xx,player\yy

anzeige_draw()

schuss_draw()

ball_draw()

Flip
Until KeyHit(1)

WaitKey

.ende
ende()
End

;FUNCTIONEN

Function bewegung()
If KeyDown(200) Then
py=-5+py
ElseIf KeyDown(208) Then
py=5+py
ElseIf KeyDown(203) Then
px=-5+px
ElseIf KeyDown(205) Then
px=5+px
EndIf
End Function

Function ball_def()
timer_ball=timer_ball+1
If timer_ball>=4 Then
timer_ball = 0
ball.ball=New ball
ball\ball_x=640
ball\ball_y=Rand(1,479)
ball\ball_speed=Rand(4,6)
ball\farbe=Rand(50,255)
ball\ball_size=Rand(15,30)
EndIf
End Function

Function ball_draw()
For ball.ball=Each ball
ball\ball_x=ball\ball_x-ball\ball_speed
Color ballcolor1,ballcolor2,ball\farbe
Oval ball\ball_x,ball\ball_y,ball\ball_size,ball\ball_size
If ball\ball_x < 0 Then Delete ball.ball
Color 255,255,255
Next
End Function

Function gegner_1draw()
For gegner.gegner_1=Each gegner_1
If ImagesCollide(player\grafik_player,player\xx,player\yy,0,gegner\grafik,gegner\x,gegner\y,0) Then dmg=dmg+1
Next
gegner.gegner_1=First gegner_1
gegner\x=gegner\x-gegner\speed
DrawImage gegner\grafik,gegner\x,gegner\y
If gegner\x < -40 Then Delete gegner.gegner_1
gegner=After gegner
gegner\x=gegner\x-gegner\speed
DrawImage gegner\grafik,gegner\x,gegner\y
If gegner\x < -40 Then Delete gegner.gegner_1
gegner=After gegner
gegner\x=gegner\x-gegner\speed
DrawImage gegner\grafik,gegner\x,gegner\y
If gegner\x < -40 Then Delete gegner.gegner_1
End Function

Function player_def()
life=90
cheat()
player.player=New player
player\xx=40+px
player\yy=230+py
player\leben=life-dmg+hp_bonus
player\grafik_player=player_jpg
If player\xx <= -80 Then dmg=dmg+1
If player\xx >= 740 Then dmg=dmg+1
If player\yy <= -100 Then dmg=dmg+1
If player\yy >= 580 Then dmg=dmg+1
End Function

Function gegner_1def()
For t = 1 To 9
gegner.gegner_1=New gegner_1
gegner\x=645
gegner\y=Rand(15,465)
gegner\speed=Rand(4,11)+speedplus
gegner\grafik=gegner_jpg
gegner\crash=crash_pic
gegner\hp=10
Next
End Function

Function anzeige_def()
z=z+1
If z/37=> 10*lvl*lvl Then
lvl=lvl+1
hp_bonus=hp_bonus+10*lvl
EndIf
End Function

Function anzeige_draw()
Text 0,0, "HP: "+player\leben
Text 0,10, "ZEIT: "+z/37
Text 0,20, "LVL: "+lvl
Text 460,0, "DEINE PUNKTE: "+treffer/100
Text 0,465, name$
End Function

Function ende()
Cls
SetFont font1
Color 255,0,0
Text 230,20, "E.N.D.E."
Text 200,120, "IHR LEVEL: "+lvl
Text 200,70, name$
Text 200,180, "IHRE ZEIT: "+z/37
Text 200,340, "IHRE PUNKTE: "+treffer/100
Flip
Color 255,255,255
Delay 4000
End Function

Function level()
Select lvl
Case 1
speedplus=0
gegner_1draw()
lifeball_draw()
Case 2
speedplus=0
gegner_1draw()
ballcolor1=100
Case 3
speedplus=1
gegner_1draw()
lifeball_draw()
ballcolor2=100
Case 4
speedplus=2
gegner_2draw()
ballcolor2=200
Case 5
speedplus=2
gegner_1draw()
lifeball_draw()
gegner_2draw()
ballcolor1=255
ballcolor2=100
Case 6
speedplus=3
gegner_1draw()
gegner_2draw()
ballcolor1=100
ballcolor2=125
Case 7
speedplus=3
gegner_1draw()
lifeball_draw()
gegner_2draw()
ballcolor1=175
ballcolor2=50
Case 8
speedplus=4
gegner_1draw()
gegner_2draw()
ballcolor1=255
ballcolor2=Rand(100,150)
Case 9
speedplus=4
gegner_1draw()
lifeball_draw()
gegner_2draw()
ballcolor1=Rand(50,75)
ballcolor2=Rand(50,75)
Case 10
speedplus=4
gegner_1draw()
lifeball_draw()
gegner_2draw()
ballcolor1=Rand(100,200)
ballcolor2=Rand(100,200)
End Select
End Function

Function gegner_2def()
gegner2.gegner_2=New gegner_2
gegner2\x=640
gegner2\y=Rand(20,420)
gegner2\speed=Rand(4,10)
gegner2\grafik=gegner2_jpg
gegner2\crash=crash_pic
gegner2\hp=23
End Function

Function gegner_2draw()
For gegner2.gegner_2=Each gegner_2
If ImagesCollide(player\grafik_player,player\xx,player\yy,0,gegner2\grafik,gegner2\x,gegner2\y,0) Then
PlaySound sound_1
dmg=dmg+1
EndIf
Next
gegner2.gegner_2=First gegner_2
gegner2\x=gegner2\x-gegner2\speed
DrawImage gegner2\grafik,gegner2\x,gegner2\y
If gegner2\x < -40 Then Delete gegner2.gegner_2
End Function

Function lifeball_def()
timer_ball2=timer_ball2+1
If timer_ball2>=700 Then
timer_ball2 = 0
ball2.lifeball=New lifeball
ball2\ball_x=640
ball2\ball_y=Rand(1,479)
ball2\ball_speed=Rand(2,8)
ball2\grafik=life_jpg
ball2\crash=crash_pic
EndIf
End Function

Function lifeball_draw()
For ball2.lifeball=Each lifeball
ball2\ball_x=ball2\ball_x-ball2\ball_speed
DrawImage ball2\grafik,ball2\ball_x,ball2\ball_y
If ImagesCollide(player\grafik_player,player\xx,player\yy,0,ball2\grafik,ball2\ball_x,ball2\ball_y,0) Then
hp_bonus=hp_bonus+50
DrawImage ball2\crash,ball2\ball_x,ball2\ball_y
Delete ball2.lifeball:Exit
ElseIf ball2\ball_x < -30 Then
Delete ball2.lifeball:Exit
EndIf
Next
End Function

Function musik()
LoopSound song_2
PlaySound song_2
End Function

Function schuss_def()
If KeyHit(57) Then
shot.schuss=New schuss
shot\x=player\xx+100
shot\y=player\yy+36
shot\speed=20
shot\kugel=player_shot
shot\dmg=5
EndIf
End Function

Function schuss_draw()
For shot.schuss=Each schuss
shot\x=shot\x+shot\speed
DrawImage shot\kugel,shot\x,shot\y
Next
End Function

Function cheat()
If name$="******" Then life=1000000000
End Function

Function kolligegner1()
For gegner.gegner_1=Each gegner_1
For shot.schuss=Each schuss
If ImagesCollide(shot\kugel,shot\x,shot\y,0,gegner\grafik,gegner\x,gegner\y,0) Then
gegner\hp=gegner\hp-shot\dmg
punkte=punkte+1:Delete shot.schuss:Exit
ElseIf gegner\hp <= 0 Then
DrawImage gegner\crash,gegner\x,gegner\y
treffer=treffer+punkte
Delete gegner.gegner_1 : Exit
ElseIf shot\x > 640 Then
Delete shot.schuss:Exit
ElseIf treffer/100 >= (lvl+lvl*lvl) Then
shot\dmg=shot\dmg+5:Exit
EndIf
Next
Next
End Function

Function kolligegner2()
For gegner2.gegner_2=Each gegner_2
For shot.schuss=Each schuss
If ImagesCollide(shot\kugel,shot\x,shot\y,0,gegner2\grafik,gegner2\x,gegner2\y,0) Then
gegner2\hp=gegner2\hp-shot\dmg
punkte=punkte+5:Delete shot.schuss:Exit
ElseIf gegner2\hp <= 0 Then
DrawImage gegner2\crash,gegner2\x,gegner2\y
treffer=treffer+punkte
Delete gegner2.gegner_2 : Exit
ElseIf treffer/100 >= (lvl+lvl*lvl) Then
shot\dmg=shot\dmg+5:Exit
EndIf
Next
Next
End Function

Function geschichte()
musik()
Text 0,40, "Es war einmal vor langer langer zeit... "
Text 0,60, ",als Fische noch schiessen konnten! "
Text 0,80, "Nemo war nach einem harten Disco abend irgendwo im Meer aufgewacht, "
Text 0,100, "ohne zu wissen wo er sich befand. Wie du Dir schon denken kannst,  "
Text 0,120, "...will Nemo nach hause. Aber auf seinem Weg lauern viele Gefahren!"
Text 0,140, "Benutze die Feiltasten um Nemo an den Piraten vorbei zu steuern, "
Text 0,160, "Space um zu schiessen, wenn du eine Illuminaten-Pyramide siehst, "
Text 0,180, "versuche sie einzusammeln."
Text 0,200, "Das ist auch schon alles an was sich Nemo noch erinnern kann, Viel Glück!!!"
Text 270,380, "Drücke Enter"
WaitKey
Cls
End Function



wär echt nett wenn sich jemand das ding mal vornimmt, danke im voraus !!!
Ich tippe schneller als ich denken kann und wenn ich auf ENTER drücke ist alles wieder weg ...
 

DjDETE

Betreff: grafik

BeitragFr, Nov 30, 2007 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du das ganze Programm(inkl. Grafik, SOund, ...) ins Archiv stellen, damit ich mir ein besseres Bild von deinem Programm machen kann und auch die Fehler sehen kann.
Gruß DjDETE
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group