--[[ パタパタアニメサンプル ]] function Initialize() -- 座標系は3つあって、一番大きな概念がワールドです -- ワールドの一部を切り出したものがビューです -- スクリーンはモニター上の座標です。PSP/Win互換なので480*272ドットサイズです -- 座標系の設定 -- SetWorldSize ワールドのサイズを設定する -- 各種キャラクターなどはこのワールドのサイズ内に配置します -- ここではとりあえず1024*1024を指定。1024にこれといった意味はありません SetWorldSize(1024, 1024) -- SetViewSize ワールドから切り出すビューサイズを設定する -- ここではモニター解像度と同じ 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, -- フォントの使用種類数 1) -- アニメデータの使用数 -- ぱたぱたアニメを1個使うので1を指定 alice = LoadGraphic("ladder.bmp") -- パタパタアニメで使用するカウンタ Count = 0 -- 初期設定 InitializeAnimation() return end --[[ パタパタアニメ初期設定 ]] function InitializeAnimation() -- アニメを使うときは最初に管理番号を取得する -- -- アニメ設定番号取得 -- no = CreateAnimation(name) -- 引数 -- name -- アニメ名称。空文字列でもかまいません -- 戻り値 -- no -- アニメ管理番号 Anime = CreateAnimation("AnimeAliceWalkRight") -- ぱたぱたアニメの各コマを設定します -- アニメの表示順に登録して行きます -- -- SetAnimationData(anime, tex, x, y, width, height, subX, subY, count) -- 引数 -- anime -- CreateAnimationで受け取った戻り値を与える -- tex -- 描画するデータのあるテクスチャ番号 -- LoadGraphicで受け取った戻り値を与える -- x, y -- テクスチャから切り出すx,y開始座標 -- width, height -- 切り出すテクスチャのサイズ -- subX, subY -- 表示する際にこのx,yだけ基準座標よりずらして表示する -- count -- コマごとの表示時間 time = 20 SetAnimationData(Anime, alice, 0, 128, 64, 64, -16, 0, time); SetAnimationData(Anime, alice, 64, 128, 64, 64, -16, 0, time); SetAnimationData(Anime, alice, 0, 128, 64, 64, -16, 0, time); SetAnimationData(Anime, alice, 128, 128, 64, 64, -16, 0, time); -- 表示に使うアニメの番号 Motion = Anime -- 表示に使うアニメのコマ番号(0ではなく1から始まる) Pattern = 1 return end --[[ 毎フレームこの関数がシステムから呼び出される ]] function MainLoop() DRAW_TO_WORLD = 0 DRAW_TO_VIEW = 1 DRAW_TO_SCREEN = 2 -- アニメーションを表示する -- DrawAnimation(anime, pattern, x, y, z, draw_to) -- 引数 -- anime -- アニメ番号 -- pattern -- コマ番号 -- x, y -- 表示座標 -- z -- Z値 -- 0-255の値をとる。数値が大きいほど後に描画されるので画面手前に表示される。 -- draw_to -- 使用座標系 -- DrawAnimation(Motion, Pattern, 200, 100, 0, DRAW_TO_WORLD) -- ぱたぱたアニメーションのカウント増加 -- anime, pattern, count, ret = CountAnimationPattern(anime, pattern, count, mode, add, repeat) -- 引数 -- anime -- アニメ情報のアニメ番号 -- モーション番号を切り替えるときはそのアニメ番号 -- 今のままカウンタだけすすめるならば-1か使用中のアニメ番号を指定 -- pattern -- コマ番号 -- 現在のコマ番号 -- count -- 現在のカウンタ値 -- mode -- アニメを切り替えるときの動作 -- 0:モーション番号を変更するだけ 非0:カウンタも進める -- add -- 増加させるカウンタ数 -- 数値に上限はありませんが、内部では値の回数ループを行っているので処理が多少無駄になります -- repeat -- 最後のコマの次はどうするか -- 1:最初のコマに戻って繰り返す -- 0:繰り返さない -- -- 戻り値 -- anime -- 処理後のアニメ番号 -- pattern -- 処理後のこま番号 -- count -- 処理後のカウンタ値 -- ret -- 最後のコマに来たか(アニメパターンを一周したか) -- 1:一周した -- 0:まだ途中 -- Motion, Pattern, Count, ret = CountAnimationPattern(Motion, Pattern, Count, -1, 1, 1) return end