A007.ジャンプ処理

ジャンプ処理のプログラムです。

http://dxlib.o.oo7.jp/dxprogram.html#N2

DXライブラリを参考にしました!

 

-- main.lua

local	player_x, player_y
local	player_graph
local	jump_power

-- キー状態を保持
local	keystate = {}

function love.load()
	-- ■初期読み込み!
	
	-- グラフィックのロード
	player_graph = love.graphics.newImage("Player.bmp")
	
	-- キャラクターの初期位置をセット
	player_x = 0
	player_y = 0
	jump_power = 0
end

function love.keypressed(key, isrepeat)
	-- ■キーが押された!
	
	-- 押しっぱなしの情報を保持する
	keystate[key] = true
	
	-- エスケープボタンが押されたら終了イベントを起こす
	if key == "escape" then
		love.event.quit()
	end
end

function love.keyreleased(key)
	-- ■キーが離された!
	
	-- 押しっぱなしの状態から解除する
	keystate[key] = false
end

function love.update(dt)
	-- ■更新処理!
	
	local	move = dt * 300
	
	-- 押しっぱなしならプレイヤーの位置を動かす!
	-- ウィンドウの左上が(0,0)
	if keystate.up then
		player_y = player_y - move
	end
	if keystate.down then
		player_y = player_y + move
	end
	if keystate.right then
		player_x = player_x + move
	end
	if keystate.left then
		player_x = player_x - move
	end
	
	-- 落下処理
	player_y = player_y - jump_power
	
	-- 落下か速度を加える
	jump_power = jump_power - dt * 60
	
	if player_y > 300 then
		player_y = 300
		jump_power = 0
	end
	
	if keystate.z and player_y == 300 then jump_power = 20 end
end

function love.draw()
	-- ■描画処理!
	
	love.graphics.draw(player_graph, player_x, player_y)
end

 

http://dxlib.o.oo7.jp/dxprogram.html#N2

 

ここから、キャラクター画像ファイルのPlayer.bmpをダウンロードするか、自分でなんか適当に書いた画像ファイルを用意して、main.luaと同じフォルダ内に「Player.bmp」をコピーしてください。

 

都合により、ジャンプボタンをキーボードのZにしてあります。

地面着地時にZを押せばジャンプします!

移動はカーソルです。