1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| function createPig()
local pigsheet = sprite.newSpriteSheet("visuals/game_pig.png", 96, 96)
local pigset = sprite.newSpriteSet(pigsheet, 1, 6)
sprite.add (pigset, "pigmleft", 1, 3, 250, 0)
sprite.add (pigset, "pigmright", 4, 3, 250, 0)
pig = sprite.newSprite(pigset)
pig:setReferencePoint(display.TopLeftReferencePoint);
pig.x = display.contentWidth / 2 - 48
pig.y = 349
function collectProjectile(event)
if(event.phase == "ended") then
if(event.other.type == "coinsilver") then
event.other:removeSelf()
print("Silver Coin!")
elseif(event.other.type == "coingold") then
event.other.removeSelf()
print("Gold Coin!")
elseif(event.other.type == "rock") then
event.other.removeSelf()
print("Rock!")
end
end
end
pig:addEventListener("collision", collectProjectile)
end
function createProjectiles()
local projectilesheet = sprite.newSpriteSheet("visuals/game_projectiles.png", 48, 48)
local projectileset = sprite.newSpriteSet(projectilesheet, 1, 18)
sprite.add (projectileset, "coinsilver", 1, 6, 250, 0)
sprite.add (projectileset, "coingold", 7, 6, 250, 0)
sprite.add (projectileset, "rock", 13, 6, 250, 0)
projectile = sprite.newSprite(projectileset)
physics.addBody(projectile)
projectile.isSensor = true
projectile.isFixedRotation = true
local chooseProjectile = math.random(0, 2)
if (chooseProjectile == 0) then
projectile.type = "coinsilver"
projectile:prepare("coinsilver")
projectile:play("coinsilver")
elseif (chooseProjectile == 1) then
projectile.type = "coingold"
projectile:prepare("coingold")
projectile:play("coingold")
elseif (chooseProjectile == 2) then
projectile.type = "rock"
projectile:prepare("rock")
projectile:play("rock")
end
local chooseLocation = math.random(0, 1)
projectile.y = 421
projectile.x = -24 + chooseLocation * 848
projectile:applyLinearImpulse(0.2 - (chooseLocation * 0.4), -math.random(3, 4) / 10, projectile.x, projectile.y)
leftButton:toFront()
rightButton:toFront()
return projectile
end |