Difference between revisions of "Love - Moving an object"
(Created page with "=Requirements= You need to have followed the installation process for the Love engine. You also need to have created a minimal game (ie a new folder, with a 'main.lua' file)...") |
(→Drawing the player) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
<syntaxhighlight lang=lua> | <syntaxhighlight lang=lua> | ||
+ | function love.load() | ||
+ | |||
+ | end | ||
+ | |||
function love.update(dt) | function love.update(dt) | ||
Line 14: | Line 18: | ||
end | end | ||
− | + | </syntaxhighlight> | |
− | + | ||
+ | =Create a Player Object= | ||
+ | This tutorial will create a player object, if you wanted to create a complete game then you would need to create a class for the player. So before 'love.load()' add the following code: | ||
+ | |||
+ | <syntaxhighlight lang=lua> | ||
+ | player = { | ||
+ | x = 100, | ||
+ | y = 100, | ||
+ | w = 10, | ||
+ | h = 10, | ||
+ | speed = 200 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | This essentially creates a structure called player, this structure has an X position of 100, a Y position of 100, a w(width) of 10, a h(height) of 10, and a speed of 200. | ||
+ | |||
+ | =Drawing the player= | ||
+ | We will just draw a rectangle at the players position, you could use an image instead or even some frame based animations. So in the draw section add the following code: | ||
+ | |||
+ | <syntaxhighlight lang=lua> | ||
+ | love.graphics.setColor(255, 255, 0,255) | ||
+ | love.graphics.rectangle('fill',player.x,player.y,player.w,player.h) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Everytime the draw method is called, the color will be set to yellow, and then draw the rectangle for the player. | ||
+ | |||
+ | =Movement= | ||
+ | The update section will be run multiple times during the game, so this is the ideal section to add the movement code. After update is run the draw method will be immediately called, it is better to keep draw just to drawing the game and update for everything else. | ||
+ | |||
+ | So in the update section add the following for left and right movement: | ||
+ | <syntaxhighlight lang=lua> | ||
+ | if love.keyboard.isDown('a') then | ||
+ | player.x = player.x - dt * player.speed | ||
+ | elseif love.keyboard.isDown('d') then | ||
+ | player.x = player.x + dt * player.speed | ||
+ | end | ||
+ | </syntaxhighlight> | ||
+ | You should then deal with up and down movement, so add: | ||
+ | <syntaxhighlight lang=lua> | ||
+ | if love.keyboard.isDown('w') then | ||
+ | player.y = player.y - dt * player.speed | ||
+ | elseif love.keyboard.isDown('s') then | ||
+ | player.y = player.y + dt * player.speed | ||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 12:18, 4 June 2019
Requirements
You need to have followed the installation process for the Love engine.
You also need to have created a minimal game (ie a new folder, with a 'main.lua' file)
You need to have added this code to 'main.lua':
function love.load()
end
function love.update(dt)
end
function love.draw()
end
Create a Player Object
This tutorial will create a player object, if you wanted to create a complete game then you would need to create a class for the player. So before 'love.load()' add the following code:
player = {
x = 100,
y = 100,
w = 10,
h = 10,
speed = 200
}
This essentially creates a structure called player, this structure has an X position of 100, a Y position of 100, a w(width) of 10, a h(height) of 10, and a speed of 200.
Drawing the player
We will just draw a rectangle at the players position, you could use an image instead or even some frame based animations. So in the draw section add the following code:
love.graphics.setColor(255, 255, 0,255)
love.graphics.rectangle('fill',player.x,player.y,player.w,player.h)
Everytime the draw method is called, the color will be set to yellow, and then draw the rectangle for the player.
Movement
The update section will be run multiple times during the game, so this is the ideal section to add the movement code. After update is run the draw method will be immediately called, it is better to keep draw just to drawing the game and update for everything else.
So in the update section add the following for left and right movement:
if love.keyboard.isDown('a') then
player.x = player.x - dt * player.speed
elseif love.keyboard.isDown('d') then
player.x = player.x + dt * player.speed
end
You should then deal with up and down movement, so add:
if love.keyboard.isDown('w') then
player.y = player.y - dt * player.speed
elseif love.keyboard.isDown('s') then
player.y = player.y + dt * player.speed
end