8年前どうも、PEACH-CELLです。現在、龍神録プログラミングの第9章「キャラクタの移動制御をしてみよう」を勉強中です。それでだいたいは理解できたんですが、ちょっとわからないところがあるのです。自分の自機の画像あいうえおかきくけこさしすせそたちつてとなにぬね↑1文字で1種類の画像です。左キーを押したら「けこさし」の画像、右キーを押したら「すせそた」の画像を順に表示することはできました。・左キーをx秒押し続けると「ちつてと」の画像をループ・右キーをx秒押し続けると「なにぬね」の画像をループ・左キーを離すと「しさこけ」の順で画像を表示、その後「おかきく」の画像をループ・右キーを離すと「ねぬにな」の順で画像を表示、その後「あいうえ」の画像をループ以上4つの動きはどうすればできるのでしょうか?ちなみに前回の質問は自分の壮大な勘違いによるものでした...簡単に言えばSFCのソフトをDSでやろうとしていたようなものです...前回の質問でいろいろ考えて下さった方には感謝と申し訳なさでいっぱいです。ありがとうございました&申し訳ありませんでした。8年前ソースが無いので細かい事はワカリマセンが、コレは、分割してロードしているのか一枚の画像としてロードしているのかで、書き方が変わります。常に4つのループはしてるようですので、ループ用のカウンタを創ってループしてあげたら良いと思います。count=0;count+=0.1;img[(int)(count)%4]みたいな感じとかです。ボタンを押したり特定の条件で描写する画像が変わるのでしたら、mode=0;でも創っておいて、img[(int)(count)%4+(mode*4)];としたら、できるのではないのかと思います。あいうえをループしたければ、modeの値を0へおかきくをループしたければ、modeの値を1へなにぬねをループしたければ、modeの値を5へみたいな感じにです〜の後に〜のループでしたら、しさこけつまりmodeが5の時ですね。この時、countの値が(int)(count)%4==0ならば、おかきくつまりmodeを1に変更して上げるプログラムをくんであげたら良いと思います。(==0か==3かが場所によって変わります。)ですがこの場合は反対になるので、mode5の時にcountの値が反対に減って行くようにする工夫も必要です。(マイナス注意...あれ?マイナスなったっけ?)なんにせよ、modeの値が変わるときにcountの値も書き換えてあげれば問題は減ると思います。*上の文章はほとんど想像で書いてるため、適切でない場面が多々ある可能性があります。**ご注意くださいませ。8年前パコネコさんありがとうございました。今はちょっと時間ないので明日あたろやってみます。あと、一応自分のコード載せときます、といっても第9章をコピペしたものですが。8年前パコネコさんの代わりに書くと少なくともC言語の入門書はお読みください。C++までは要りません。基本的なことが分からないと自分では作れるようになりませんので。サイトだと「苦しんで覚えるC言語」http://9cguide.appspot.com/これで勉強してみて下さい。した書籍に比べると問題のある記述箇所が見受けられます。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。8年前softyaさんありがとうございました。基本から学ばねばいけないようですね...少し勉強してから...また戻ってくると思います。8年前しばらくsoftyaさんが薦めて下さったサイトで勉強しまして、パコネコさんが仰ってるようにmode関数を作ってキャラの画像の変更に一部成功致しました。}}ですが、ひとつ問題が起きました。「左(右)キーが押されていたら画像を左(右)向きに」は成功するのですが「左(右)キーを押している間に画像が一巡したら左(右)移動画像をループ」が成功しません。左(右)キーを押し続けてもmode=2(3)の画像がループするだけです。どこがおかしいのか教えて下さい。mode=0;は関数に入るたびに0に初期化されます。右キーを押している間に画像が一巡したらの2つの条件は永久に成立しません。0;と書けば1回だけ初期化されるようになります。これについては、変数の寿命を学んで下さい。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。8年前もう一つありました。左キーを押している間に画像が一巡したらが通ることは絶対ありません。これは根本的に考えるべき問題です。プログラムのステートメント(文)の実行順番をちゃんと把握されていないと思われます。分からない時はフローチャートで流れをよく考えてみてください。御構造・2」http://rina.jpn.ph/~rance/c_language/p12.html絶対に使えというわけではないですが頭を整理するのに役立つと思います。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。8年前softyaさんありがとうございました。勉強して多分理解できました。}}こうするとだいたいうまくできました。この場合だとmode=2(3)からmode=4(5)に移るときに問題が。なってあが飛ばされてしまいます。ch.imgが21~30のときはあといが、ch.imgが31~40のときはあといとうが飛ばされます。ch.imgが21~30、つまり画像がうのときはなぜかうまくいきませんが妥協します。上の方法以外で「左を押すとch.imgの値に関係なく画像があ→い→う→えとなる」方法ってあるのでしょうか?自分はこれ以外に思いつきません。えどういう風に番号の変化を狙っているのかつかめません。なってあが飛ばされてしまいます。ch.imgが21~30のときはあといが、ch.imgが31~40のときはあといとうが飛ばされます。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。...ch.imgではなくch.cntです。画像が変換されるようにします。変換され、けの画像が飛ばされます。変換されるようにしたいのです。画像を変換するときにもcountは増え続けてるのでこのようなことが起こるのでしょう(と自分は思っております)。上のプログラムでのmodeの役割は「現在の画像から8つ先の画像を描画する」です。具体的には画像がいのとき+8されてこが描画されます。なると考え、nowa,nowb,nowcを用意しました。この3つはmodeに代入された数字を変化させるものです。具体的には画像がいのときにはmodeが7に、画像がうのときにはmodeが6に、画像がえのときにはmodeが5になるようにします。前のレスで試したようなことを書いていますが、まだ試していません。画像が変換されるときもcountが増え続けるとしたら、このままだとさやしが飛ばされることになりますが。変換される方法はあるのでしょうか?あとcountの値を書き換える方法がわかりません。別々にカウントすれば解決する気がします。あ→い→う→えのカウンタとけ→こ→さ→しのカウンタは別のものって事です。それとあ→い→う→えに戻ったときにけ→こ→さ→しのカウンタを0にしておきます。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。8年前softyaさんいつもありがとうございます。case文を使ってみました。}これで画像があ、い、う、えのどのときでもけ→こ→さ→しと変換することが可能になりました。今度はけ→こ→さ→しからち→つ→て→とに変換することができなくなりました。break;とすると左を押して離したときにmodea=4が代入されます。case文の外に書くと画像が変換することもできません。break;にしても同じく左を離したときにmodea=4が代入されます。2に分岐することすらないようです。すればいいかわかりません。8年前とりあえずインデントをキレイに整理してください。すごく読みづらいです。あとコメントが無いので変数の狙いが良く分かりません。すごく難しく使いづらく組んでるように思えてなりません。それぞれの変数の役割とあ→い→う→え、け→こ→さ→し、ち→つ→て→との変化との関係を書いてみてください。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。毎度お世話になってます。PEACH-CELLです。インデント修正中にsoftyaさんが仰った『プログラムのステートメント(文)の実行順番』に気付き、ステートメントを組み直したところ、ようやく自分の思い通りにキャラを動かすことに成功致しました。}}これで・初期状態ではあいうえをループ・左キーを押すとけこさし→ちつてとのループ・右キーを押すとすせそた→なにぬねのループ・左キーを押して離すとしさこけ→あいうえのループ・右キーを押して離すとたそすせ→おかきくのループという様に描画することができました。countの値を--にするとうまくいきませんでした(例えば、mode=0のときにcountを--に変更するとあ→描画されない→あ→...を繰り返す)なので対策として、使用する自機画像をあいうえおかきくけこさしすせそたちつてとなにぬねしさこけたそせすに変更しました。パコネコさん、softyaさん。今まで丁寧に教えて下さってありがとうございました。左キーを長押しして、“ちつてと”のループ中、瞬時に右キーに入力が切り替わると、“すせそた”を飛ばして一気に“なにぬね”に移行しますけど。意図したとおりですか?画像は左右に傾いたイメージでしょうか。整理してさらに3分の1くらいにコードを減らせますよ。>左キーを長押しして、“ちつてと”のループ中、瞬時に右キーに入力が切り替わると、“すせそた”を飛ばして一気に“なにぬね”に移行しますけど。>#左右逆も同様>意図したとおりですか?いえ、意図したとおりではありません。ありがとうございました。ミクプラは自由にリンクできます。