うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。CHIPSIZE_Y;のような気がします。ChipPosは描画用ポリゴンの座標なのでScrollVol.xが固定ならばChipPos.xが大きいほど右側のマスを選ぶことになるはずです。マップチップにおけるテクスチャ貼り付け。5年前すみません言葉足らずでした。総スクロール量を指します。200ピクセルX方向にスクロールしたらScrollVol.xは200になります。配布したプロジェクトではEditor.h内のm_TotalScrollVolに値する変数です。それとは別に1フレームのスクロール量を格納する、m_ScrollSpeedという変数があります。この変数に値があるかぎり勝手に画面がスクロールします。上記2つの関係としては下記のとおりです。2メソッドを通してm_ScrollSpeedに1フレームの移動量が格納3m_TotalScrollvolにm_ScrollSpeedの値が加算される。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。「スクロールしたときもマスのデータに応じて正しいマップチップを描画するようになりました」というようなことが書いていないのでまだ解決してないようですね。計算式については問題ないのでしょうか?気になっているのはChipPosの部分が合っているのかということですが。原点の重なっているマスを表示するときに(-m_TotalScrollVol.x)/CHIP_SIZE_X;と書かずにabs(m_TotalScrollVol.x)/CHIP_SIZE_X;とした理由は何でしょうか。マップチップにおけるテクスチャ貼り付け。原点の重なっているマスを表示するときに(-m_TotalScrollVol.x)/CHIP_SIZE_X;と書かずにabs(m_TotalScrollVol.x)/CHIP_SIZE_X;とした理由は何でしょうか。この部分に関しましてはただ安直で、配列番号に-の値が入ることはありえないために、absで整数化したという単純な理由です。画面外に消えたポリゴンが反対側に飛ぶ処理はわかりやすくならないでしょうか?DRAW_CHIP_X_MAX*CHIP_SIZE_Xだけ動かすというようにはできませんか?この部分に関しましては、はっきり無理です。誤差の計算なども含める必要性からかなり分かりやすくしてもあのような計算になります。そもそもあの部分を完成させるのに2~3週間はかかってますからね・・・(何度も何度もトライアンドエラーしてようやく動いた。)ですがやっている事自体は理解できればなんとかなると思います。チップが移動中(m_ScrollSpeedで判定)で成り立っていますので。計算が出来上がったとしても、更新(配列番号の再計算)がまだ解けてないので解決にはまだならないでしょう。今ずっと考えて色々弄って入るのですが結局おかしい結果になるので。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。一応途中経過ですが、tatuさんのご指摘通りに式を直したプロジェクトをあげます。一応キー入力によってm_ScrollSpeedに値が入るとチップポリゴン全体がマップチップ配列の配列番号を再計算するような式を追加しました。結果が正しいかはまだ検証中です。m_MaxChipUV_Y,nx,ny);}の部分になります。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。追記ですが、現在検証分で左下原点モード時に計算がうまくいかない(Xスクロールで計算ミス)が、あったため、現在修正中です。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。5年前チップ配置をどうやったら実装できるのか考えてみました。左下原点モードについては触れていません。変更点ポリゴンをワープさせずに位置関係を維持したままポリゴン更新を行うようにした。チップ配置処理を実装クリック時のモード変更処理をコメントアウトし、チップ配置処理で置き換えた。以下はその時のメモです。スポイラーを表示なぜ、チップの配置を実装するよりも先にスクロールで悩んだのだろうかと思いましたがマップチップ描画用ポリゴンをワープさせる仕様のせいでどのマップチップ描画用ポリゴンにカーソルが重なっているかの判定が面倒になっているんですね。おかしいのかわかりにくかったのでチップ配置処理をこちらで実装して確認しようとしたら気づきました。前に書いたように原点がかさなっているマスをマップチップ描画用ポリゴン[0][0]が描画するようにしマップチップ描画用ポリゴンの位置関係を最初の形から崩さないようにしたほうがよいのではないでしょうか。(ポリゴンをワープさせる仕様とどっちがいいか他の人の意見も聞いてみたいです)テクスチャの変更で知りたかったのはSetUV()をどこで使っているのかということでした。毎フレーム描画前に全マップチップ描画ポリゴンを更新。座標、テクスチャともに変更。座標はm_TotalScrollVolをCHIP_SIZEで割った余りから求める。(m_TotalScrollVolの要素が実数型で負であることに注意)[0][0]は原点の重なるマス、[0][1]は[0][0]の1つ右のマス、...、[1][0]は[0][0]の1つ下のマス、...とそれぞれ対応したマスのデータを参照し、テクスチャを更新する。チップ配置処理カーソルの位置を引数で受け取る。カーソルの位置とスクロール量からカーソルが重なっているマスを求める。マスのデータを今選択しているチップに変える。最新版については見るのはあとになりそうです。マップチップにおけるテクスチャ貼り付け。5年前まだシッカリと目を通しては居ませんが、チップ関連の前処理をするUpdate関数を追加して、Drawメソッドがスッキリした感じですね。2チップ分先の方にワープしているように見えますが、前の自分のプログラムのようなワープ時の長ったらしい処理がありませんね・・・一体どんな計算フローなんだろう・・・というかこんなスマートな文でポリゴンの処理できたのか・・・ちょっと文章だけでいいので一度詳しく教えていただきたいです。あとワープに関しまして、確かに他の人達の意見を聞いてみたいです。自分自身、現実でプログラムについて話し合える相手が居ないので、ほぼ一人で悶絶した挙句突っ走ったプログラムになってしまいました。このトピックに真剣になってくださっている方がTatuさんしか居なさそうなので、一度チャットで聞いてい見たいと思います。一つ一つの問題を治そう治そうとしていった挙句、非常に可読性に乏しい物が出来てしまっているようです。そのため一度、チップの描画周りの処理をちゃぶ台返ししようかと思います。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。5年前>ワープしているように見える反対側にワープするような処理はしていません。するとチップ配置処理の時に全ポリゴンとの当たり判定をしなければならなさそうなのでやめましたポリゴンを[0][0],[0][1],[1][0],[1][1]だけ描画するようにして実験するとポリゴンの様子はわかると思います。[0][0]は原点の重なっているマスを描画し、ポリゴンの並びは常に[0][0],[0][1],[0][2],...[1][0],[1][1],[1][2],...[2][0],[2][1],[2][2],......となるようにしています。私が追加したEditor::ChipPolygonUpdateAll()についてx座標についてのみ書いています。y座標も考え方は同じなので省略しています。位置更新(i)スクロール量がCHIP_SIZE_Xの整数倍である場合ポリゴン[0][0]の左端はウィンドウの左端に一致する。このとき、[0][0]用のpolygon_xはCHIP_SIZE_X/2。ポリゴンの位置指定がポリゴンの中心になっているようなのでこの値になります。仮にm_TotalScrollVol.xが右にスクロールするほど増えるような変数だった場合m_TotalScrollVol.xをCHIP_SIZE_Xで割った余りだけ左にずらせばよい。剰余演算子%が実数型に対しては使えなかった気がするのでずらす量はscroll_x=-(m_TotalScrollVol.x-((int)(m_TotalScrollVol.x)/CHIP_SIZE_X)*CHIP_SIZE_X)と計算。左にずらすので先頭にマイナスがつく。scroll_x;となる。scroll_xはm_TotalScrollVol.xがCHIP_SIZE_Xの整数倍である時0となるので(i)の場合にこの式を用いても問題ない。テクスチャ更新について[0][0]が対応するマスは原点が重なるマスなのでchip_data_x=-m_TotalScrollVol.x/CHIP_SIZE_X;[0][x]が対応するマスは[0][0]からx右にあるマスなのでchip_data_x=-m_TotalScrollVol.x/CHIP_SIZE_X+x;nx,ny,SetUVについてはTOMYさんの書いているものと同じなので省略。SDKをダウンロードしないとビルドできないのが原因でしょうね。デバッグ用の文字もなぜか画面外に描画されるようになっていましたし。私がこのトピックに回答しているのは前にマップエディタを作成したことがあるからですね。マップチップにおけるテクスチャ貼り付け。5年前すみません、プロジェクトを開いて見ていないので、Tatuさんの変更で既にそのようになっているかもしれませんが。ISLeのビデオゲーム工房このブログ記事のpositive_remainderメソッドのようなオフセット計算をすれば良いのではないでしょうか。#ここ(mixC++)の日記にも書いたことがあるのですが。マップチップにおけるテクスチャ貼り付け。修正した方がいい&必要機能の見直しと処理のフロー見直しがでてきたので大規模修正しようかと思います。そのため、次の更新までだいぶ時間が掛かりそうですが、トピックは解決はまだしません。誠に勝手ですが、もう暫くお付き合い下さい。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。マップチップにおけるテクスチャ貼り付け。5年前ご無沙汰しています。(多分)エディタが完成しました。出来たと言いましても、自分のPC以外では一切動作確認(パソコンがないから出来ない)しておりませんので、人によっては起動しない等の弊害もあると思います。起動に必要な物は各自で揃えて下さい。日記の方でもファイルをあげるので、起動時どんなファイルが要求されたか(dllとか)どんな問題が起きたのかを(出来ればスクリーンショットと詳細な情報)と共に返信して頂けると製作時の参考になるので助かります。初投稿から1ヶ月以上も経ってからの完成で申し訳ありません。よろしければ、このエディタを使用して簡易的なマップチッププログラムを作っていただけると助かります。(ちゃんと自分以外の他の人がこのエディタを使用してゲームを作れるのか知りたいし、自分だけしか使えないエディタは問題あるので)深刻なものでない限りバグ抜きはしない予定です。いつまでもエディタ制作し続けて肝心のゲーム本編が作れないのも問題なので。詳細な使い方や仕様はフォルダ内のテキストファイルに書いてあります。製作時のプロジェクトも上げておきます。一応解決にチェックをしておきます。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。書籍とか経験談とか見て知識をつけるのも大事だけど。ミクプラは自由にリンクできます。