6年前はじめまして、超初心者趣味グラマーのマシュマロです。現在自作シューティングゲームを作ろうとしていて、まず自機の描画、操作、とアニメーションをクリアしたいのですがアニメーションの段階で困っています。アニメーションは具体的に自機が左右に滑らかに傾く事を再現したいと思ってます。過去にいくつか似たような投稿はあったのですが、自分の再現したい物とは少し違うので、今回初めての投稿ですがどうぞよろしくお願いします。こちらのフレーム画像は自機となるイメージが五つ横一列に並んでます(gh[5])。そのうちの真ん中(配列要素2)は機体が傾いていないイメージ、そこから左に(0←1)右に(3→4)と2段階傾くイメージをならべています(全体的には01234のイメージ)。これを使って例えば右キーが押されっぱなしなら2からインクリメント(最大4まで)、左キーならデクリメント(最低0まで)させたいのです。左右どちらかが押されっぱなしの後ニュートラルに戻った(キーが離された)らそこから2を目掛けてインクリメント又はデクリメントさせたいのです。言う変化をするプログラムは作れますか?それだけを行うコードを提示してもらって、そこをベースに機能追加していけば良いと思います。[DXライブラリ]」http://dixq.net/g/03_01.htmlこれとかベースに良いんじゃないでしょか。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。読みづらい...wもう少し改行をですねってそれは置いておきましてマシュマロモンスターさんがおっしゃる通りゲームプログラミングの館の「キーが押されているフレーム数を取得する」を応用すれば実装できますよ~考え方を教えますと(右方向の入力を例にとります)ニュートラル状態の時に少しでも右が押されると数値を1つだけインクリメントさせます(3にする)そして数値が3の状態(1段階傾いている状態)で更に一定時間(時間は適当に決めちゃってください)キーを押し続けると、もう1段階インクリメントさせるという処理を作ればいいと思います。元に戻る時は、そうですね4から3に戻す時は、キーが離された瞬間でいいと思います。3から2に戻す時は、キーのカウントとは別にモーション用のカウンタを用意しておいてキーが”押されていない”間モーションカウントを増やしていき、これも一定の時間になったらデクリメント(2に戻す)でいいと思います。6年前jayさん、softyaさん、どうもありがとうございます。言う変化をする」というプログラムはすぐに出来ました。必要な部分だけ提示します。(右キーの場合のみです)。この時点でキーボード取得関数はとりあえずゲームプログラミングの館の3.1章にあるgpUpdateKey()を使わせていただきました。ここからjayさんの提案を元に機能を追加して行きたいのですがとりあえず離したら加算されるカウンターを作ったりして試してみます。参考にしたいのですが中々前に進まない状況です。理想的には出来上がった物を後に一つのMove()関数(自機の移動処理)にまとめてクラスなど使うようになったら扱いやすくしたいです。学生の頃にドット絵のアニメーションを再生していたときは私はアニメーションの再生インデックスとフレームを対応付けしていましたね。「離されたらニュートラルに戻るアニメを再生する」というアニメを一つの形式にまとめると楽に管理できますしドット絵の枚数が増えても簡単に対応できます。キーの入力は「現在の入力情報」と「前回のフレームの入力情報」の比較を取れば簡単に得られます。逆に「今回の更新ではKey[KEY_INPUT_RIGHT]には0の値が入っていたけど、前回のフレームでは1(以上)の値だった」なら離されたタイミングです。現在も前回も1以上なら入力されっぱなし、というわけですね。6年前usaoさんの方法で大体OKだと思います。キーを逆方向に切り返した時は、どうアニメーションするかは考えておいたほうが良いかなって気がします。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。皆様、本当にどうもありがとうございます!物凄く勉強になりました。@usaoさん提示してくださったコードを使ってみたところ思い通りにアニメーション出来ました。わかり易く書いていただいて感謝しております!@softyaさん仰ったように、右から左へいきなり切り返した時はやはり直に2(真ん中)に戻っているように見えます。今はフレーム数が少ない為、現時点ではあまり気にはなりません。これからもし多数のフレームを扱いたいと思った時に備えてsoftyaさんのアドバイスをメモさせていただきます。@せんちゃさんあぁその手もありましたか!確かにそれぞれの動作に応じて必要なアニメーションを用意すればコードも劇的に短くなりそうですね。試させていただきます。6年前>ところで、「現在の入力情報」と「前回のフレームの入力情報」を比較するにはどうしたらいいのでしょうか?今回のをstaticに保存しておいて次回に使うとかでしょうね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。今回のをstaticに保存しておいて次回に使うとかでしょうね。おーなるほど、わかった様な気がします!この方法は自機の弾発射処理などにも、色々使えそうですね。これでこの件は解決とします。皆様、御協力ありがとうございます!今後ともよろしくお願いします。ミクプラは自由にリンクできます。