【HSP3】DXライブラリをHSPで使ってみるサンプル(2.ジャンプ処理)

http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2 のHSP版です。DxLib.as は http://tkooler.moe.hm/hsp/img/DxLib.as から入手可能。Player.bmp は http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2 にあります。

http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2 のHSP版です。DxLib.as は http://tkooler.moe.hm/hsp/img/DxLib.as から入手可能。Player.bmp は http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2 にあります。

#runtime "hsp3cl"
#include "DxLib.as"	

	SetGraphMode 640 , 480 , 16
	DxLib_Init
	if( stat == -1 ){	// DXライブラリ初期化処理
		 dialog "エラー" : end		// エラーが起きたら直ちに終了
	}

	// 描画先画面を裏画面にセット
	SetDrawScreen DX_SCREEN_BACK

	// グラフィックのロード
	LoadGraph "Player.bmp"
	PlayerGraph = stat

	// キャラクターの初期データをセット
	PlayerX = 0
	PlayerY = 0
	JumpPower = 0

	// ループ
	repeat
		ProcessMessage
		if stat != 0 : break
		CheckHitKey KEY_INPUT_ESCAPE
		if stat != 0 : break
		
		// キー入力取得
		GetJoypadInputState DX_INPUT_KEY_PAD1
		Key = stat
		
		// 上を押していたら上に進む
		if( Key & PAD_INPUT_UP ) : PlayerY -= 3
		// 下を押していたら下に進む
		if( Key & PAD_INPUT_DOWN ) : PlayerY += 3
		// 右を押していたら右に進む
		if( Key & PAD_INPUT_RIGHT ) : PlayerX += 3
		// 左を押していたら左に進む
		if( Key & PAD_INPUT_LEFT ) : PlayerX -= 3

		// 落下処理
		PlayerY -= JumpPower

		// 落下加速度を加える
		JumpPower -= 1

		// もし地面についていたら止まる
		if( PlayerY > 300 ){
			PlayerY = 300
			JumpPower = 0
		}

		// ジャンプボタンを押していて、地面についていたらジャンプ
		if( ( Key & PAD_INPUT_A ) && PlayerY == 300 ) : JumpPower = 20 

		// 画面を初期化する
		RECT = -1, -1, -1, -1
		ClearDrawScreen varptr(RECT)	// 0 でもよい?

		// 黒でつぶす
		DrawBox 0, 0, 640, 480, TRUE

		// プレイヤーを描画する
		DrawGraph PlayerX , PlayerY , PlayerGraph , TRUE

		// 裏画面の内容を表画面に反映させる
		ScreenFlip
	loop
	
	DxLib_End				// DXライブラリ使用の終了処理
end