| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- '===============================================================================
- ' Little Shooty Test Thing
- ' Code & Stuff by Richard Olpin ([email protected])
- '===============================================================================
- ' main
- '===============================================================================
- ' A little shooty thing! Needs a lot of work as I only hacked it together in
- ' about three hours one night and it's a right mix of both procedural and OO
- ' but it may inspire someone to do something..
- '===============================================================================
- Include "globals.bmx"
- Include "player.bmx"
- Include "playershots.bmx"
- Include "enemies.bmx"
- Include "background.bmx"
- Include "particles.bmx"
- Include "sound.bmx"
- Include "init.bmx"
- Include "titles.bmx"
- Include "gfont.bmx"
- ' -----------------------------------------------------------------------------
- Global tm, ms, old
- AppTitle$="Choose Screen Mode"
- Graphics 320,240,0,60
- DrawText "(W)indowed or (F)ullscreen?",0,120 ; Flip
- Repeat
- Until (KeyDown(KEY_F) Or KeyDown(KEY_W)) Or JoyDown(2)
- AppTitle$="Little Shooty Test by RiK (ESC To quit)"
- If KeyDown(KEY_W) Or JoyDown(2) Then
- Graphics WIDTH, HEIGHT,0,60
- Else
- Graphics WIDTH, HEIGHT,32,60
- EndIf
- AutoMidHandle True
- SeedRnd(MilliSecs())
- ' -----------------------------------------------------------------------------
- ' init
- ' -----------------------------------------------------------------------------
- init()
- Gfont.Init()
- HideMouse()
- ShowTitlePage()
- ' -----------------------------------------------------------------------------
- ' Main game loop
- ' -----------------------------------------------------------------------------
- ' Just stick an OGG called "music.ogg" in the sounds dir
- ' PlaySound(music,musicchannel)
- 'SetChannelVolume SoundChannel,1
- SetChannelVolume MusicChannel,0.75
- While Not KeyHit(KEY_ESCAPE)
- While JoyDown(5)
- Wend
- Cls
- ResetCollisions
-
- ' -------------------------------------------------------------------------
- ' Spawn a random spikey thing, joypad/keyboard check are for testing.
- ' -------------------------------------------------------------------------
-
- If Spawntimer<=0 Or JoyDown(3) Or KeyDown(key_e) Then
- Local nx=Rand(0,800)
- If Abs(player.x-nx)<200 Then nx=nx+400 ' dont spawn on top of player!
- Local ny=Rand(0,600)
- TEnemy.CreateEnemy (nx,ny)
- Spawntimer=60
- EndIf
-
- spawntimer:-1
- ' -------------------------------------------------------------------------
- ' Update Everything
- ' -------------------------------------------------------------------------
- UpdateEntities()
- ' -------------------------------------------------------------------------
- ' HUD/Score/whatever
- ' -------------------------------------------------------------------------
-
- SetColor 255,255,255; SetRotation 0; SetAlpha 1
- DrawText player.invincible,0,0 ' just for debug purposes
- DrawText "Little Shooty Test by RiK (ESC to quit)",20,0
-
- GFont.DrawString 800,16,score,-1,0
- If player.state=2 Then GFont.Drawstring 400,300,"YOU SUCK!",1,1
- Flip
- Wend
- ShowMouse()
- ' -----------------------------------------------------------------------------
- ' Update/draw everything
- '
- ' I've only stuck in out here as I like to keep the main loop small for clarity
- '
- ' -----------------------------------------------------------------------------
- Function UpdateEntities( )
- MoveBG()
- RenderBackGround(0,player.y)
- SetScale 1,1
- For Local b:TBullet =EachIn bullets
- b.Update
- Next
-
- SetScale 1,1
- For Local e:TEnemy =EachIn enemies
- e.Update
- Next
- For Local p:TParticle =EachIn particles
- p.Update
- Next
-
- player.update()
- ' Reset everything
- SetBlend ALPHABLEND
- SetScale 1,1
- SetAlpha 1
- SetRotation 0
- End Function
- ' -----------------------------------------------------------------------------
- ' End
- ' -----------------------------------------------------------------------------
|