まだ寒い日が続きますね

アバター
annojyou
記事: 0
登録日時: 11年前
住所: 大阪

まだ寒い日が続きますね

投稿記事 by annojyou » 11年前

どうも、手足の冷え&腰痛、肩こりとお友達のannojyouです。電気代が勿体なくて暖房をつけるのを躊躇してしまいますが、指先の青を通り越した白さにちょっと気持ちが揺れ動いている今日この頃です。
(腰痛肩こりの原因は長時間椅子に座っていることによって血流が悪くなっているから…と、友達から言われました…今は一時間毎にストレッチをしています。)

あれからちょいちょい自分でサンプルを弄り回して遊んだり、無謀にも横スクロール作ってたりするのですが、あたり判定君がちょっとずれててなんでだろう?と悩みまくっています。
…いえ、原因はわかっているのです。明らかに私の座標への認識が甘いことです!それしかない!
(RECT君は悪くない!ちゃんとしたxyを渡せていない自分が悪い!)

ちなみに何で混乱しているのかもわかっています(いろいろ考えたけど、ここ以外は考えられなかった)

DrawRotaGraph(x, y, 1.0, 0.0, Gazou, false); //画像の処理,falseにしているのはデバッグ用

この1.0,0.0の部分で座標について混乱してしまったのではないかと予測…。あらためてDxLibリファレンスをなめるように見つめるばかりです。(といいつつニコ動に浮気しちゃう…洞窟物語面白そう…)

まあ、こんな風に悩んだりしてはいますが、やはりゲーム作りは楽しいですね!こうやって悩んでいると、画像が動くだけのソースに四苦八苦した半年前の自分に戻った気がします。
今は裏画面処理をした動きの滑らかさに感激したり…画像の表示にファイル形式とか大きさとかいちいち入力していた時の苦労がDxLibなら一行で済むのか…と思ったり…音楽を探していくのもすごく楽しかったりします。これはプログラムを組んで初めてわかる感動じゃないでしょうか?

静止画を扱っていた時とは違ってやりがいも感じますし、勉強もはかどっているように思えます。
(課題だったとはいえ、紙芝居作ってる気分だったんで全く面白いとは思えませんでした)

とりあえず作る→うまく動かない→なぜ…だ→解決法はなんだ…ここか?!ここがおかしいのか?!解☆決

この一連の動きをした時が一番成長を感じれるので、うだうだ悩みながらも好きだったりします。(マゾか…マゾなのか?!)

と、つらつらと書いていきましたが、大きくまとめると
・ストレッチ大事
・横スクロールSTG作ってる
・へっぽこなのはRECT君じゃなくて自分
・ゲーム作るの楽しい!
この4つですね~なんと脈絡のない日記なんでしょうか(笑)

まだまだ寒い日が続くと思いますが、皆さんも楽しんでプログラミングをしていきましょう!
► スポイラーを表示
最後に編集したユーザー annojyou on 2014年3月01日(土) 00:19 [ 編集 1 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: まだ寒い日が続きますね

投稿記事 by softya(ソフト屋) » 11年前

今日は、こちらは春の陽気でしたよ。
冷え性の方はつらい季節ですね。

さて、DrawRotaGraphの1.0は拡大率、0.0は回転角です。
ここで問題になる座標のズレは、DrawRotaGraphのx,yが画像中心を指し示すからです。
DrawGraphのx,yが左上なので混乱してませんか?

アバター
annojyou
記事: 0
登録日時: 11年前
住所: 大阪

Re: まだ寒い日が続きますね

投稿記事 by annojyou » 11年前

softyaさん

春の陽気でも冷え性には極寒ですからね…辛いです。

的確なお返事ありがとうございます。画像の中心を指し示す…というのは何となくわかってはいました…(自機が画面外に出ないようにしたときに気付きました)それを考えながらRECT君にちゃんとした座標を書いてあげることができなくて悩んでいます。

拡大率と回転角ですか…じゃあ1.0,0.0が混乱の原因ではなく、DrawRotaGraph自体が混乱の原因だったようですね…勉強不足でした。
一つお尋ねしたいのですが、例えば64×64の画像ではどこが中心として認識されるのかご存じですか?もし知っているなら教えていただけると嬉しいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: まだ寒い日が続きますね

投稿記事 by softya(ソフト屋) » 11年前

64×64の画像だと(32,32)だと思います。単純に画像サイスの半分の位置です。
こうしないと回転した時に真ん中を中心として回りませんので。

【補足】
拡大率とか回転角であることはリファレンスにちゃんと書かれていますよ。
「DXライブラリ置き場 リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... html#R3N10
中心座標ってことも「x , y   : グラフィックを描画する領域の中心座標」
最後に編集したユーザー softya(ソフト屋) on 2014年3月01日(土) 00:47 [ 編集 1 回目 ]

アバター
annojyou
記事: 0
登録日時: 11年前
住所: 大阪

Re: まだ寒い日が続きますね

投稿記事 by annojyou » 11年前

softyaさん

返す言葉もないです!ちょっとだけサボってました…申し訳ないです…。
リファレンスを読み返してきました。これでもう大丈夫(?)だと思います。

具体的な例をありがとうございました。さっき自分でも図に書いてみたんですが、そうしないとうまく回りそうにないのがちゃんとわかりました。本当にありがとうございます。

まだまだ自分に甘いところがあるので直していきたいですね…よく読めばわかることを訪ねてしまうなんて…反省です。これからもっと精進します!

アバター
せんちゃ
記事: 50
登録日時: 14年前

Re: まだ寒い日が続きますね

投稿記事 by せんちゃ » 11年前

座標の中心位置は任意に変更できるように設計しておくと後が楽ですよ。
一般的には
TOP_LEFT (上・左)
TOP_CENTER(上・中心)
TOP_RIGHT(上・右)
MIDDLE_LEFT(中心・左)
MIDDLE_CENTER(中心・中心)
MIDDLE_RIGHT(中心・右)
BOTTOM_LEFT(下・左)
BOTTOM_CENTER(下・中心)
BOTTOM_RIGHT(下・右)
この9つがデフォルトで指定できるようになっていると凄く便利です。
スプライト操作系のプラグインは大抵この機能を持っていますが、画像を伸ばしたりするときに役立ちます。
ちなみにDrawGraphはTOP_LEFTでDrawRotaGraphはMIDDLE_CENTERに当たります。

寒くて有名な北海道に住んでおりますが最近雪が溶けてきてあったかくなりつつあります。
最後に編集したユーザー せんちゃ on 2014年3月01日(土) 07:52 [ 編集 1 回目 ]

FUNK
記事: 25
登録日時: 12年前

Re: まだ寒い日が続きますね

投稿記事 by FUNK » 11年前

現在製作しているゲームで、
設計担当者(元々絵師様)からの座標指定が画像の中心だったのですが、
ある日ふと「コンピューターのベーシックな座標は左上が基準」みたいなことを小ネタな気持ちで言ってしまったら、
その日を境に設計書に中心座標と左上座標が入り交ざってしまって、今ではちょっと混乱することがあります。

アバター
annojyou
記事: 0
登録日時: 11年前
住所: 大阪

Re: まだ寒い日が続きますね

投稿記事 by annojyou » 11年前

せんちゃさん

楽だと言われても実装するだけの力がまだない…なんとか調べて実装できるように頑張ります!
それにしても、画像の中心位置っていろんなところで決めれるんですね…左上がデフォルトだと思っていました。(だから今回の混乱が起きたわけですが…)
中心位置を自由に決めれるようになったら面白い動きもたくさんできそう…夢が広がります!

北海道も雪が溶けてきているのですか…それだけ暖かくなっているのに、私はあまり実感することができていないですね…。やっぱりまだ寒いです。
はやくぽかぽかと暖かい陽気な春が訪れることを日々願っています。

アバター
annojyou
記事: 0
登録日時: 11年前
住所: 大阪

Re: まだ寒い日が続きますね

投稿記事 by annojyou » 11年前

FUNKさん

それは困りましたね…元絵師様は気を使ってくださったのか、はたまたこうしないといけないのか?と半信半疑で設計をしているのか…早めに統一してしまった方がいいかもしれません。
混乱していいことはありませんし、一つのものを作るのに相手との意思の疎通がうまくいっていないのは問題だと思います。早々に話し合いの場を設ける、メールで連絡を取るなどして座標をどちらかに統一してほしいという旨を伝えた方がいいと思います。
► スポイラーを表示

ISLe
記事: 2650
登録日時: 14年前

Re: まだ寒い日が続きますね

投稿記事 by ISLe » 11年前

2Dはビデオメモリのアドレス順の関係で左上がデフォルトですね。
3D(を2Dにマッピングするとき)だと数学の座標系に倣って左下がデフォルトです。

どこを基準にするかは設計の問題です。
設計をプラットフォームに合わせる必要はありません。
実装時に辻褄を合わせれば良いのです。

例えばシューティングゲームの自機の場合、当たり判定のあるピクセルを基準点にすると便利です。
イメージの大きさや形を変えたり非対称のイメージにする場合でもプログラムの変更を少なくする(ほとんど無くす)ことができます。
最後に編集したユーザー ISLe on 2014年3月02日(日) 16:41 [ 編集 1 回目 ]