こんばんは。
今回質問したいのは, 画像を移動させるための計算についてです。
移動させる画像は 縦4 横3の
0 1 2
3 4 5
6 7 8
9 10 11
という感じの画像です。
これを0→1→2→0→1→2・・・という風に動かしたいのですが
計算方法がよくわかりません。
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 8 + ch.muki * 4];
この計算式では, 現在移動させようとしている画像は移動させられませんし
どういう計算式にすればよいのかさっぱり・・・
ヒントだけでも教えていただければ幸いです。
画像を移動させる際の計算について
Re:画像を移動させる際の計算について
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
でとりあえず動くかと思います。
でとりあえず動くかと思います。
Re:画像を移動させる際の計算について
ご回答ありがとうございます。
>>ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
あれ?
これって32を11で割れてないですよね?
何故綺麗の動くのですかね・・・?
>>ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
あれ?
これって32を11で割れてないですよね?
何故綺麗の動くのですかね・・・?
Re:画像を移動させる際の計算について
>これって32を11で割れてないですよね?
[[/url]は除算、[%]は剰余算です。
なので、
[0~10]/11=0
[11~21]/11=1
[22~31]/11=2
となってます。
[[/url]は除算、[%]は剰余算です。
なので、
[0~10]/11=0
[11~21]/11=1
[22~31]/11=2
となってます。
Re:画像を移動させる際の計算について
>ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3]; こんな場合はいかがでしょう? ch.x = 31; ch.y = 31; ch.muki = 3;(3が最大値でいいですよね?) ch.img = image[(31 % 32 + 31 % 32) / 11 + 3 * 3]; ch.img = image[(62)/11 + 9]; ch.img = image[5 + 9]; ch.img = image[14];(???) (ch.x % 32 + ch.y % 32) / 11ではなくて (ch.x + ch.y) % 32 / 11では無いでしょうか? 上記の値として ch.img = image[(31 + 31) % 32 / 11 + 3 * 3] ch.img = image[(62) % 32 / 11 + 9] ch.img = image[30 / 11 + 9] ch.img = image[2 + 9] ch.img = image[11]私がルールを知らないだけならば、申し訳ありません。
Re:画像を移動させる際の計算について
お二人ともご回答ありがとうございます。
kazuoniさん >>
なるほど。そういう風に分けられている、ということですね!
完全に、ではないかもしれませんが何となくわかったような気がします!
ご回答ありがとうございました!
星映さん >>
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
という式では, ちゃんとした画像が描画されない・・・ということですかね・・・?
中々難しいですね・・・
星映さんが記述してくださったソースを参考に色々試してみたいと思います。
できたらここで報告させていただきますね。
ご回答ありがとうございました!
kazuoniさん >>
なるほど。そういう風に分けられている、ということですね!
完全に、ではないかもしれませんが何となくわかったような気がします!
ご回答ありがとうございました!
星映さん >>
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
という式では, ちゃんとした画像が描画されない・・・ということですかね・・・?
中々難しいですね・・・
星映さんが記述してくださったソースを参考に色々試してみたいと思います。
できたらここで報告させていただきますね。
ご回答ありがとうございました!
Re:画像を移動させる際の計算について
>こんな場合はいかがでしょう?
>ch.x = 31;
>ch.y = 31;
ラッコさんの実装にもよりますが,
こちらのサイトで紹介している移動方法ならばch.xとch.yのどちらか片方は常に32の倍数になるので,
kazuoniさんの方法で大丈夫だと思われます.
>ch.x = 31;
>ch.y = 31;
ラッコさんの実装にもよりますが,
こちらのサイトで紹介している移動方法ならばch.xとch.yのどちらか片方は常に32の倍数になるので,
kazuoniさんの方法で大丈夫だと思われます.
Re:画像を移動させる際の計算について
mats さん>>
ご回答ありがとうございます。
なるほど。
kazuoniさんのやり方で大丈夫なんですね。
教えてくれてありがとうございます!
ご回答ありがとうございます。
なるほど。
kazuoniさんのやり方で大丈夫なんですね。
教えてくれてありがとうございます!
Re:画像を移動させる際の計算について
マップ一区画の移動だったんですね!
確かに一区画の移動ならX座標とY座標は同時に変化しませんもんね。
無駄な疑問いだかせて申し訳なかったです。
確かに一区画の移動ならX座標とY座標は同時に変化しませんもんね。
無駄な疑問いだかせて申し訳なかったです。
Re:画像を移動させる際の計算について
しばらくご返答できなくてすいませんでした。
星映 さん>>
ご回答ありがとうございます。
マップ一区画の移動でした。
詳しく明記してなくて申し訳ありません。。
皆さんのおかげで, 自分が想像していた動きを実装することができました!!
皆様本当にご教授ありがとうございました!!
これからもわからないことがあるかもしれませんが, その時はまたよろしくお願いいたします。
星映 さん>>
ご回答ありがとうございます。
マップ一区画の移動でした。
詳しく明記してなくて申し訳ありません。。
皆さんのおかげで, 自分が想像していた動きを実装することができました!!
皆様本当にご教授ありがとうございました!!
これからもわからないことがあるかもしれませんが, その時はまたよろしくお願いいたします。