--[[ キー入力サンプル ]] function Initialize() SetWorldSize(1024, 1024) SetViewSize(480, 272) SetViewPos(0, 0) SetDrawSize(480, 272) SetDrawPos(0, 0) -- 描画システムの初期化 GraphicInitialize( 1, -- SCREEN_MODE_REALSIZE (0) -- PCとPSPの区別をつけず、座標とサイズをそのまま適用 -- SCREEN_MODE_FIT_PSP (1) -- PSPを基準にしてPCでは座標系を倍のサイズとして処理をする -- SCREEN_MODE_FIT_PC (2) -- PCを基準にしてPSPでは座標系を半分のサイズとして処理をする 0, -- テクスチャデータの扱いかた -- TEXTURE_MODE_REALSIZE (0) -- テクスチャをPSPでもそのまま読み込む -- TEXTURE_MODE_SHRINK (1) -- テクスチャをPSPでは半分のサイズにして読み込む 0, -- 64サイズのテクスチャ使用枚数 0, -- 128サイズのテクスチャ使用枚数 1, -- 256サイズのテクスチャ使用枚数 -- 今回は256*256のテクスチャ1枚読み込むので1を指定 0, -- 512サイズのテクスチャ使用枚数 0, -- 1024サイズのテクスチャ使用枚数 0, -- フォントの使用種類数 0) -- アニメデータの使用数 alice = LoadGraphic("ladder.bmp") -- キャラクターの表示座標 x, y = 200, 100 -- 描画先 DRAW_TO_WORLD = 0 DRAW_TO_VIEW = 1 DRAW_TO_SCREEN = 2 -- ボタンの状態 BUTTON_STATUS_NO = (-1) -- 押していない BUTTON_STATUS_PUSH = (0) -- 押した瞬間 BUTTON_STATUS_HOLD = (1) -- 押している BUTTON_STATUS_PULL = (2) -- 離した瞬間 -- ボタン番号 BUTTON_NUMBER_NONE =0 BUTTON_NUMBER_L1 =1 BUTTON_NUMBER_L2 =2 BUTTON_NUMBER_R1 =3 BUTTON_NUMBER_R2 =4 BUTTON_NUMBER_SELECT =5 BUTTON_NUMBER_START =6 BUTTON_NUMBER_TRIANGLE =7 BUTTON_NUMBER_SQUARE =8 BUTTON_NUMBER_CROSS =9 BUTTON_NUMBER_CIRCLE =10 BUTTON_NUMBER_UP =11 BUTTON_NUMBER_DOWN =12 BUTTON_NUMBER_RIGHT =13 BUTTON_NUMBER_LEFT =14 BUTTON_NUMBER_MAX =15 return end --[[ 毎フレームこの関数がシステムから呼び出される ]] function MainLoop() -- 現在のキー入力を取得する PadRefresh() -- 現在のキー状態を保存する -- PadUpdate(TmpOnly) -- 引数 -- TmpOnly -- 1: Tmp系のみ更新 -- 0: Tmp/非Tmp双方更新 -- -- 次にPadRefreshを実行したときは -- この保存されたデータと実行時のボタン状態を元にして -- ボタンが離されたか押されたかを判定する -- つまりこれを呼び出さないと、押した瞬間、離した瞬間、押しっぱなし、離しっぱなし、がわからない -- とりあえず0を与えておいてください PadUpdate(0) -- キーの状態を取得する -- up,down,left,right,circle,cross,triangle,square,L1,L2,R1,R2,Select,start = GetPadStatus() -- 戻り値 -- それぞれのキー入力状態が返ってくるので -- 上記のように変数を羅列して受け取っても良いし -- 下記のように配列に受け取っても良い Input = {GetPadStatus()} -- キー情報を調べて上下左右にキャラを動かす if (Input[BUTTON_NUMBER_RIGHT] == BUTTON_STATUS_PUSH or Input[BUTTON_NUMBER_RIGHT] == BUTTON_STATUS_HOLD) then x = x + 1 end if (Input[BUTTON_NUMBER_LEFT] == BUTTON_STATUS_PUSH or Input[BUTTON_NUMBER_LEFT] == BUTTON_STATUS_HOLD) then x = x - 1 end if (Input[BUTTON_NUMBER_UP] == BUTTON_STATUS_PUSH or Input[BUTTON_NUMBER_UP] == BUTTON_STATUS_HOLD) then y = y - 1 end if (Input[BUTTON_NUMBER_DOWN] == BUTTON_STATUS_PUSH or Input[BUTTON_NUMBER_DOWN] == BUTTON_STATUS_HOLD) then y = y + 1 end DrawTexture(alice, x, y, 64, 64, 0, 64*3, 64, 64, 0, DRAW_TO_WORLD) return end