山水堂
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を押せばジャンプします!
移動はカーソルです。