Code archives/Graphics/Freaky Aliens Attacking!
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This is just a silly program I coded in about 10 minutes to demonstrate using pre-calculated sin and cos waves. You will need two images. Make sure the "Player" image has three frames (left, middle, right) The star code was taken from this archive. Enjoy! -cbmeeks http://www.metroidclassic.com http://www.signaldev.com | |||||
; Super Cheesy alien animation by cbmeeks of signaldev.com
;graphics
Graphics 640,480,16,1
SetBuffer BackBuffer()
;vars and types
Dim csin#(360)
Dim ccos#(360)
For a=0 To 359
csin#(a) = Sin(a) * 2
ccos#(a) = Cos(a) * 10
Next
;stars I ripped from someone
Const MAX_STAR=5000,STAR_SPEED=2,WIDTH=640,HEIGHT=480
Dim star_x(MAX_STAR),star_y(MAX_STAR),star_z(MAX_STAR)
For c=0 To MAX_STAR
star_x(c)=Rnd(-(WIDTH/2),(WIDTH/2))Shl 8
star_y(c)=Rnd(-(HEIGHT/2),(HEIGHT/2))Shl 8
star_z(c)=Rnd(STAR_SPEED,255)
Next
Global ALIVE=1, DEAD=0
Global NumAliens = 100
Global AlienImg, ShipImg
Type AlienType
Field x,y,xspeed,yspeed,status
End Type
;Alien Type
For a=1 To NumAliens
Alien.AlienType= New AlienType
Alien\x = Rnd(640)
Alien\y = Rnd(0,300)
Alien\xspeed = 0
Alien\yspeed = 0
Alien\status = ALIVE
Next
SeedRnd MilliSecs()
;load images
AlienImg = LoadImage("Bug.png")
MaskImage AlienImg,255,0,255
ShipImg = LoadAnimImage("Player.png",38,36,0,3)
MaskImage ShipImg,255,0,255
;main loop
Repeat
Cls
;draw stars
UpdateStar()
;draw aliens
For Alien.AlienType = Each AlienType
DrawImage AlienImg, Alien\x, Alien\y
Alien\x = Alien\x + Alien\xspeed
Alien\y = Alien\y + Alien\yspeed + 1
Alien\xspeed = csin#(count) * Rnd(-1,1)
Alien\yspeed = ccos#(count)
If Alien\y > 550 Then Alien\y = Rnd(-200,-50)
Next
count = count + 1: If count > 359 Then count = 0
;draw ship
If MouseX() < 215 Then
DrawImage ShipImg,MouseX(),400,1
End If
If MouseX() >= 215 And MouseX() < 430 Then
DrawImage ShipImg,MouseX(),400,0
End If
If MouseX() >= 430 Then
DrawImage ShipImg,MouseX(),400,2
End If
Flip
Until KeyHit(1)
End
Function UpdateStar()
For c=0 To MAX_STAR
star_z(c)=star_z(c)-STAR_SPEED
If star_z(c)<=STAR_SPEED Then star_z(c)=255
s_x=(star_x(c)/star_z(c))+(WIDTH/2)
s_y=(star_y(c)/star_z(c))+(HEIGHT/2)
col=255-star_z(c)
Color col,col,col
Plot s_x,s_y
Next
End Function |
Comments
| ||
| Causes a MAV under Blitz3D 1.90. |
| ||
| Since you have the code, vinylpusher, Hows about running it in debug and telling us what caused the MAV? :p Did you grab a player image? |
| ||
| "Image does not exist" by any chance? :P |
Code Archives Forum