I am recreating http://gamesloop.com/2011/04/05/space-is-key/
entire code:
[lua]display.setStatusBar( display.HiddenStatusBar )
require(“physics”)
physics.start()
physics.setGravity(0,0)
–[[
physics.setDrawMode( “hybrid” )
–]]
screenW = display.contentWidth
screenH = display.contentHeight
—[[
local playerFilter = { categoryBits = 1, maskBits = 10 }
local floorFilter = { categoryBits = 2, maskBits = 1 }
local deathFilter = { categoryBits = 4, maskBits = 4 }
local wallFilter = { categoryBits = 8, maskBits = 1 }
–]]
local function main()
deaths = 0
end
player = {}
local function makechar()
–player[deaths] = display.newRect(-50,450,50,50)
player[deaths] = display.newRect(-50,screenH/4*3,50,50)
physics.addBody(player[deaths], {bounce=0.01, filter=playerFilter})
player[deaths].id = “player”
transition.to( player[deaths], { time=1000, x=screenW/4 } )
end
local ground = display.newRect(-200,screenH/8*7,screenW+200,100)
physics.addBody(ground, “static”, {bounce = 0, filter=floorFilter})
–ground.rotation = 5
main()
makechar()
particle = {}
local function playerdies()
—[[
for i = 1,25 do
function removeparticle()
particle[i].isVisible = false
particle[i]:removeSelf()
particle[i] = nil
end
particle[i] = display.newRect(player[deaths].x,player[deaths].y,10,10)
physics.addBody(particle[i], {filter = deathFilter})
particle[i]:applyAngularImpulse( 1 )
–particle[i]:setFillColor(255,0,0)
transition.to( particle[i], { time=1500, alpha=0, onComplete=removeparticle } )
end
–]]
player[deaths].isVisible = false
player[deaths]:removeSelf()
player[deaths] = nil
deaths = deaths + 1
makechar()
end
timer.performWithDelay(1000,playerdies)
—[[
local wall = {}
local wallgroup = display.newGroup()
local nwall = 1
wall[nwall] = display.newRect(500,ground.y-150,50,100)
physics.addBody(wall[nwall], “static”, {filter=wallFilter})
wall[nwall].id = “wall”
wallgroup:insert(wall[nwall])
dist = 0
local scoreBox = display.newText( dist…“m”, 0 , 0, “Helvetica”, 26 )
scoreBox:setReferencePoint(display.TopRightReferencePoint)
local function distance()
dist = -wallgroup.x/5 + 1
–scoreBox.text = dist…" pixels"
scoreBox.text = math.floor(dist)…" pixels"
scoreBox.x = screenW - string.len(dist)*7
end
Runtime:addEventListener(“enterFrame”, distance)
local leftbtn = display.newRect(0,0,screenW/2,screenH)
leftbtn.alpha = 0.2
local rightbtn = display.newRect(screenW/2,0,screenW/2,screenH)
rightbtn.alpha = 0.3
local function checkbtn(event)
eventx = event.x
if event.target == leftbtn then
if event.phase == “began” then
lefttouch = true
elseif event.phase == “ended” then
lefttouch = false
end
elseif event.target == rightbtn then
if event.phase == “began” then
righttouch = true
elseif event.phase == “ended” then
righttouch = false
end
end
end
–]]
—[[
local function movement()
vx, vy = player[deaths]:getLinearVelocity()
if vy > -1 and vy < 1 then
player[deaths].air = false
else
player[deaths].air = true
end
if righttouch == true then
if player[deaths].air == false then
player[deaths]:applyLinearImpulse(0, -0.3, player[deaths].x, player[deaths].y )
transition.to( player[deaths], { time=1900, rotation = player[deaths].rotation + 90 } )
end
end
player[deaths]:applyLinearImpulse(0, 0.0098, player[deaths].x, player[deaths].y )
if lefttouch == true then
wallgroup.x = wallgroup.x - 10
else
wallgroup.x = wallgroup.x - 5
end
end
Runtime:addEventListener(“enterFrame”, movement)
leftbtn:addEventListener(“touch”, checkbtn)
rightbtn:addEventListener(“touch”, checkbtn)
–]]
local monitorMem = function()
collectgarbage(“collect”)
print( "\nMemUsage: " … collectgarbage(“count”) )
local textMem = system.getInfo( “textureMemoryUsed” ) / 1000000
print( "TexMem: " … textMem )
end
local memTimer = timer.performWithDelay(5000, monitorMem, -1)
[/lua] [import]uid: 79135 topic_id: 14812 reply_id: 55097[/import]