画像を移動させる際の計算について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ラッコ

画像を移動させる際の計算について

#1

投稿記事 by ラッコ » 15年前

こんばんは。

今回質問したいのは, 画像を移動させるための計算についてです。

移動させる画像は 縦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];

この計算式では, 現在移動させようとしている画像は移動させられませんし
どういう計算式にすればよいのかさっぱり・・・

ヒントだけでも教えていただければ幸いです。

kazuoni

Re:画像を移動させる際の計算について

#2

投稿記事 by kazuoni » 15年前

ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];

でとりあえず動くかと思います。

ラッコ

Re:画像を移動させる際の計算について

#3

投稿記事 by ラッコ » 15年前

ご回答ありがとうございます。

>>ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
あれ?
これって32を11で割れてないですよね?
何故綺麗の動くのですかね・・・?

kazuoni

Re:画像を移動させる際の計算について

#4

投稿記事 by kazuoni » 15年前

>これって32を11で割れてないですよね?

[[/url]は除算、[%]は剰余算です。
なので、
[0~10]/11=0
[11~21]/11=1
[22~31]/11=2
となってます。

星映

Re:画像を移動させる際の計算について

#5

投稿記事 by 星映 » 15年前

>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:画像を移動させる際の計算について

#6

投稿記事 by ラッコ » 15年前

お二人ともご回答ありがとうございます。

kazuoniさん >>
なるほど。そういう風に分けられている、ということですね!
完全に、ではないかもしれませんが何となくわかったような気がします!
ご回答ありがとうございました!


星映さん >>
ch.img = image[( ch.x % 32 + ch.y % 32 ) / 11 + ch.muki * 3];
という式では, ちゃんとした画像が描画されない・・・ということですかね・・・?

中々難しいですね・・・
星映さんが記述してくださったソースを参考に色々試してみたいと思います。
できたらここで報告させていただきますね。


ご回答ありがとうございました!

mats

Re:画像を移動させる際の計算について

#7

投稿記事 by mats » 15年前

>こんな場合はいかがでしょう?
>ch.x = 31;
>ch.y = 31;

ラッコさんの実装にもよりますが,
こちらのサイトで紹介している移動方法ならばch.xとch.yのどちらか片方は常に32の倍数になるので,
kazuoniさんの方法で大丈夫だと思われます.

ラッコ

Re:画像を移動させる際の計算について

#8

投稿記事 by ラッコ » 15年前

mats さん>>
ご回答ありがとうございます。

なるほど。
kazuoniさんのやり方で大丈夫なんですね。

教えてくれてありがとうございます!

星映

Re:画像を移動させる際の計算について

#9

投稿記事 by 星映 » 15年前

マップ一区画の移動だったんですね!

確かに一区画の移動ならX座標とY座標は同時に変化しませんもんね。
無駄な疑問いだかせて申し訳なかったです。

ラッコ

Re:画像を移動させる際の計算について

#10

投稿記事 by ラッコ » 15年前

しばらくご返答できなくてすいませんでした。

星映 さん>>
ご回答ありがとうございます。

マップ一区画の移動でした。
詳しく明記してなくて申し訳ありません。。


皆さんのおかげで, 自分が想像していた動きを実装することができました!!
皆様本当にご教授ありがとうございました!!

これからもわからないことがあるかもしれませんが, その時はまたよろしくお願いいたします。

ラッコ

Re:画像を移動させる際の計算について

#11

投稿記事 by ラッコ » 15年前

すいません。。
解決にさせるの忘れてました。。。

閉鎖

“C言語何でも質問掲示板” へ戻る