add early coin random generation
This commit is contained in:
parent
c637fceca7
commit
12365663e2
108
right_coin.lua
108
right_coin.lua
|
@ -38,9 +38,94 @@ anis={
|
||||||
idle={257},
|
idle={257},
|
||||||
run={273,274},
|
run={273,274},
|
||||||
jump={289},
|
jump={289},
|
||||||
fall={290}
|
fall={290},
|
||||||
|
coin={
|
||||||
|
blue= {321,321,322,322,323,323,324,324},
|
||||||
|
red= {337,337,338,338,339,339,340,340},
|
||||||
|
yellow={353,353,354,354,355,355,356,356},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function drawActor(self)
|
||||||
|
self.spr=self.ani[(((t)//3)% #self.ani)+1]
|
||||||
|
local flip
|
||||||
|
if self.isFlipped then flip = 1 else flip = 0 end
|
||||||
|
spr(self.spr, self.x, self.y, 1, 1, flip)
|
||||||
|
end
|
||||||
|
|
||||||
|
colors={"blue","red","yellow"}
|
||||||
|
spawnLocs={
|
||||||
|
{x=28*8,y=5*8},
|
||||||
|
{x=12*8,y=11*8},
|
||||||
|
{x=20*8,y=9*8},
|
||||||
|
{x=7*8,y=13*8}
|
||||||
|
}
|
||||||
|
coins={}
|
||||||
|
do -- Coin
|
||||||
|
Coin={
|
||||||
|
color=colors[1],
|
||||||
|
ani=anis.coin.red,
|
||||||
|
spr=0,
|
||||||
|
x=0,y=0,
|
||||||
|
w=8,h=8,
|
||||||
|
}
|
||||||
|
|
||||||
|
function Coin:new(o)
|
||||||
|
o = o or {}
|
||||||
|
self.__index = self
|
||||||
|
setmetatable(o, self)
|
||||||
|
return o
|
||||||
|
end
|
||||||
|
|
||||||
|
function Coin:setColor(c)
|
||||||
|
self.color = c
|
||||||
|
if c=="red" then self.ani=anis.coin.red
|
||||||
|
elseif c=="blue" then self.ani=anis.coin.blue
|
||||||
|
elseif c=="yellow" then self.ani=anis.coin.yellow
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Coin:draw()
|
||||||
|
drawActor(self)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function randomColor()
|
||||||
|
return colors[math.random(#colors)]
|
||||||
|
end
|
||||||
|
|
||||||
|
function coinAtLoc(loc)
|
||||||
|
for i,v in pairs(coins) do
|
||||||
|
if v.x == loc.x and v.y == loc.y then return true end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function randomValidSpawnLoc()
|
||||||
|
local loc
|
||||||
|
repeat loc=spawnLocs[math.random(#spawnLocs)]
|
||||||
|
until not coinAtLoc(loc)
|
||||||
|
return loc
|
||||||
|
end
|
||||||
|
|
||||||
|
function canAddCoin()
|
||||||
|
return #coins < #spawnLocs
|
||||||
|
end
|
||||||
|
|
||||||
|
function addRandomCoin()
|
||||||
|
if not canAddCoin() then return end
|
||||||
|
local newCoin=Coin:new()
|
||||||
|
local loc=randomValidSpawnLoc()
|
||||||
|
newCoin:setColor(randomColor())
|
||||||
|
newCoin.x=loc.x
|
||||||
|
newCoin.y=loc.y
|
||||||
|
coins[#coins + 1]=newCoin
|
||||||
|
end
|
||||||
|
-- MOCK
|
||||||
|
addRandomCoin()
|
||||||
|
addRandomCoin()
|
||||||
|
-- /MOCK
|
||||||
|
|
||||||
do -- Player
|
do -- Player
|
||||||
Player = {
|
Player = {
|
||||||
spr=0,
|
spr=0,
|
||||||
|
@ -114,10 +199,7 @@ do -- Player
|
||||||
end
|
end
|
||||||
|
|
||||||
function Player:draw()
|
function Player:draw()
|
||||||
self.spr=self.ani[(((t)//3)% #self.ani)+1]
|
drawActor(self)
|
||||||
local flip
|
|
||||||
if self.isFlipped then flip = 1 else flip = 0 end
|
|
||||||
spr(self.spr, self.x, self.y, 1, 1, flip)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -146,6 +228,10 @@ function drawGame()
|
||||||
map(0,0,30,17)
|
map(0,0,30,17)
|
||||||
p:draw()
|
p:draw()
|
||||||
|
|
||||||
|
for i,v in pairs(coins) do
|
||||||
|
v:draw()
|
||||||
|
end
|
||||||
|
|
||||||
-- Life
|
-- Life
|
||||||
spr(83,0,0)
|
spr(83,0,0)
|
||||||
local color=11 -- green
|
local color=11 -- green
|
||||||
|
@ -373,6 +459,18 @@ end
|
||||||
-- 018:00044000000cc000000cc000006666c000c66000000888800008008000880000
|
-- 018:00044000000cc000000cc000006666c000c66000000888800008008000880000
|
||||||
-- 033:00044000000cc0c0000cc060006666600066c600000888800888008000000080
|
-- 033:00044000000cc0c0000cc060006666600066c600000888800888008000000080
|
||||||
-- 034:000440000c0cc0c0060cc0600666666000066600000888000080008008000008
|
-- 034:000440000c0cc0c0060cc0600666666000066600000888000080008008000008
|
||||||
|
-- 065:0088880008822880082882800828828008288280082882800882288000888800
|
||||||
|
-- 066:0008800000882200008828000088280000882800008828000088220000088000
|
||||||
|
-- 067:0008800000288200002882000028820000288200002882000028820000088000
|
||||||
|
-- 068:0008800000228800008288000082880000828800008288000022880000088000
|
||||||
|
-- 081:00cccc000cc66cc00c6cc6c00c6cc6c00c6cc6c00c6cc6c00cc66cc000cccc00
|
||||||
|
-- 082:000cc00000cc660000cc6c0000cc6c0000cc6c0000cc6c0000cc6600000cc000
|
||||||
|
-- 083:000cc000006cc600006cc600006cc600006cc600006cc600006cc600000cc000
|
||||||
|
-- 084:000cc0000066cc0000c6cc0000c6cc0000c6cc0000c6cc000066cc00000cc000
|
||||||
|
-- 097:00eeee000ee99ee00e9ee9e00e9ee9e00e9ee9e00e9ee9e00ee99ee000eeee00
|
||||||
|
-- 098:000ee00000ee990000ee9e0000ee9e0000ee9e0000ee9e0000ee9900000ee000
|
||||||
|
-- 099:000ee000009ee900009ee900009ee900009ee900009ee900009ee900000ee000
|
||||||
|
-- 100:000ee0000099ee0000e9ee0000e9ee0000e9ee0000e9ee000099ee00000ee000
|
||||||
-- </SPRITES>
|
-- </SPRITES>
|
||||||
|
|
||||||
-- <MAP>
|
-- <MAP>
|
||||||
|
|
Loading…
Reference in a new issue