検索結果 145 件

by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: 横スクロールアクションゲームでの坂道当たり判定バグ
返信数: 3
閲覧数: 1149

横スクロールアクションゲームでの坂道当たり判定バグ

お久しぶりですイマダニです。 今回は坂道の当たり判定についてです。 仕組みは以下の様な感じです。 キャラの足もとに矩形の当たり判定を作って、そこが触れてるマップチップが45度の坂道なら その坂道の始点と終点から傾きを求める。 それから坂のy座標を出し、それよりキャラの足元(上記の矩形の底辺)が低かったら 上に戻す というのを作り、まあとりあえず坂を登ることができたのですが、、、、 位置補正の仕方が悪いのか、坂を上ってる間、地震が起きたかのように画面が揺れます。 色々調整してみたのですが、もうわけがわからなくなり混乱してきました、、、、、、 なのでよければ、ソースファイルを下にうpするのでそれを...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語を一通り理解していることを証明するにはどうしたらいいでしょう?
返信数: 2
閲覧数: 1154

Re: C言語を一通り理解していることを証明するにはどうしたらいいでしょう?

やっぱり復習がてらにロベールのc++などを読んで自分の理解力を確認してみます
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語を一通り理解していることを証明するにはどうしたらいいでしょう?
返信数: 2
閲覧数: 1154

C言語を一通り理解していることを証明するにはどうしたらいいでしょう?

こんにちはお久しぶりです。イマダニです。 昨日、友人に 『プログラミングできるんでしょ?たしかC++あたり、できたよね?』 と言われました。 自分が今まで作品を作るのに用いたのはcとc++ですが、 正直なところ、どちらも『一通り理解している』または『扱えます』と胸を張って言える自信がありません。 一応、ここでは上級者になってはいますが、ぶっちゃけ質問の数が多いだけで、実際は中級者と呼べるかも怪しい所です。 そのため上記の友人の質問に対し、まともな返答を返せませんでした。 「一体自分はどれくらいc言語とc++を理解し、扱えてるのだろうか?」 今回はそんな質問です。 『お前の書いたコードを見た事も...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリでの2D用カメラ作成について
返信数: 5
閲覧数: 2557

Re: DXライブラリでの2D用カメラ作成について

>>正射角という言葉はよくわかりませんね。 正射影でした。すみません 正射影・空間の必須手法   http://www004.upp.so-net.ne.jp/s_honma/projection/projection.HTM DXライブラリのカメラは簡単に行くならば SetCameraPositionAndTarget_UpVecY がオススメです。 行列を理解する前にこちらで空間とその捉え方を鍛える必要があると思います。 早速やってみました。そのへんに落ちてるpmdをダウンロードし、それを表示して、カメラでみてます。色々新鮮で楽しいです。 ここまでの話を聞く限り、やはり2D用のカメラを作る...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリでの2D用カメラ作成について
返信数: 5
閲覧数: 2557

Re: DXライブラリでの2D用カメラ作成について

SetupCamera_Ortho, SetCameraViewMatrix, DrawBillboard3D を組み合わせれば可能だと思います。 アドバイスありがとうございます。 おかげで行列を描画に反映する事ができました。 /*ベクトルクラス*/ class Vector2D{ public: Vector2D(); Vector2D(int ax,int ay); Vector2D(double ax,double ay); void operator+=(const Vector2D& a); void operator-=(const Vector2D& a); void oper...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリでの2D用カメラ作成について
返信数: 5
閲覧数: 2557

DXライブラリでの2D用カメラ作成について

おはようございます。 ここ最近、DXライブラリとvc++2008で作ったマップエディタでステージ制作ばかりをしているイマダニです。 今回はそのマップエディタに 拡大縮小機能(マウスホイールで画面の拡大縮小ができる。saiなどのペイントソフトについているような機能) といった、まあ、下記の動画の様な感じの機能をつけようとしたのが発端です。 http://www.youtube.com/watch?v=b_6AWmiFz54 上記の機能を実現する2Dカメラを作ろうと 以下のサイトや本などを参考にしつつ、 directx メモ – 2Dカメラの作り方(directx9) http://ookuman...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: アクションゲーム作成中です。マップ作製のことで教えてほしいことがあります。
返信数: 4
閲覧数: 767

Re: アクションゲーム作成中です。マップ作製のことで教えてほしいことがあります。

まずjun3453さんはどのようにして

足場をランダムに出現

させようとしたのですか?
それの説明がないのと、貼られているコードが部分的すぎるため
jun3453さんが、なにをして、なにに対して悩んでいるのかわかりません

jun3453さんなりに考えた足場をランダムに出現を実装する方法とそのコードを貼れば
掲示板のみなさんも回答しやすいと思います。
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: バイト数について
返信数: 4
閲覧数: 527

Re: バイト数について

間違えて同じ事をしてしまいました。
>>usaoさん
そんなに気にする事でもないんですね。
アドバイスありがとうございます。

>>ISLeさん
やっぱり危ないですか。
色々なサイトをみて、学んだうえで、タスクシステムを作るつもりで、これをこのまま使う気はもとよりなかったのですが、
危険信号を出してもらえるのは助かります。まだなにが危ないかはっきり判断できる自信がないので……

お二方今回はありがとうございました。
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: バイト数について
返信数: 4
閲覧数: 527

Re: バイト数について

こんにちは、今現在タスクシステムを学習しているイマダニです。 タスクシステムの基本的なことを以下のサイトで大体理解し、 本格的なシューティングゲームを実現するタスクシステム http://codezine.jp/article/detail/297 シューティングを作ってみたのですがどうしても一つだけわからないことがあります。 まずここの解説では、 ①まずタスクシステムのためのメモリ領域を確保。 ②タスクを生成・追加したら①で確保した領域の一部を使わせる。 ③タスクを削除する時はリストから除外するだけで実際にはその分のメモリ解放は行わない。 ④それで①のメモリ領域の残量が少なくなって来たら、...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: バイト数について
返信数: 4
閲覧数: 527

バイト数について

こんにちは、今現在タスクシステムを学習しているイマダニです。 タスクシステムの基本的なことを以下のサイトで大体理解し、 本格的なシューティングゲームを実現するタスクシステム http://codezine.jp/article/detail/297 シューティングを作ってみたのですがどうしても一つだけわからないことがあります。 まずここの解説では、 ①まずタスクシステムのためのメモリ領域を確保。 ②タスクを生成・追加したら①で確保した領域の一部を使わせる。 ③タスクを削除する時はリストから除外するだけで実際にはその分のメモリ解放は行わない。 ④それで①のメモリ領域の残量が少なくなって来たら、デ...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 1953

Re: マップデータにおける動く足場などのギミックの扱い

Luaで良いと思います。Luaとゲーム本体とのインターフェイスをどう実装するかは、色々と試してみてください。 早速、上のレスで書いた本を買い、触ってみました。(付属サンプルを本の通りにダウンロードできないので買う人は注意してね) http://lua.mine.nu/w/LuaBookSupport←ここでdlできる 書き方がc言語に近くて使いやすく、台詞を書いて表示するのが楽しいです。 まだ触った程度なのと、タスクシステムの実装も考えていて、どう実装するかなかなか考えがまとまらず、 足踏みしてますが、 先にギミックの関数を作り、それを if(なんかしたら) kaiten();//回転する床...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 1953

Re: マップデータにおける動く足場などのギミックの扱い

作成したマップデータからギミックデータに変換するツールを作って 変換するというふうにすれば、トップビューのマップエディタを利用できます。 流れとしては ①お絵かきするなどしてマップ画像を作る。 ②そのマップ画像をエディタで配置。 ③エディタからその配置データ。マップデータを作る。 ④そのマップデータをギミックデータに変換するツールを作り、  変換後、ゲーム本体でそのデータを作る って感じですね。 既存のマップエディタをギミックデータも作れるように改造し、一つにまとめるより、別々に作った方が楽そうですね。 新たな要素追加すると、いろいろバグが出たりして、場合によっては一から組みなおしたり大変で...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 1953

Re: マップデータにおける動く足場などのギミックの扱い

ちゃんと作るなら調整しやすいのでスクリプトでのギミック制御を推薦します。 ちゃんと作りたいのでスクリプトでやってみたいと思います。 スクリプトに関する知識は テキストファイルに IF(プレイヤーが奪い取るを選んだ場合) Say(な、なにをするきさまらー); などといった情報を書いて、それを読み込むものなんだなー程度の知識で、 1年前、まだプログラミングを始めたての頃に、いずれやるだろうと、 以下のサイトでノベル用のスクリプト言語を作ってみただけの程度の経験だからです。 「ゲーム作りで学ぶ! 実践的C言語プログラミング」 http://karetta.jp/book-cover/game-pr...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 1953

Re: マップデータにおける動く足場などのギミックの扱い

ARPGです。アクションrpg。
ゼルダの伝説、せいけん伝説の様な感じです。

作りたいのはBastionの様なクォーターのアクションゲームですが、

ギミックを全く作った経験がない上で、いきなりクォーターはむずかしいかなと思い、ひとまずトップでやってみようといった感じです。
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 1953

マップデータにおける動く足場などのギミックの扱い

トップビューのRPGにおける地面、サイドビューのアクションにおけるブロック。 などのマップデータは以下の様なものをマップエディタで作ればOKでした。 /*1が地面で0がなんもない所*/ int MAP[MAX_SIZE]= { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2DゲームにおけるZソート
返信数: 11
閲覧数: 2765

Re: 2DゲームにおけるZソート

確かにナナメの建物だとZソートが難しいですね。 建物とか立っている物の形が必ずナナメでパースが固定なのなら計算処理で青い点を求める事が出来そうな気がします。 早速作ってみます。 もうISLeさんとsoftyaさんのお二方に、かなりヒントも貰いましたし、あとは自分一人でどうにかなりそうなので、今回はこれで解決にしたいと思います。 できればコードを書いて、皆さんの意見を聞きたいのですが、今回のZソートはかなり時間がかかりそうなのでやめておきます。実際放置気味でしたし…… できたらまた来ますので、その時はまたよろしくお願いします。 ISLeさん、softyaさん、今回もありがとうございました。
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2DゲームにおけるZソート
返信数: 11
閲覧数: 2765

Re: 2DゲームにおけるZソート

テスト、再婚、などなどいろいろイベントがあったせいで返信がかなり遅くなってしまいました。 ISLeさん、Softyaさん、長い間放置してしまい、すいません。 Z値を固定した時の問題は背の高いキャラが重なった時です。同じZ値だとどちらが先に表示されるかは保証されません。 私が気にしたのはそこでした。 内部座標のx,yと言うつもりで書いたので、キャラクタの表示座標の足元のy座標だけでソートできます。 表示座標の場合はyが大きいほど手前ですね。ややこしくしてすいません。 足下のy座標を基準にソートすればいいんですね。 キャラクターとかは以下の画像の一枚目の様に画像の縦の大きさぶん、キャラの縦の大きさ...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2DゲームにおけるZソート
返信数: 11
閲覧数: 2765

Re: 2DゲームにおけるZソート

お二方、あけましておめでとうございます。 そして今回もアドバイスありがとうございます 「描画オブジェクトを抽象化」はC言語でも構造体を使えばできるので、別にC++である必然はありません。 ソートリストは上限が分かるなら配列で、分からないならポインタリストでしょうかね。 ソートも配列ならqsortを使えばよいです。 C言語についてググると大抵C++がヒョコッと顔を出してくるんですよね。 しかもそれがなかなかに便利で扱いやすいと。今回の場合はクラスによる抽象化とstd::list、shared_ptrですね。 pushbackだけで追加、list::sortだけでソートできるの!?便利ー! と...
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2014~ ■ 今年の抱負 ■ [雑談]
返信数: 17
閲覧数: 2522

Re: ■ 新年の挨拶トピック~2014~ ■ 今年の抱負 ■ [雑談]

あけましておめでとうございます。
もしここがなかったら、とうの昔にプログラミングをやめていました。確実に
ここまで、一年間も、続けられたのは、この掲示板のおかげです。

今年の目標は『半端に終わらない事』!

去年はありがとうございます!そして今年もよろしくお願いします!
by イマダニ
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2DゲームにおけるZソート
返信数: 11
閲覧数: 2765

Re: 2DゲームにおけるZソート

抽象化、リスト構造、オブジェクト指向、これらを全く知らなかったため、1から調べていたのと、 結婚式やら葬式やらでいろいろ忙しかったので、 かーなーりおそくなってしまいました。 ISleさんすいません…… ひとまず ポンクソフト「オブジェクト指向」を活用したシューティング http://ponk.jp/cpp/dxlib/shooting2 とC++入門サイトとロベールを参考に、二つの描画オブジェクトをZソートするプログラムを作りました。 以下がそのコードになります。 #include <DxLib.h> #include <list> #include <algorithm> //ゲーム上の物...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: 2DゲームにおけるZソート
返信数: 11
閲覧数: 2765

2DゲームにおけるZソート

今回は2DゲームにおけるZソートについて質問しに来ました。 ひとまずやっつけで組んだのがこちら /*main.h*/ #ifndef DEF_MAIN_H #define DEF_MAIN_H #define OBJECT_MAX 100 typedef struct{ int CZ; }ZSORT;/*Zソート構造体*/ extern ZSORT g_ZSORT[OBJECT_MAX];/*配列で*/ #endif /*player.cpp*/ void PDRAW(PLAY p){ /*影の描画*/ DrawRotaGraph(sqx+32 - p.camerax,sqy+32 -p.ca...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

マップエディターができましたー! みなさんのおかげでマップエディタができましたー! まだこれとか参考にしつつ 「背景とキャラクターの描画について」 http://dixq.net/forum/viewtopic.php?t=14257&p=113507 Zソートでうろうろしていて、まだ完全に解決ではないのですが、 ひとまずひと段落しましたのと、トピックがもう重いのでひとまず解決にします。 完成したエディターはaxfcに貼っときます。 http://www1.axfc.net/u/3103407.zip パスワードは「johnson」です。 よかったら感想、またはこうしたほうがいいなどのアドバイ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

DXライブラリとWin32Apiを合わせたうえでのドラッグドロップは手間がかなりかかりそうなので諦めます。 質問しといてすみません…… 今日一日チャレンジしてみましたが心が折れました……(´Д`;)ムリムリ 早く家の描画がやりたいこともあり、そちらを先にやることにしました というわけで 建物等の画像を分割する必要はありません。 地面のマップチップを描画するのと同じタイミングで、地面の座標を基準に建物の画像の高さ分上にズラした座標から建物の画像を描画するだけです。 マップチップ自体の大きさが変化すると考えていただくのが良いと思います。 このISLeさんのアドバイスをもとに家の描画に挑戦しました。...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

すみません返信が遅れました。 そりゃ当然でしょう。fclose(fp)した後なんですから。 fclose(fp)の手前でブレークしてみてください。不適切なPtrとはなっていないはずです。 確認したところ、なってなかったです。なんという凡ミス。 2番目のfscanfも怪しいと感じました。 最初の修正で動かなければ、 コード[C++]: 全て選択 1 fscanf("%d%*c",&FileData"); としてみてください。 そこが原因だったようです。みけCATさんのアドバイス通り、 修正したところちゃんとファイルを読み込みました。 数値の後にあるカンマが原因という認識でいいんですよね? DXラ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

File_ReadOpenとfopenの違いがよくわかりません。 今まではこのようなテキストファイルを 30,30/*配列の要素数*/ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

星の部分が変えた部分です。 #include <DxLib.h> #include "main.h" #include "Key.h" //トップビューのチップサイズ #define VTOP_PARTS_SIZEX 64 #define VTOP_PARTS_SIZEY 64 //クォータビューーのチップサイズ #define MAP_PARTS_HSIZEX 32 #define MAP_PARTS_HSIZEY 16//ほんとは20 //マップのオフセット #define MAP_VIEW_OFFSET 32 //マップ二次元配列の配列の要素数 #define CHIP_NUMBER_Y...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

スクロールができてしまった…

とりあえずスマホANDワイファイで報告だけ
コードは明日貼ります
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

あと式を作り直しです。もう一度、チャレンジ! うげー!となりますが、がんばります。 作り直す式は以下のものでいいんですよね? あの連立方程式で出したあの式です。 wnum=(imgx/MAP_PARTS_HSIZEX+imgy/MAP_PARTS_HSIZEY)/2.0; hnum=(imgx/MAP_PARTS_HSIZEX-imgy/MAP_PARTS_HSIZEY)/-2.0; とりあえず、図を書いてみましょう! 図を書いてみました。画像として貼ります。 やはり実際の配列の位置から画面の半分描画位置がずれてるようです。 画像は白い線が実際の配列で地面が[0][0]を押したときの描画位置...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

ダウンロードしてみました。 エディタとしては、こんな感じでOKだと思います。 お忙しい中、確認ありがとうございます。 プログラミングを詳しい人にOKをもらえると安心します。 ※ 範囲とか今の位置とかが分かりづらいかとは思いましたが今後追加されるんだと思います。パーツのカーソルは表示した方が良いような。 というわけで、カーソルはまだですがグリッド線を表示してみました。 0のところに線だけの透明な地面の画像を表示するというやり方です。 ついでに将来のために二次元配列から一次元配列に変えました。 二次元配列を一次元として扱う [y*width+x] という方法は 「ゲームプログラマになる前に覚えて...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

マップ描画部分のオフセットを調整したらずれが無くなりました。 星の部分です。 #include <DxLib.h> #include "main.h" //トップビューのチップサイズ #define VTOP_PARTS_SIZEX 64 #define VTOP_PARTS_SIZEY 64 //クォータビューーのチップサイズ #define MAP_PARTS_HSIZEX 32 #define MAP_PARTS_HSIZEY 16//ほんとは20 //マップのオフセット #define MAP_VIEW_OFFSET 32 //マップ二次元配列の配列の要素数 #define CHIP_...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

これは? 今現在試行錯誤中です 式は除算を含むので、型は自ずから何でなければなりませんか? intだと少数点以下が切り捨てられちゃうので、ひとまずdoubleに変えたりしたのですが、そこからどう粗を探すのかがわからず、そこで止まっています。 //チップ画像格納変数、マウスポインタの座標変数、マウスとホイール用の変数 int chip_img1; int Mouse,Wheel; int mx,my; //クリックした座標の記録用変数 double imgx=0;/*doubleに変更*/ double imgy=0; //クリックされた配列を記録する変数 double hnum=0; dou...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

チップ一個分右にずれてるようです。
詳細は画像に
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

トップビューチップの左上の座標のような
描画位置的な問題でしょうか?オフセット?というやつです。

クォーターというか、今のぼくのコードだと
それが左端角になってしまってるので左端角をクリックしないと表示できないということなんですかね?

もしそうだとしてオフセットなんですか?
なんとなくどういったものか感じられるんですけど、事細かに説明しろと言われると

「描画の初期位置みたいなのじゃね?」

としか言えないのでよかったら教えてください。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

できたああああああああああああああ!!! できましたよおおおおおおおおおおお!!!! /*まず以下の式のwとhを*/ A=w(x-y) B=h(x+y) /*左に持ってきます*/ A/w=x-y B/h=x+y /*そしてそれを連立方程式で計算*/ x-y=A/w +)x+y=B/h -------------- 2x=A/w+B/h x=(A/w+B/h)/2  /*まずは x から求める*/ /*そして次は y を求める*/ x-y=A/w -)x+y=B/h -------------- -2y=A/w-B/h y=(A/w-B/h)/-2 よって答えは x=(A/w+B/h)/2 y=...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

補正値入れてたらそりゃあわないわ
ということで補正値抜いてもう一度計算してみました。

配列の要素数 [0][1]
そこのクォーター座標 (32,20)
表示されるチップの幅と高さw=32,h=20

として、まず
y=(-A+wx)/w
に代入

0=(-32+32*1)/32

0=0/32

0=0

そして
x=(A+wy)/w
に代入

1=(32+32*0)/32

1=(32+0)/32

1=1

ということで

x = (A+wy)/w = (B-hy)/h

y = (-A+wx)/w = (B-hx)/h

これが正解だと思います。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

[quote=へにっくす]逆算の意味、分かってる?[/quote]

わ か っ て な か っ た

わかってなかったです……

グーグルで調べたら虫食い算が出てきて、
これがぎゃくさん?となった自分の頭の悪さを自覚したので

http://gunsyu3.hatenadiary.jp/entry/20100501/1272676155

ここに書いてある連立方程式で逆算という意味を
理解するためちょっと勉強してきます
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

[0][0] (64,20) w=32,h=20
[y][x] (A , B)

これで検算すると

y=-A+wx/w

0=-64+32*0/32

0=-64+0/32

0=-64/32

0=-2

……おかしいですね

A=w(x-y)を方程式で
x=????に変えるっていうの考えでいいんですよね?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

> 上記の式を方程式で逆算すればいいのですか? そう言うことです。 ということで、 X=w(x-y)とY=h(x+y)のXYを区別がつくようABに変えて A=w(x-y) B=h(x+y) ← こんな感じ 方程式で逆算してみました。 まずは A=w(x-y) から x と y を求めてみます。 ①A=w(x-y) ↓ ②A=wx-wy ↓ ③wx=A+wy ↓ ④x=A+wy/w  xがわかったので次はyです ②A=wx-wy ↓ ③wy=-A+wx ↓ ④y=-A+wx/w 次はB=h(x+y)から求めてみます。 ①B=h(x+y) ②B=hx+hy ③hx=B-hy ④x=B-hy/h ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

配列要素の、yとxが逆になってたので修正。 #include "DxLib.h" #include <stdio.h> //トップビューのチップサイズ #define VTOP_PARTS_SIZEX 64 #define VTOP_PARTS_SIZEY 64 //クォータビューーのチップサイズ #define MAP_PARTS_HSIZEX 32 #define MAP_PARTS_HSIZEY 16//ほんとは20 //マップのオフセット #define MAP_VIEW_OFFSET 32 //マップ二次元配列の配列の要素数 #define CHIP_NUMBER_Y 100 #de...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

マップエディタを作ろうとプログラム撃っていたら遅くなりました >>こういうものを本格的に作るには、マップエディタを使います。 やはりそうなりますよね。 ISLeさんのアドバイスとまとめると理想としては 1.地面マップチップの配列データ 2.その上に置かれる建物などのオブジェクトの座標 3.オブジェクトの当たり判定 上記三つの情報が書き込まれたデータを吐き出すエディタを作るという事でいいんでしょうか? 二次元配列を使えばマップを表示できるぜ!程度の知識しか持ってない自分には そのデータをどういう形にするのか、おぼろげに推測しかできないので、 ひとまず一番簡単そうな 地面マップチップの配列情報を吐...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

Re: マップの木や建物などの描画方法について

soft屋さん、ISLeさん返信ありがとうございます。 いまどきのPCの性能だとキャラクタと同様にスプライト的な扱いで移動しない物として置けば良いと思います。 当たり判定も敵キャラクタ同様に行います。ダメージがないだけって感じでしょうか。 極端に言うと家や木の画像を読み込み、 それをDrawGraphなどで表示するということいいのでしょうか? それで描画だけやってみたのですが、楽ちんでした。 ただこの方法だと、ぼくが試した方法が極端なのもありますが ステージが変わるごとにマップ素材の配置と差し替えのためにコードを書くのは手間が大変そうです。 描画自体は地面と同じに行うほうが効率は良いのではない...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 7146

マップの木や建物などの描画方法について

こんにちは。 今回はマップの木や建物などの描画方法について質問しに来ました。 今、DXライブラリでクォータービューのアクションゲームを作っています。 FFTのような、指定した場所に規則的にコマのように動くのではなく、 ぐるぐる走りまわり、でんぐり返しもジャンプもするアクションゲームです。 pcゲームのbastionやアドバンス版のキングダムハーツの様なゲームです。 現段階ではまだ四角い菱形系のチップをただ並べただけの殺風景なマップを 方向キーを押すとキャラが走り回り、SHIFTを押すとでんぐり返し、SPACEを押すとジャンプをするというものです。 マップは以下のように書かれたテキストファイルを...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

p.walkflagが偽の時はp.mukiに代入が行われず、初期状態ではmemsetがあるのでp.muki==0となるはずです。 この状態でplayer_muki_table[p.muki-1][2]にアクセスしようとすると、 範囲外である[-1][2]にアクセスすることになり、アクセス違反になる可能性があります。 なるほどそういうことだったんですね。 何度もアドバイスありがとうございます。 //構造体要素の初期化 memset(&p,0,sizeof(PLAY)); p.muki=4; みけCATさんの言うようにmemsetの後に、p.mukiを初期化した所、 全てが正常に動きました。 皆...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

イマダニさんに申し訳ない気がするので再投稿します。 再投稿感謝します!本当にありがとうございます! どうしてもわからない部分があったので質問させていただきます! まずは実行結果を報告します。コードは以下のように書き換えました。 #include"DxLib.h" #include"Key.h" #include <math.h> //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 10 #define CHIP_NUMBER_Y 8 #define MAP_P...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

typedef struct{ bool walkflag,jumpflag;//歩きフラグ int img,cnt,jcnt,muki[4];//画像、カウンタ、向き int old_muki[4];/*向き保存変数*/ double x,y,speed,naname,oldx,oldy;//座標 }PLAY; player構造体に保存変数を作り、 const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1};//x移動量、これ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1};//x移動量、これに速度をかける const int dy[4] = {1,-1,1,-1};//y移動量 const int imgid[4] = {10,19,1,28};//走ってる画像 const int imgid2[4] = {9,18,0,27};//立ってる画像 p.walkflag=false;//歩きフラグをfalseに初期化 for(int i=0...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

for文に入る前にp.walkflag=false;と初期化して、forのなかではfalseを代入するのをやめてみてください。 この構造だと、フラグを立てるfor文と動くためのfor文を分けるべきだと思います。 以下のような形でいいんでしょうか? const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1};//x移動量、これに速度をかける const int dy[4] = {1,-1,1,-1};//y移動量 const in...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

といってもforでまわしているせいか、最初ぼくが書いたswitch文のウンコードでも walkflag、歩きフラグを交えるとうまくいかないんですよね。 const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1}; const int dy[4] = {1,-1,1,-1}; const int imgid[4] = {10,19,1,28}; const int imgid2[4] = {9,18,0,27};//立ってる画像 f...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

>>usao
すいません勘違いしてました!
半端に変えてしまったせいで違う動作になってますフラグが入ってないし……
usaoさんの言うように動作は同じで、コードを綺麗にしたいです

>>ISleさん
usaoさんの突っ込みで、動作同じで、綺麗にしなきゃと思った所、
それに当たるコードの書き込みありがとうございます!
テーブルという概念を扱ったことのない自分にはかなり新鮮で勉強になりました。
それで昨日コードを書き込み、結果報告と質問しようかなと今来たのですけれど、
来てみたらなんと撤回されておる……
少し残念ですが、質問はやめときますね。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

Re: ifまみれの移動制御をなんとかしたい

>>みけCATさん アドバイスありがとうございます! これは確かにウンコードですね…… こんなの書いてドヤガオしていた自分が恥ずかしいです 早速、書きなおしました。特に問題なく動きました。 #include"DxLib.h" #include"Key.h" #include <math.h> //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 10 #define CHIP_NUMBER_Y 8 #define MAP_PARTS_HSIZEX 32 /*マップ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 4287

ifまみれの移動制御をなんとかしたい

今回はif文だらけで汚らしいコードをどうにかしたく、質問しに来ました。 そのコードは以下の質問で クォーターの当たり判定とスクロール http://dixq.net/forum/viewtopic.php?t=12822 質問に回答してくれたソフト屋さんにif文だらけで汚いと言われたもので、 以下がそのコードになります。 if( checkkey(KEY_INPUT_LEFT)>0 && checkkey(KEY_INPUT_UP)>0 ){//押されたキーによって p.muki=5; //向きを指定。これは左上 p.walkflag=true;//歩きフラグをたてる }else if( ch...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 2428

Re: C++での分割コンパイル

解決です。
usaoさん、みけcatさんありがとうございました。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 2428

Re: C++での分割コンパイル

すいません。質問が意味不明でした…… usaoさんの言うとおり、privateとかのメンバにアクセスしたいほんとそれだけです。 ai.h #ifndef DEF_AI_H #define DEF_AI_H class AI{ private: int img; double x,y,oldx,oldy; private: void Move(); void Draw(); public: AI(); void All(); }; #endif map.h #ifndef DEF_MAP_H #define DEF_MAP_H class MAP{ private: int MapData[10...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 2428

C++での分割コンパイル

いきなり題名とそれますが、自分の状況を知ってもらいたいので。 現在C++でAI制作を目標に勉強しています。 環境はDxライブラリとvc++2008です。 まずどんなAIかというと //0が何も表示しない場所,1が地面,2がゴール int MapData[20][40] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: androidプロジェクトの実行時のエラーについて
返信数: 6
閲覧数: 799

Re: androidプロジェクトの実行時のエラーについて

nonさんが貼ってくれたサイト http://denshikousaku.net/the-process-android-process-acore-has-stopped に乗っていたwipe user data 日本語だとユーザ・データを消去する一度やったらそれ以降エラーを出さなくなりました。 上記サイトでは原因を 「エラーメッセージの原因は、過去に自分がインストールしたテストアプリのどれかが悪さしているっぽいです。」 と解説しております。 もうちょっとググるべきでしたね。すいませんでした…… そんなわけでみけCATさんには申し訳ないのですが、エラー当時のLogCatを確認できません。 >...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: androidプロジェクトの実行時のエラーについて
返信数: 6
閲覧数: 799

Re: androidプロジェクトの実行時のエラーについて

Axfcにあっぷろーどしました!
以下がURLになります。

http://www1.axfc.net/uploader/so/2994879.zip

ダウンロードキーは「johnson」です。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: androidプロジェクトの実行時のエラーについて
返信数: 6
閲覧数: 799

Re: androidプロジェクトの実行時のエラーについて

どこにアップロードすればいいですか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: androidプロジェクトの実行時のエラーについて
返信数: 6
閲覧数: 799

androidプロジェクトの実行時のエラーについて

Androidプログラミングの館 1.2 "Hello World" を表示させよう を見ながらプロジェクトを実行してみました。 すると、HelloWorldは表示されたのですが、少しするとその上に以下のようなエラーメッセージが現れました。 Sorry! The process andrid.process. acore has stopped. unexpectedly.Please try again. これは一体何なんでしょうか? DXライブラリしかいじってこなかった僕にとっては このような実行画面にでてくるエラーは初めてで、 正直、どうしたらいいのかわかりません。 いったいなにを間違え...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: Andoroidアプリ開発環境について!
返信数: 2
閲覧数: 739

Re: Andoroidアプリ開発環境について!

Android アプリ開発環境構築方法 (2013年4月版)
http://asatetsumemo.seesaa.net/article/354223040.html

Android仮想デバイス(AVD)の作成とエミュレータの起動
http://www.javadrive.jp/android/emulator/

上記のサイトを見るといいですよ。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルでのインクルードについて
返信数: 8
閲覧数: 1036

Re: ヘッダファイルでのインクルードについて

>>DXライブラリはC言語の文法の範囲で使うとしてもC++としてコンパイルする必要があります。※ DxLib.hは.cにするとコンパイルエラーになります。 DXライブラリがC++でないと動かないなんて初めて知りました…… これからはそれを理解したうえで、 >>まずくはないですが、Visual C++とあるように拡張子が.cppですと、C++言語として通常コンパイルします。 >>あと、typedef struct xxxx;せずにstruct xxxx;でxxxx 変数名;が使えるのはC++の文法の範囲です。 一応C++コンパイルしているのでコンパイルが通りますが自覚して使ってくださいね。 これ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルでのインクルードについて
返信数: 8
閲覧数: 1036

Re: ヘッダファイルでのインクルードについて

コンパイラはvisualC++を使っていて、それのcppファイルにCのコードを書き込んでいます。
特に問題が無かったので、今までcppファイルに書いてましたが、これってまずいんでしょうか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルでのインクルードについて
返信数: 8
閲覧数: 1036

Re: ヘッダファイルでのインクルードについて

>>YuOさん 解答ありがとうございます! YUOさんの方法でうまく行きました。 #ifndef DEF_PLAYER_H #define DEF_PLAYER_H #include "mouse.h" enum Playerstate_t{ PLAYER_STATE_DEFAULT, //通常 PLAYER_STATE_ATTACK, //攻撃 PLAYER_STATE_JUMP, //ジャンプ PLAYER_STATE_DAMAGE, //ダメージ PLAYER_STATE_DIE, }; struct PLAYER{ Playerstate_t PlayerState; int y,x;...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルでのインクルードについて
返信数: 8
閲覧数: 1036

ヘッダファイルでのインクルードについて

まずプレイヤーの構造体が定義されてるplayer.hと 武器の構造体が定義されてるwapon.hのふたつのヘッダファイルがあります。 //player.h #ifndef DEF_PLAYER_H #define DEF_PLAYER_H #include "wapon.h" typedef struct{ int py,px; int oldy,oldx; bool walkflag; . . . }PLAYER; void player_ini(PLAYER *p); void player_control(PLAYER *p); void player_attack(PLAYER *p,...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: 武器や乗り物の画像について
返信数: 4
閲覧数: 560

Re: 武器や乗り物の画像について

すいません解決ボタンを押し忘れました
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: 武器や乗り物の画像について
返信数: 4
閲覧数: 560

Re: 武器や乗り物の画像について

やはりそうですよね。
素材は分けて用意することにします。
お二方、アドバイスありがとうございました。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: 武器や乗り物の画像について
返信数: 4
閲覧数: 560

武器や乗り物の画像について

最近、武器や乗り物を使うキャラの素材を黙々と書いております。
そこで絵心の無いプログラマさんに質問です。
キャラが道具を扱う画像が必要になった時、どのように画像を用意してほしいですか?
ただ単に車の乗ってるキャラの画像一枚渡されればそれで済むのでしょうか?
それとも乗ってるキャラ、乗られてる車の二枚を用意してほしいのでしょうか?
アドバイス願います。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

プライベートの関係で、少し放置気味になってしまいました。すいません……
スクロールと当たり判定が、汚いとはいえ実装できましたし、ひとまずこれで解決とします。
softyaさん、図を用いたわかりやすい説明、ありがとうございます!

本当に助かりました。マジで。

ちょっと忙しくて手つかずなんですが、softyaさんのヒントをもとに改良を行ってみます。
それでなにかあったり、また別の疑問があったらまたここを利用させていただきます。
今回もありがとうございました!
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

>>自分でテストして問題は無かったのでしょうか? はい問題ないです。 //カメラ座標 /*カメラのx座標 = プレイヤー座標(クォーター変化)- 画面の半分*/ p.camera_x = ((MAP_VIEW_OFFSET+MAP_PARTS_HSIZEX) + (p.x-p.y) * MAP_PARTS_HSIZEX/VTOP_PARTS_SIZEX /*- CHAR_PARTS_SIZEX/2*/) - SCREEN_WIDTH/2; p.camera_y = ((p.x+p.y)*MAP_PARTS_HSIZEY/VTOP_PARTS_SIZEY/* - CHAR_PARTS_SIZEY...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

スクロールできました! #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640 /*画面の幅*/ #define SCREEN_HEIGHT 480 /*画面の高さ*/ //チップの枚数 #define CHIP_NUMBER_X 30 /*横の数*/ #define CHIP_NUMBER_Y 24 /*縦の数*/ #define MAP_PARTS_HSIZEX 32 /*マップパーツの横サイズ(半分)*/ #define MAP_PARTS_HSIZEY 16 /*マップパーツの縦サイズ(半分)*/ #def...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

ああ、すいません!追記に気づいてませんでした。 //オフセット定数 #define MAP_VIEW_OFFSET 32 //マップ描画 for(int y=0;y<CHIP_NUMBER_Y;y++){ for(int x=0;x<CHIP_NUMBER_X;x++){ if(MapData[y][x]==1){    DrawGraph(MAP_VIEW_OFFSET+MAP_PARTS_HSIZEX*(x-y), MAP_PARTS_HSIZEY*(x+y), map,TRUE); } } } //プレイヤー描画 DrawGraph((MAP_VIEW_OFFSET+MAP_PARTS_...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

MAP_VIEW_OFFSETってなんですか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

定数ってやっぱ便利ですね。変えてみました。 #define MAP_PARTS_HSIZEX 32 /*マップパーツの横サイズ(半分)*/ #define MAP_PARTS_HSIZEY 17 /*マップパーツの縦サイズ(半分)*/ #define VTOP_PARTS_SIZEX 64 /*仮想トップビューのマップパーツの横サイズ*/ #define VTOP_PARTS_SIZEY 64 /*仮想トップビューのマップパーツの縦サイズ*/ //マップ描画 for(int y=0;y<CHIP_NUMBER_Y;y++){ for(int x=0;x<CHIP_NUMBER_X;x++){ ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

そっかintのせいだったんですね。 >>あと20/64って0.3125では? //マップ描画 for(int y=0;y<CHIP_NUMBER_Y;y++){ for(int x=0;x<CHIP_NUMBER_X;x++){ if(MapData[y][x]==1){ DrawGraph(32*(x-y), 17*(x+y), map,TRUE); } } マップ描画が17だったので合わせなきゃまずいかなと思い 17/64としてました。 >>移動前の座標を覚えておいて、当たり判定を移動後に行います。あたったら移動前の座標に戻します。 oldx,oldyという二つの変数を用意し、それに前もっ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

printfでのデバッグをしたところ各変数には問題が無かったため、 プレイヤー描画の計算の部分に問題があると思い、 以下のように変えたところ DrawGraph(32/64*(p.x-p.y) , 20/64*(p.x+p.y) , player[p.img] , TRUE); ↓ DrawGraph(0.5*(p.x-p.y) , 0.27*(p.x+p.y) , player[p.img] , TRUE); キャラがちゃんと動きました。 以下がコードの全体になります。 #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WID...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

移動の部分がくっそ汚いですけど、こんな感じで書いてみたところ #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 20 #define CHIP_NUMBER_Y 16 //プレイヤー構造体 typedef struct{ bool walkflag;//歩きフラグ int img,cnt,muki;//画像、カウンタ、向き int x,y;//座標 }PLAY; //マップデータ int Ma...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

aが32ならこれで大丈夫ですね。

drawx=(a+32)+32/64(topx-topy)

drawy=20/64(topx+topy)
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

できました!

drawx=(a+64)+32/64(topx-topy)

drawy=20/64(topx+topy)

この式で以下のものを計算すると
[0][0] (32,32) (64,20)

drawx = (a+64)+32/64(32-32) = (a+64)+0 = a+64

drawy = 20/64(32+32) = 20/64(64) = 20

drawxの(a+64)は(a+32)だとどうしても32たらない座標が出てしまったので64にしました
どうでしょうか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

トップビューの座標を(topx,topy) クォーターの座標を(quotax,quotay) として マップ トップ クォータ (0,0) (32,32) (64,20) (1,0) (96,32) (96,40) (2,0) (160,32) (128,60) (0,1) (32,96) (32,40) (1,1) (96,96) (64,60) (2,1) (160,96) (96,80) quotaxはtopxが64増えると32づつ増える、topyが64増えると32づつ減る quotayはtopxが64増えると20づつ増える、topyが64増えると20づつ増える こんな感じですかといいた...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

マップ配列 クォータマップ中央座標 変換前マップ中央座標

[0][0] (64,20) (32,32)

[0][1] (96,40) (96,32)

[0][2] (128,60) (160,32)

[1][0] (32,40) (32,96)

[1][1] (64,60) (96,96)

[1][2] (96,80) (160,96)

どうですか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

なるほどそういうことだったのか
トップとクォーターごちゃまぜにしてました

埋めてみよということでこんな感じに埋めてみました
どうでしょう?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

画像うまくはれてるかな?

最初、p00が配列要素の左上端っこにあったら、(64,32)だとおもったんですが、

画像のように考えれば(32,32)なのかなと
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

中心座標は

(32,0)かな?

(64,32)は[0][1]の中心座標です。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

すいません、少し勘違いしてました

[0][0]
(64,32)
(32,32)

です。

>>書いてて心配になって来ましたが、トップビュー表示でキャラクターの移動とかプログラムは理解できているのでしょうか?
これが分かっていないと意味が無いのですが。

ゲームプログラミングの館の一区間歩かせる、行けないところを作るなどのことですか?
そこなら一応理解はしてるつもりです。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

[0][0] (999,999) (64,32)

ですか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

>>で、マップパーツの中心にPleyerキャラクタが立っていると仮定した場合の[0][0]ブロックのPleyerキャラクタの座標は(999,999)であると書 きだしてみてください。
それとクォータビューではないDrawGraph(p.x,p.y,player[p.img],TRUE);の座標として扱った場合の座標もその横に書き出します。

(999,999) (64,20)

こういった感じですか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

すいません、返信が遅くなりました。
ひとまず方眼用紙にあの図を書いてみましたが、
そこからどうしたらいいかわかりません……
前はp01を求めよという課題があったため、なにをどうすればいいのか大体把握できたのですが
今回はこの図をどう利用するかが見当がつきません。
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

プレイヤー座標をクォーターに?
マップは配列の要素数を足したり引いたりして変えましたが、
配列要素の無いプレイヤー座標をどうやって変えるんです?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

Re: クォーターの当たり判定とスクロール

#include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 20 #define CHIP_NUMBER_Y 16 //プレイヤー構造体 typedef struct{ bool walkflag;//歩きフラグ int img,cnt,muki;//画像、カウンタ、向き int x,y;//座標 }PLAY; //マップデータ int MapData[ CHIP_NUMBER_Y ][ CHIP_N...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 3957

クォーターの当たり判定とスクロール

ロックマンエグゼのマップ移動。キングダムハーツCOMのマップ移動。BASTIONの移動。 これらの”クォーター視点のステージをキャラが縦横無尽に動き回る” それの当たり判定とスクロール方法ってどうなっているんだろう? 今回はそんな質問をしに来ました。 ついこの前、クォーターでの描画方法をここで教えてもらい、その後、教えてもらった方法で描画したマップの上をキャラが走るようにしてみました。 これがそのプログラムです。 #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

やっぱり質問してよかったです。 ここまで丁寧に教えてもらえるなんて本当に感謝です。 ジャンプ、マップエディタの時といいソフト屋さんにはお世話になってばかりです。 クォーターの説明を見てると数式ばかりでてきて、 ここの過去のクォーター関連の質問も難しい数学の知識を使ったうえでの説明ばかりというか、 質問者がすでにベクトルを使ったうえで質問をしていたので、 ああ、やっぱり数学わかってないとだめだな。 数学Bの白チャート一冊終えるまでクォーターはあきらめよう と思ってたんです。 でも一応、だめもとで質問してみるか、と今回、質問したら まさかこんなにもわかりやすい答えが返ってくるとは……思ってもみなか...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

drawx=32(-mapx+mapy)
drawy=20(mapx+mapy)

こうですね!
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

drawx は mapxが1増えると 32 づつ減少し、mapyが1増えると 32 づつ増加します。
drawy は mapxが1増えると 20 づつ増加し、mapyが1増えると 20 づつ増加します。

(1)32

(2)32

(3)20

(4)20

こうですか?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

p02(a+64,40), p10(a-32,20), p11(a,40), p12(a+32,60)

です!

すげー!わかりやすい!
こうなってるんですね!
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

あ、これよく見たら菱形の半分

p00からp01のy方向の距離がちょうど菱形の縦幅の半分、40の半分、20です。
それでp00からp01のx方向距離が、ちょうど菱形の横幅の半分、64の半分、32です。

えっとだからp01の座標は

p01(a+32,20)

です!
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

順序が逆でしたね。本来の目的を忘れていた。
やり直します
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

p01(x,y)として、公式に当てはめると

x=32(1-0)
y=20(1+0)

こうなって、けいさんすると
p01の座標は(32,20)。

ほかの座標も同じように計算すると、

p02(64,40)、p10(-32,20)、p11(0,40)、p12(32,60) となる。

これであってます?
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

ピクセルの座標ではなく、配列の添字を代入してもおかしな数字になりますね。 カッコ内の個数のそれぞれにチップの幅をかけるのは間違いというのはなんとなくわかりました。 トップビューなどでやっていた 横の個数×チップの横幅 この計算式は、配列要素をピクセルの座標へ変えるトップビュー版の座標変換の公式?であって、 このクォータの座標変換の公式の CHIP_WIDTH(X-Y)のX,Yの部分を求めるものではない。そもそも別物であるということですよね? ほんとなんとなくですが、自分の間違いに気づけました。 ただなぜクォーターだと個数同士を足したり引いたりするのかがまだわかりません。 それにチップの幅の半分...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

Idraさんが説明してくれたベクトルのやり方は、 ベクトルのベの字も知らないぼくがそれをしっかり学んでからということで 今はソフト屋さんの穴埋め問題を解いて、クォーターの理解を深めたいと思います。 Idraさんわざわざ教えてくださったのにすみません…… で、この穴埋め問題を解く前に一つお尋ねしたいことがあります。 >>”ピクセルの座標系”と”マップチップ配列の座標系”が混同されています。 >>”クォータビューの座標系”での点を”スクリーンの座標系”を使って表現すると考えます。 座標系?一体なんなんだそれはぁーっ!? 初耳すぎて驚きを隠せません。ゲームに使う座標には種類があるということですか? ...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

64×40のチップを普通に並べて表示すると、 //マップデータ int MapData[ MAP_HEIGHT ][ MAP_WIDTH ] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0...
by イマダニ
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータービューについて
返信数: 30
閲覧数: 4170

Re: クォータービューについて

>>softya(ソフト屋)さん
うわ、ブラジル便利。
とてもわかりやすい説明ありがとうございます。
早速、計算してみます。

>>Idraさん
アドバイス感謝です。
文系だったので数学Bまではやってないですね……
ベクトルはさっぱりです!

なので、数学Bの白チャートと4stepという問題集があるので、それで勉強してみます。
これだけで十分理解できますかね?
もし、それだけじゃ足りない、チャートなんかよりいい本あるよ、などなど何かあったら
アドバイスお願いします。

詳細検索ページへ移動する