Balls!

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Alfadur

Betreff: Balls!

BeitragMi, Mai 04, 2005 2:05
Antworten mit Zitat
Benutzer-Profile anzeigen
high, ich hab da mal was gemacht, so simple wie genial. die grafik so zweckmäßig wie nötig... downzuloaden hier (8kb) :
http://www.blitz-pasting.de.vu...lspics.zip

ziel ist es, genügend von den anderen aufzusammeln bevor die zeit oben abläuft... mit jedem level erhöht sich die zahl derer die man aufsammeln muß und die zeit vergeht schneller...

gesteuert wird mit rechts und links!

achja, ich weiß das die bewegung bei mit sin und cos etwas verkorkst ist und deswegen auch die kollisionsabfrage, aber ... *seufz*

und hier der code

BlitzBasic: [AUSKLAPPEN]


Graphics 800,600
SetBuffer BackBuffer()
timer=CreateTimer(50)
SeedRnd MilliSecs()
AutoMidHandle 1

Global img_ball=LoadImage(\"ball.png\"):MaskImage img_ball,255,0,255
Global img_player=LoadImage(\"player.png\"):MaskImage img_player,255,0,255
Global img_enemy=LoadImage(\"enemy.png\"):MaskImage img_enemy,255,0,255

Global CREATED=0
Global DELETED=0
Global ONSCREEN=0

Global LEVEL#=1

Global clock#=797

Global Vplayer.Tball

Type Tball
Field x#
Field y#
Field speed#
Field turn#
Field splittime#
End Type

Function create_ball.Tball(x#,y#,speed#,turn#)
Vball.Tball=New Tball
Vball\x#=x#
Vball\y#=y#
Vball\speed#=speed#
Vball\turn#=turn#
CREATED=CREATED+1
Return Vball
End Function

Function update_balls()
For Vball.Tball=Each Tball
For Aball.Tball=Each Tball
If Aball<>Vball Then
If ImagesCollide(img_ball,Aball\x#,Aball\y#,0,img_ball,Vball\x#,Vball\y#,0) Then
If Vplayer=Vball Or Vplayer=Aball Then
clock#=797
DELETED=DELETED+1
End If
Delete Aball
End If
End If
Next
Next
ONSCREEN=0
For Vball.Tball=Each Tball
ONSCREEN=ONSCREEN+1
oldx#=Vball\x#
oldy#=Vball\y#
Vball\x#=Vball\x-Cos(Vball\turn#)*Vball\speed#
Vball\y#=Vball\y-Sin(Vball\turn#)*Vball\speed#
If Vball\x#>800 Then
If Vball\y#-oldy#>0 Then
Vball\turn#=180-Vball\turn#
Else
Vball\turn#=360+(180-Vball\turn#)
End If
End If
If Vball\x#<0 Then
If Vball\y#-oldy#>0 Then
Vball\turn#=180-(Vball\turn#)
Else
Vball\turn#=180+(360-Vball\turn#)
End If
End If
If Vball\y#>600 Then
If Vball\x#-oldx#>0 Then
Vball\turn#=180+(180-Vball\turn#)
Else
Vball\turn#=(360-Vball\turn#)
End If
End If
If Vball\y#<0 Then
If Vball\x#-oldx#>0 Then
Vball\turn#=360-Vball\turn#
Else
Vball\turn#=180+(180-Vball\turn#)
End If
End If
Vball\turn#=(Vball\turn#+360) Mod 360
Next
End Function

Function draw_balls()
For Vball.Tball=Each Tball
If Vball=Vplayer Then
DrawImage img_player,Vball\x#,Vball\y#
Else
DrawImage img_enemy,Vball\x#,Vball\y#
End If
Next
End Function

Vplayer.Tball=create_ball(10,10,2,0)

While Not KeyHit(1)

Cls
If Vplayer<>Null Then
update_balls()
draw_balls()
Color(0,255,0)
If clock#<500 Then Color(255,255,0)
If clock#<200 Then Color(255,0,0)
Rect(1,1,clock#,8,1)
Color(255,255,255):Rect(0,590,799,10,0):Rect(0,0,799,10,0)
Color(0,255,0):Rect(1,591,797*Float(DELETED)/LEVEL#,8,1)

If KeyDown(203) Then Vplayer\turn#=Vplayer\turn#-1
If KeyDown(205) Then Vplayer\turn#=Vplayer\turn#+1

If MilliSecs()-time>1000 Then create_ball(400,300,LEVEL#/10,Rnd(360.0)):time=MilliSecs()

If clock#>0 Then
If DELETED=Int(LEVEL#) Then
LEVEL#=LEVEL+1
DELETED=0
Vplayer\speed#=Vplayer\speed#+0.1
End If
; Text 10,10,\"CREATED : \"+CREATED
; Text 10,30,\"DELETED: \"+DELETED
; Text 10,50,\"ONSCREEN : \"+ONSCREEN
clock#=clock#-LEVEL#/10
Else
Delete Vplayer
End If
Else
Color(0,255,0)
Text 400,300,\"You have...LOOOOST - ESC\",1,1
Text 400,330,\"level \"+Int(level#),1,1
Text 400,360,CREATED+\" enemies created\",1,1
End If

Flip 0
WaitTimer(timer)

Wend
End


completely not hansoptimeisert.
A Cray is the only computer that runs an endless loop in less than four hours.

Spikespine

BeitragMi, Mai 04, 2005 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Schöne Idee!
Das spiel macht spaß!

Allerdings hättest du die Grafiken auch im Code erstellen können.

Spike
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

.:BotC:. Pascal

BeitragMi, Mai 04, 2005 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Idee ist wirklich geil. Aber es wird relativ schnell langweilig.

Machst du das noch weiter, oder wars das?

Und nochwas: Wenn du die Grafiken nicht in den Code packst, wie Spikespine geschrieben hat, dann tu den Code wenigstens mit zu der Zip von den Grafiken.
Repeat

Print "Uuuuh und das ist der Beweis, immer das selbe, alles dreht sich im Kreis."

Forever

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group