1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- -- title: cylshooter
- -- author: pixelbath
- -- desc: short description
- -- site: website link
- -- license: MIT License (change this to your license of choice)
- -- version: 0.1
- -- script: lua
- -- The idea:
- -- like Resogun, a cylindrical shooter
- -- 1. render map
- -- 2. fix column-by-column, raycast style
- -- 3. how to draw background?
- -- 1. render bg map offscreen
- -- 2. memcpy to onscreen
- -- 3. render fg map offscreen
- -- 4. memcpy/pix the fg to the screen?
- local world = {}
- local entities = {}
- local player = {
- x=0, y=0,
- vx=0, vy=0,
- speed=1.5,
- }
- function player:update()
- self.vx = 0
- self.vy = 0
- if btn(0) then
- self.vy=-self.speed
- end
- if btn(1) then
- self.vy=self.speed
- end
- if btn(2) then
- self.vx=-self.speed
- end
- if btn(3) then
- self.vx=self.speed
- end
- -- slow down diagonal movements
- if self.vx * self.vy ~= 0 then
- self.vx = self.vx * 0.707
- self.vy = self.vy * 0.707
- end
- self.x = self.x + self.vx
- self.y = self.y + self.vy
- end
- function player:draw()
- rect(self.x, self.y, 8, 8, 4)
- end
- function world:add_entity(en)
- table.insert(entities, en)
- end
- function world:update()
- for key,val in ipairs(entities) do
- entities[key]:update()
- end
- end
- function world:draw()
- for key,val in ipairs(entities) do
- entities[key]:draw()
- end
- end
- world:add_entity(player)
- function TIC()
- cls()
- world:update()
- world:draw()
- end
- -- <PALETTE>
- -- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
- -- </PALETTE>
|