Ok the question is about as stupid as my code, I'm changing stuff all the time and leave useless commands that do nothing so try not to laugh. Anyway I think its to do with the collision code because it only lags whenever I'm shooting... my entire game completely defies reality, the odd asteroid explodes for no reason and the world slows down when you shoot too much.
You could just read my code but it would be slightly better (yet inconvenient) to add your own images in for the bullet, the player and the asteroid.
My blitzmax "work" is due in 2 days now (for school), I think I should give up because I don't need to do it and I've had blitzmax for about a week or less... if someone tries to fix my code then the sooner the better :) thanks, I'm going to read a few more tutorials to avoid looking like a moronic noob who depends on other people - BYE!!.
Graphics 800,600,32,85,0
SeedRnd MilliSecs()
Global coolfont:TImageFont=LoadImageFont( "C:\windows\fonts\ariblk.ttf",20,style=boldFONT )
Global dalist:tlist=CreateList()
Global dalist2:tlist=CreateList()
Global bullist:tlist=CreateList()
Global asttimer
Global px=800/2-16,py=600-36,pammo=100,phealth=100,psec=0,pridelay=MilliSecs()+300
Local ast:thing,star:thing,b:bul
SetMaskColor 255,0,255
ship=LoadImage("gfx\player.bmp")
asteroid=LoadImage("gfx\asteroid.bmp")
bullet=LoadImage("gfx\flamebul.png")
SetMaskColor 0,0,0
star1=LoadImage("gfx\star1.bmp")
star2=LoadImage("gfx\star2.bmp")
star3=LoadImage("gfx\star3.bmp")
SetMaskColor -1,-1,-1
medkit=LoadImage("gfx\medkit.jpg")
rifle=LoadImage("gfx\ammo.jpg")
clock=LoadImage("gfx\clock.jpg")
trophy=LoadImage("gfx\trophy.jpg")
Type thing
Field x,y,kind,spd,img,r,r_dir
Method killast()
dalist2.remove Self
EndMethod
Method killstar()
dalist.remove Self
EndMethod
EndType
Type bul
Field x,y,spd,kind
Method killbul()
bullist.remove Self
EndMethod
EndType
'---------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------
While Not KeyHit(key_escape)
Cls
For b:bul=EachIn bullist
CollideImage bullet,b.x,b.y,0,0,1
DrawImage bullet,b.x,b.y
b.y=b.y-b.spd
If b.y<100 b.killbul()
Next
For ast:thing=EachIn dalist2
CollideImage asteroid,ast.x,ast.y,0,0,2
Next
For ast:thing=EachIn dalist2
For b:bul=EachIn bullist
If CollideImage(asteroid,ast.x,ast.y,0,1,0) ast.killast()
'If ImagesCollide2(asteroid:TImage,ast.x,ast.y,0,ast.r,0,0,bullet:TImage,b.x,b.y,0,0,0,0)
Next
Next
DrawImage medkit,0,0
DrawImage rifle,0,24
DrawImage clock,0,600-42
DrawImage trophy,800-43,600-42
SetImageFont (coolfont:Timagefont)
DrawText phealth,24,0
DrawText pammo,55,24
DrawText time,37,600-40
DrawText pscore,750,600-40
If asttimer<MilliSecs()
For jhgiwuoa=1 To 2
create_ast()
Next
asttimer=MilliSecs()+2000
EndIf
'render_star(star1,star2,star3)
render_ast(asteroid)
playerinput(bullet)
DrawImage ship,px,py
Flip()
Wend
End
Function create_star()
Local star:thing=New thing
star.x=Rand(0,800-19)
star.y=Rand(-19,-619)
star.spd=Rand(1,8)
star.img=Rand(1,3)
ListAddLast dalist,star
EndFunction
Function create_ast()
ast:thing=New thing
ast.x=Rand(30,800-30)
ast.y=-30
ast.spd=Rand(1,4)
ast.r=Rand(0,360)
ast.r_dir=Rand(0,1)
ListAddLast dalist2,ast
EndFunction
Function render_ast(asteroid)
For ast:thing=EachIn dalist2
SetRotation ast.r
If ast.r_dir=0 ast.r=ast.r-1
If ast.r_dir=1 ast.r=ast.r+1
ast.y=ast.y+ast.spd
DrawImage asteroid,ast.x,ast.y
If ast.y>600
ast.killast
EndIf
SetRotation 1
Next
EndFunction
Function render_star(star1,star2,star3)
For star:thing=EachIn dalist
SetRotation 0
star.y=star.y+star.spd
If star.img=1 DrawImage star1,star.x,star.y
If star.img=2 DrawImage star2,star.x,star.y
If star.img=3 DrawImage star3,star.x,star.y
If star.y>600
star.killstar()
EndIf
Next
EndFunction
Function playerinput(bullet)
If KeyDown(key_left) px=px-5
If KeyDown(key_right) px=px+5
If KeyDown(key_up) py=py-5
If KeyDown(key_down) py=py+5
If KeyDown(88) And pridelay<MilliSecs()
b:bul=New bul
b.x=px
b.y=py
b.spd=5
ListAddLast bullist,b
pridelay=MilliSecs()+300
EndIf
EndFunction
|