Add bananna and zoom in/out feature
This commit is contained in:
parent
c63e33f1bc
commit
76f548d6c4
Binary file not shown.
After Width: | Height: | Size: 227 B |
Binary file not shown.
36
main.lua
36
main.lua
|
@ -180,6 +180,7 @@ function game_draw ()
|
||||||
|
|
||||||
map:draw()
|
map:draw()
|
||||||
player:draw()
|
player:draw()
|
||||||
|
bananna:draw()
|
||||||
|
|
||||||
camera:detach()
|
camera:detach()
|
||||||
camera:draw()
|
camera:draw()
|
||||||
|
@ -208,6 +209,11 @@ function game_keypressed(key)
|
||||||
player.following = true
|
player.following = true
|
||||||
elseif (key == "f" and player.following == true) then
|
elseif (key == "f" and player.following == true) then
|
||||||
player.following = false
|
player.following = false
|
||||||
|
|
||||||
|
elseif (key == "=" and camera.scale < 10) then
|
||||||
|
camera.scale = camera.scale + 1
|
||||||
|
elseif (key == "-" and camera.scale > 1) then
|
||||||
|
camera.scale = camera.scale - 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -424,6 +430,25 @@ end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- BANNANA owo (win condition obj)
|
||||||
|
----------------------------------------
|
||||||
|
Bananna = class('Bananna')
|
||||||
|
world:addCollisionClass('Bananna')
|
||||||
|
|
||||||
|
function Bananna:initialize(x, y)
|
||||||
|
self.sprite = love.graphics.newImage("art/sprites/bananna.png")
|
||||||
|
self.collider = world:newRectangleCollider(x, y, 16, 16);
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function Bananna:draw()
|
||||||
|
local col = self.collider
|
||||||
|
local x,y = col.body:getWorldPoints(col.shape:getPoints())
|
||||||
|
love.graphics.draw(self.sprite, x, y, col.body:getAngle(), 1, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- MAP used to store map data (ofc)
|
-- MAP used to store map data (ofc)
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
Map = class('Map')
|
Map = class('Map')
|
||||||
|
@ -437,6 +462,9 @@ function Map:initialize(filepath)
|
||||||
local maptable = dofile(filepath)
|
local maptable = dofile(filepath)
|
||||||
|
|
||||||
love.graphics.setBackgroundColor(146/255, 187/255, 203/255)
|
love.graphics.setBackgroundColor(146/255, 187/255, 203/255)
|
||||||
|
local monkCount = 3
|
||||||
|
local monkX,monkY = 100,100
|
||||||
|
local banannaX,banannaY = 200,200
|
||||||
|
|
||||||
for n,layer in pairs(maptable.layers) do
|
for n,layer in pairs(maptable.layers) do
|
||||||
if not (layer.type == "objectgroup") then break; end
|
if not (layer.type == "objectgroup") then break; end
|
||||||
|
@ -452,15 +480,19 @@ function Map:initialize(filepath)
|
||||||
self.objects[o_c]:setCollisionClass('Platform')
|
self.objects[o_c]:setCollisionClass('Platform')
|
||||||
|
|
||||||
elseif (object.shape == "point" and object.type == "spawn") then
|
elseif (object.shape == "point" and object.type == "spawn") then
|
||||||
local monkCount = 3
|
|
||||||
if not (object.properties == nil
|
if not (object.properties == nil
|
||||||
and object.properties["count"] == nil) then
|
and object.properties["count"] == nil) then
|
||||||
monkCount = object.properties["count"]
|
monkCount = object.properties["count"]
|
||||||
end
|
end
|
||||||
player = Monk:new(object.x, object.y, monkCount)
|
monkX,monkY = object.x,object.y
|
||||||
|
|
||||||
|
elseif (object.shape == "point" and object.type == "bananna") then
|
||||||
|
banannaX,banannaY = object.x,object.y
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
player = Monk:new(monkX, monkY, monkCount)
|
||||||
|
bananna = Bananna:new(banannaX, banannaY)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,4 +9,13 @@ Text-box formatting will be ignored, but the text is used.
|
||||||
You can set the spawn point of the monkey party with a point object of type
|
You can set the spawn point of the monkey party with a point object of type
|
||||||
"spawn". Otherwise, it defaults to (100,100).
|
"spawn". Otherwise, it defaults to (100,100).
|
||||||
|
|
||||||
|
You can place the bannanas in the map with a point object of type "bannana".
|
||||||
|
Otherwise... it'll just pop up in (200,200).
|
||||||
|
|
||||||
Export your map to Lua, put it in a custom "maps" folder, and you're good to go!
|
Export your map to Lua, put it in a custom "maps" folder, and you're good to go!
|
||||||
|
|
||||||
|
|
||||||
|
Useful bits
|
||||||
|
----------------------------------------
|
||||||
|
The farthest a monkey can jump horizontally is 15 16x16 squares
|
||||||
|
The highest a monkey can jump vertically is 5 16x16 squares
|
||||||
|
|
|
@ -9,7 +9,7 @@ return {
|
||||||
tilewidth = 16,
|
tilewidth = 16,
|
||||||
tileheight = 16,
|
tileheight = 16,
|
||||||
nextlayerid = 5,
|
nextlayerid = 5,
|
||||||
nextobjectid = 34,
|
nextobjectid = 46,
|
||||||
properties = {},
|
properties = {},
|
||||||
tilesets = {},
|
tilesets = {},
|
||||||
layers = {
|
layers = {
|
||||||
|
@ -35,37 +35,22 @@ return {
|
||||||
height = 17,
|
height = 17,
|
||||||
rotation = 0,
|
rotation = 0,
|
||||||
visible = true,
|
visible = true,
|
||||||
text = "Hello, monkeys.",
|
text = "move with wasd or arrow keys",
|
||||||
wrap = true,
|
wrap = true,
|
||||||
properties = {}
|
properties = {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id = 30,
|
id = 38,
|
||||||
name = "",
|
name = "",
|
||||||
type = "",
|
type = "",
|
||||||
shape = "text",
|
shape = "text",
|
||||||
x = 132.961,
|
x = 1102.96,
|
||||||
y = 50.8333,
|
y = 312.833,
|
||||||
width = 82.0781,
|
width = 82.0781,
|
||||||
height = 17,
|
height = 17,
|
||||||
rotation = 0,
|
rotation = 0,
|
||||||
visible = true,
|
visible = true,
|
||||||
text = "You're hungry, aren't you?",
|
text = "hit 'space' to create a platform",
|
||||||
wrap = true,
|
|
||||||
properties = {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id = 31,
|
|
||||||
name = "",
|
|
||||||
type = "",
|
|
||||||
shape = "text",
|
|
||||||
x = 230.294,
|
|
||||||
y = 70.8333,
|
|
||||||
width = 82.0781,
|
|
||||||
height = 17,
|
|
||||||
rotation = 0,
|
|
||||||
visible = true,
|
|
||||||
text = "Go on ahead, then.",
|
|
||||||
wrap = true,
|
wrap = true,
|
||||||
properties = {}
|
properties = {}
|
||||||
}
|
}
|
||||||
|
@ -328,6 +313,19 @@ return {
|
||||||
rotation = 0,
|
rotation = 0,
|
||||||
visible = true,
|
visible = true,
|
||||||
properties = {}
|
properties = {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id = 43,
|
||||||
|
name = "",
|
||||||
|
type = "",
|
||||||
|
shape = "rectangle",
|
||||||
|
x = 1370,
|
||||||
|
y = 236,
|
||||||
|
width = 222.667,
|
||||||
|
height = 77.3333,
|
||||||
|
rotation = 0,
|
||||||
|
visible = true,
|
||||||
|
properties = {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -356,6 +354,19 @@ return {
|
||||||
properties = {
|
properties = {
|
||||||
["count"] = 4
|
["count"] = 4
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id = 45,
|
||||||
|
name = "",
|
||||||
|
type = "bananna",
|
||||||
|
shape = "point",
|
||||||
|
x = 1484,
|
||||||
|
y = 240,
|
||||||
|
width = 0,
|
||||||
|
height = 0,
|
||||||
|
rotation = 0,
|
||||||
|
visible = true,
|
||||||
|
properties = {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,14 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="100" height="100" tilewidth="16" tileheight="16" infinite="0" nextlayerid="5" nextobjectid="34">
|
<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="100" height="100" tilewidth="16" tileheight="16" infinite="0" nextlayerid="5" nextobjectid="46">
|
||||||
<editorsettings>
|
<editorsettings>
|
||||||
<export target="1.lua" format="lua"/>
|
<export target="1.lua" format="lua"/>
|
||||||
</editorsettings>
|
</editorsettings>
|
||||||
<objectgroup id="2" name="Object Layer 1">
|
<objectgroup id="2" name="Object Layer 1">
|
||||||
<object id="2" name="hi" x="37.6276" y="34.1667" width="94.08" height="17">
|
<object id="2" name="hi" x="37.6276" y="34.1667" width="94.08" height="17">
|
||||||
<text wrap="1">Hello, monkeys.</text>
|
<text wrap="1">move with wasd or arrow keys</text>
|
||||||
</object>
|
</object>
|
||||||
<object id="30" x="132.961" y="50.8333" width="82.0781" height="17">
|
<object id="38" x="1102.96" y="312.833" width="82.0781" height="17">
|
||||||
<text wrap="1">You're hungry, aren't you?</text>
|
<text wrap="1">hit 'space' to create a platform</text>
|
||||||
</object>
|
|
||||||
<object id="31" x="230.294" y="70.8333" width="82.0781" height="17">
|
|
||||||
<text wrap="1">Go on ahead, then.</text>
|
|
||||||
</object>
|
</object>
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
<objectgroup id="3" name="Object Layer 2">
|
<objectgroup id="3" name="Object Layer 2">
|
||||||
|
@ -34,6 +31,7 @@
|
||||||
<object id="24" x="959.333" y="353.333" width="30.6667" height="157.333"/>
|
<object id="24" x="959.333" y="353.333" width="30.6667" height="157.333"/>
|
||||||
<object id="26" x="989.333" y="367.333" width="34.6667" height="143.333"/>
|
<object id="26" x="989.333" y="367.333" width="34.6667" height="143.333"/>
|
||||||
<object id="29" x="1024" y="384.667" width="224" height="126.667"/>
|
<object id="29" x="1024" y="384.667" width="224" height="126.667"/>
|
||||||
|
<object id="43" x="1370" y="236" width="222.667" height="77.3333"/>
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
<objectgroup id="4" name="Object Layer 3">
|
<objectgroup id="4" name="Object Layer 3">
|
||||||
<object id="32" type="spawn" x="93" y="80">
|
<object id="32" type="spawn" x="93" y="80">
|
||||||
|
@ -42,5 +40,8 @@
|
||||||
</properties>
|
</properties>
|
||||||
<point/>
|
<point/>
|
||||||
</object>
|
</object>
|
||||||
|
<object id="45" type="bananna" x="1484" y="240">
|
||||||
|
<point/>
|
||||||
|
</object>
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
</map>
|
</map>
|
||||||
|
|
Ŝarĝante…
Reference in New Issue