ページ 1 / 1
画像を移動させる際の計算について
Posted: 2009年11月28日(土) 17:51
by ラッコ
こんばんは。
今回質問したいのは, 画像を移動させるための計算についてです。
移動させる画像は 縦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:画像を移動させる際の計算について
Posted: 2009年11月28日(土) 18:47
by kazuoni
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
でとりあえず動くかと思います。
Re:画像を移動させる際の計算について
Posted: 2009年11月28日(土) 21:13
by ラッコ
ご回答ありがとうございます。
>>ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
あれ?
これって32を11で割れてないですよね?
何故綺麗の動くのですかね・・・?
Re:画像を移動させる際の計算について
Posted: 2009年11月28日(土) 22:49
by kazuoni
>これって32を11で割れてないですよね?
[[/url]は除算、[%]は剰余算です。
なので、
[0~10]/11=0
[11~21]/11=1
[22~31]/11=2
となってます。
Re:画像を移動させる際の計算について
Posted: 2009年11月28日(土) 23:18
by 星映
>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:画像を移動させる際の計算について
Posted: 2009年11月28日(土) 23:41
by ラッコ
お二人ともご回答ありがとうございます。
kazuoniさん >>
なるほど。そういう風に分けられている、ということですね!
完全に、ではないかもしれませんが何となくわかったような気がします!
ご回答ありがとうございました!
星映さん >>
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
という式では, ちゃんとした画像が描画されない・・・ということですかね・・・?
中々難しいですね・・・
星映さんが記述してくださったソースを参考に色々試してみたいと思います。
できたらここで報告させていただきますね。
ご回答ありがとうございました!
Re:画像を移動させる際の計算について
Posted: 2009年11月28日(土) 23:55
by mats
>こんな場合はいかがでしょう?
>ch.x = 31;
>ch.y = 31;
ラッコさんの実装にもよりますが,
こちらのサイトで紹介している移動方法ならばch.xとch.yのどちらか片方は常に32の倍数になるので,
kazuoniさんの方法で大丈夫だと思われます.
Re:画像を移動させる際の計算について
Posted: 2009年11月29日(日) 00:05
by ラッコ
mats さん>>
ご回答ありがとうございます。
なるほど。
kazuoniさんのやり方で大丈夫なんですね。
教えてくれてありがとうございます!
Re:画像を移動させる際の計算について
Posted: 2009年11月29日(日) 01:47
by 星映
マップ一区画の移動だったんですね!
確かに一区画の移動ならX座標とY座標は同時に変化しませんもんね。
無駄な疑問いだかせて申し訳なかったです。
Re:画像を移動させる際の計算について
Posted: 2009年12月01日(火) 18:30
by ラッコ
しばらくご返答できなくてすいませんでした。
星映 さん>>
ご回答ありがとうございます。
マップ一区画の移動でした。
詳しく明記してなくて申し訳ありません。。
皆さんのおかげで, 自分が想像していた動きを実装することができました!!
皆様本当にご教授ありがとうございました!!
これからもわからないことがあるかもしれませんが, その時はまたよろしくお願いいたします。
Re:画像を移動させる際の計算について
Posted: 2009年12月01日(火) 18:31
by ラッコ
すいません。。
解決にさせるの忘れてました。。。