検索結果 145 件

by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

ISLeさん。何度も何度も詳しい説明ありがとうございます。 説明された以上、ちゃんと理解するのが礼儀だと思うので、もう一度、理解できてるかの確認お願いします。 No.29でイマダニさんが書いている「立ち状態」。 文字通り「状態」です。 それはキャラの振る舞いのひとつ。 振る舞い:立ち状態 であれば、「立ち状態」になる外部要因は何か。 先回りしておくと「地面に触れる」というのは要因であってアクションではありません。 外部要因:地面に触れている。入力がない。 それを整理して、アクションをひとつだけ定義してください。 振る舞い:立ち状態 外部要因:地面に触れている。入力がない。 ↓ アクション:立つ...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

一応現状のソースコードを貼っていただきたいです。時間が作れましたら動作の確認をします。
3Dさん。忙しい中、ありがとうございます。
周りにプログラマーの友人もいないので見ていただけるのはほんとうに助かります。
ちなみに、イマダニさん自身はデバッグしましたか?デバッグを行ったなら、その結果も教えてくだい。
今はISLeさんやusaoさんのアドバイスをもとにコードをガンガン書きなおしているので、いったんファイル読み込みのほうは後回しにしている状態です。
それが終わり次第デバッグを行い、結果報告の際に、出来上がったコードをzipファイル形式で貼ろうと思います。
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

ゲームキャラでそんな実装したらプログラマは死ねます。
使いどころとしてはフレームワークの一部とかですかね。
ひえっ
使いどころをよく考えて使います……
解説ありがとうございます
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

基本的に、命令と状態のインデックスでテーブルを参照し、そこから新しい状態を持ってくるだけです。 大体の考え方が分かってきました。 テーブルの概念は、昔ISLeさんにクォーターの八方向の移動を作る際に教わったので大体わかります。 あの時はありがとうございました。 void Player::InputStateManage(){ const int keyinput_muki_table[] = { Neutral, // nothing Left, // L Right, // R Neutral, // L+R Up, // U L_Up, // U+L R_Up, // U+R Up, /...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

すいません。実際の動作と状態遷移は切り離します。

コード:

//走りの状態の時にこれを実行
Player_Run(){
	vx = 6.0;//普段は走る
}
//走り状態に切り替えるセッター
Set_PlayerState_Run(){
	switch (state){
	case R_JUMP://ジャンプの時は変わらない
	case L_JUMP:
		break;
	default:
		state = R_RUN;//それ以外は走りに
		break;
	}
}

if(右キーが押されたら){
	Set_PlayerState_Run();//走る
}
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

何をどうしたいのかいまいちわからないのですが. すいません…… ①入力によってプレイヤーの状態を変えたい。 「右キーを押したら走れ!」という命令を送る感じ ②その入力の際の、命令による状態遷移を、プレイヤー側でどう処理するか? プレイヤーがジャンプ中に、「右キーを押したら走れ!」と言われても、宙に浮いてるので走れないじゃないですか。 変わるとしてもまあ右向きに寄るぐらい? だから、その状態にとって変われる状態と、変われない状態があると思うんです。 RUN(走り状態)という状態は、N(立ち状態)とJUMP(ジャンプ状態)、この二つに変われるが、 JUMPは、Nに変われるが(地面に触れた際)、R...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

キーコンフィグがあると右キーの実体は分からないし、キーでもパッドでも操作できるとすると複数対応あるし、リプレイ機能だと実際にキーやボタンは押されないけど押されたことにする。 ひとまずキーコンフィグを作ってました。 それでこれからISLeさんがおっしゃった仕様に変更しようとしています。 そこで昔から抱えていた悩みがまた顔を出しました。 それは、プレイヤーの状態遷移です。 過去に使ってたやり方がこちら //右キーが押されたら― if (Input::Inst()->CheckPad(Input::Right)>0){ switch (state){ case R_JUMP://ジャンプの時はこう...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

例えば、水中だから浮力が掛かる、という挙動をする場合 「水中だから」と「浮力が掛かる」は分けて考えます。 今まで if (プレイヤーが右キーを押したら){ 状態を『右走り』に; 加速度をあげる; } という処理をプレイヤーの部分で書いていたのですが、 そうではなく ①プレイヤーの状態は上位のオブジェクト、 『ステージなどの世界のルール』 と 『ユーザーの操作』 で変更させ、 /*WorldRules.cpp*///プレイヤーのいる世界のルール的な 例としてのコードなので設計は深く考えてません /*ユーザーの操作による状態遷移*/ if (ユーザーが右キーを押したら){ Set_PlayerS...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

どのような問題があるのでしょうか?
もう少し具体的にお願いします。
すいません説明不足でした。
そうですね、読み込み自体はできているのですが、
下の画像のような感じでステージのオブジェクトが下にずれるんですよね。
青いのが本来の位置で、上に重なった赤いのがずれたやつです。
たぶんレイヤーごとにファイルを読む際に、

コード:

//一枚目のレイヤー
00000
00000/*←この辺から二枚目のレイヤーとして読み込んでる?*/
00000

//二枚目のレイヤー
00000
00100
00000
こんな感じでずれちゃってるんじゃないかなと思います
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

基底クラスには仮想デストラクタを書きましょう。http://www.yunabe.jp/docs/cpp_virtual_destructor.html C++ ならば #define ではなくて const で定義しましょう。 また、std::unique_ptr< Some >( new Some ) のような書き方から std::make_unique< Some >() に変えた方がよいかと。 せっかくC++を使用しているなら、ファイルの読み込みには ifstream を使った方がよいと思います。 コンストラクタでは代入ではなくて初期化リストを使いましょう。http://www.ge...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

ISLeサン、お久しぶりです 返信ありがとうございます。 今、ISLeさん、3Dさんのアドバイスをもとにもう一度設計を考えてます。 そこで初めてクラス図というのでしょうか? それをastah communityというクラス図作成ツールを用いて書いてみてます。 大体以下のような感じにしようかなと思っています。 まだ途中なんですが、今の状況とプレイヤーがどうなってるかも見せたいのと、あと書き方あってるか気になったので質問のついでに張っておきます。 それで肝心の質問なんですが 一つわからないことがあります。 それは pStageContext = pGlobalContext->GetStageCo...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

ゲーム管理部はこんな感じです。 /*GameScene_Base.h*/ #pragma once #include "GameScene_Changer.h" #include "Camera.h" #include "Stage_Mng.h" #include "PlayerStage_InterFace.h" #include "Player.h" #define PLAYER_CAMERAPOS_Y 85 class GameScene_Base{ protected: //各オブジェクト std::unique_ptr<Stage_Mng> m_stage; //ステージ std::...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

Stage.cppがどうなっているか分かりません。 以下の 六つのクラス で構成されてます。 地面クラス: Ground 地面、ワープポイント、二つのオブジェクトを保持する基底クラス: Stage_Base それを継承した各ステージクラス: Stage_1, Stage_2, Stage_Center//拠点ステージ ステージ変更のためのインターフェースクラス: StageChanger ステージの画像を管理するクラス: StageImg_Mng そしてそれらを管理するクラス: Stage_Mng このクラスたちを以下に貼ります。 地面クラス: Ground /*Ground.h*/ //=...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【アンケート】ドラクエ1を一人で作ろうとしたらどの程度の年月がかかりますか?
返信数: 7
閲覧数: 10624

Re: 【アンケート】ドラクエ1を一人で作ろうとしたらどの程度の年月がかかりますか?

竜王さん さんが書きました: ドラクエ1を一人で作ろうとしたらどの程度の年月がかかりますか?
ソフト屋さん さんが書きました: 30年以上
一瞬こう見えて戦慄しました。
制作期間30年とかハイレベルだな。ドラクエ。

冗談はさておき、
たいちうさん さんが書きました: 伸びないかな。
正直、ソフト屋さんの回答で結論出ちゃってる感がすごいです。
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

途中で二度も送信してしまいました!すいません!
大体こんな感じでいいんでしょうか?
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

ひとまず /*インターフェースクラス*/ /*PlayerStage_InterFace.h*/ #pragma once //プレイヤーとステージのやり取りをするためのインターフェースクラス class PlayerStage_InterFace{ public: //あたり判定 enum{ e_HITTYPE_NONE, //なんもねえよ e_HITTYPE_GROUND, //ただの地面 e_HITTYPE_SLOPE_R_DOWN, //右坂道地上 e_HITTYPE_SLOPE_L_DOWN, //左坂道地上 e_HITTYPE_SLOPE_R_UP, //右坂道天井 e_HITTY...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

ひとまず /*インターフェースクラス*/ /*PlayerStage_InterFace.h*/ #pragma once //プレイヤーとステージのやり取りをするためのインターフェースクラス class PlayerStage_InterFace{ public: //あたり判定 enum{ e_HITTYPE_NONE, //なんもねえよ e_HITTYPE_GROUND, //ただの地面 e_HITTYPE_SLOPE_R_DOWN, //右坂道地上 e_HITTYPE_SLOPE_L_DOWN, //左坂道地上 e_HITTYPE_SLOPE_R_UP, //右坂道天井 e_HITTY...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

3Dさん。返信ありがとうございます。 ひとつわからないので質問させてください。 class Player { Interface* m_pInter;/*ここ*/ Rect m_Rect; public: void hoge() { if( m_pInter->IsHit() ) // 当たった時の処理/*ここ*/ } Rect getRect() const { return m_Rect; } }; /*ここ*/の部分どういう仕組みになっているんでしょうか? どうやってインターフェースクラスの純粋仮想関数を使ってるんですか?
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

行き詰ったので質問します class Player{ private: int m_x, m_y; //位置 double m_vx, m_vy; //加速度 int m_state; //状態 Rect m_Hit; //あたり判定 } class Stage{ private: StageData m_Data; //ステージデータ } この二つのクラスのprivateメンバを ①Stageクラスの『m_Data』とPlayerクラスの『m_Hit』を使って、ステージとのあたり判定を確認する。 ②上記の判定で、当たってる場合は、Playerクラスの『m_x』『m_y』の位置と、『m_vx』...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

なのでよろしければ、アドバイスをいただけないでしょうか。
すいません、やっぱりいいです。
なんだか自力でできそうです。
できたら貼ります。
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

Re: ステージ間ワープを作りましたが、自信がないので見てください。

new/deleteではなくスマートポインタを使ってください。 ひとまずunique_ptrをつかってみました。とても便利ですね。 で、使ってみて、思ったのが、これをロードの部分に用いる場合。 ※下のコードは実際に試したものではなく軽い例です。 //================== //ステージロード中 //================== void GameMng::GameMng_StageLoad(){ /*この部分が消えて //ステージ破棄 delete stage; stage = nullptr; //ワープポイント破棄 delete warp; warp = nullp...
by イマダニ
8年前
フォーラム: C言語何でも質問掲示板
トピック: ステージ間ワープを作りましたが、自信がないので見てください。
返信数: 40
閲覧数: 38498

ステージ間ワープを作りましたが、自信がないので見てください。

お久しぶりです。 開発環境:DXライブラリ、 VisualStudio Express 2013、 言語はC++ で、デモンズソウルのようなステージ間ワープを作りました。 2Dの横スクロールアクションゲームです。 具体的にどのような感じかというと、まずワープには ワープ先を選べる「拠点からのワープ」と、拠点へただ帰る「各ステージからのワープ」の二つあり、 「拠点からのワープ」 ①ワープポイントでメニューを開いて、ワープしたいステージを選択。 ②エフェクトとかアニメーションしながら、画面がフェードアウト。 ③ステージロード。 ④フェードインして、エフェクトとかアニメーションしながら、ステージに到...
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: (雑談)私生活とゲーム制作の優先順位について
返信数: 13
閲覧数: 8037

Re: (雑談)私生活とゲーム制作の優先順位について

ISLeさん、お久しぶりです いつもお世話になっております。 イマダニさんに当てはまるかは分かりませんが ひとつのことにしか集中できないタイプのひとだったら 完全にそのタイプですね僕は。 ゲーム制作において、企画、仕様、キャラデザ、素材制作、プログラミング、数学、物理 と色々やらざる得ない状況になったおかげで多少ましになりましたが、 基本一つの事にしか集中できない事が多いです。不慣れなものだと特に。 上記のだと絵関連は全く苦痛ではなかったですが、プログラミングと数学はひどいもんでしたね。(この掲示板がなかったら絶対にやめてました) そのタイプだからこそ、大学四年時就活を投げだしてますしね。 日...
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: (雑談)私生活とゲーム制作の優先順位について
返信数: 13
閲覧数: 8037

Re: (雑談)私生活とゲーム制作の優先順位について

taketoshi さんが書きました: 私などを見習うべき人物と言っていただいて恐縮です。
開発スピードは亀ですが、趣味として仕事しながらゲーム開発できています。
ゲーム作るのって楽しいですよね。

今後、イマダニさんが良い方向に進んでいただければ良いと思っています。
ありがとうございます
忙しい私生活の中、制作をなんとか続けてる人がいる
それを見聞きするだけでもこちらのモチベーションが高まりますが
そう言ってもらえると更にやる気が出ます
FEは好きなゲームの一つなので完成したらぜひ遊んでみたいです
お互い頑張りましょう!
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: (雑談)私生活とゲーム制作の優先順位について
返信数: 13
閲覧数: 8037

Re: (雑談)私生活とゲーム制作の優先順位について

ここの掲示板だと taketoshi さんが子育てと会社の忙しい中、ゲームをつくろうと奮闘中です。 blog.php?u=288&b=5232 本業はプログラマではないですが、ちゃくちゃくと進行中ですよ。 返信ありがとうございますsoftyaさん。 子育てと会社のダブルコンボのなか作るなんてすごいです。ここ使ってるのに気付かなかった。。。 まさに見習うべき人物。taketoshiさん、大変でしょうが応援してます。 優先順位を正確にジャッジできる能力が必要ですね、大学生のうちに作りたいゲームがあったとしてもちゃんと就活はすべきでした。 私がここで公開している四聖龍神録Plusを作っていましたが...
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: (雑談)私生活とゲーム制作の優先順位について
返信数: 13
閲覧数: 8037

Re: (雑談)私生活とゲーム制作の優先順位について

cocoさん、usaoさん 書き込みありがとうございます。 結局ご本人がどうしたいのか? ということなのだと思うのですけど. 今は職につきたいという気持ちでいて、そう動き始めてるのですが、 心の中に上記の二つの不安が深く根付いてて、 職について仕事をしながらゲーム制作をしたいという気持ちに水を差されると言った感じですね。 就活をやめてまでゲーム制作したというのは何故なのでしょう? 作りたかったからというのと 仕事を始めたらゲームを完成させることができないという先入観の二つが理由ですね。 >>時間はあるはずなので後は根気次第かなと思います。 >>土日の2日は基本空く(ような職を探そう!) という...
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: (雑談)私生活とゲーム制作の優先順位について
返信数: 13
閲覧数: 8037

(雑談)私生活とゲーム制作の優先順位について

ついにゲームが2ステージ分(面白いと思えるくらいには)完成しました。 オリジナルのシステムを一から企画し、ひとまずはできたものの思った通りの面白さがなく、 企画時点での決めた面白さを出そうと試行錯誤して、なんとか面白いゲームができたと思ったら あっという間に時間が過ぎてしまいました。 初めてここに来た大学二年の頃が懐かしいです。 プログラミング言語をある程度理解するまで、半年かかり、 基本的なゲームの作り方を知るのに、また半年かかり、 大学三年でやっと自分の考えたゲームを作れると思ったら、就職活動と卒業単位数に追われる身になり、 そして初めて企画したクォータービューのゲームは自分の未熟さが大半...
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: 横スクロールアクションゲームでの坂道当たり判定バグ
返信数: 3
閲覧数: 3040

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

(´;ω;`) すいません正直甘えてました、、、、 >・矩形の当たり判定 ・それに触れていると判定されたチップ(単一とは限らないかも) ・算出されたy座標(と,そのy座標を計算したx座標も) … といったものを全て可視化するなどして,各時刻にどのようなことが起こっているのかを把握してみてはいかがでしょうか. これら(色々調整)をやって >これが何故起きているのか,をご自身で調査しない理由は何ですか? 調査し、 なんでかわからずやけくそになり、ここになげだしてしまいました、、、、 申し訳ありません、、、 以後気をつけます >45度の坂道だとわかるなら,傾きを求める必要は無いような…? 45度は嘘...
by イマダニ
9年前
フォーラム: C言語何でも質問掲示板
トピック: 横スクロールアクションゲームでの坂道当たり判定バグ
返信数: 3
閲覧数: 3040

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

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

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

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

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリでの2D用カメラ作成について
返信数: 5
閲覧数: 6182

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

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

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

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

足場をランダムに出現

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

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

Re: バイト数について

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

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

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

Re: バイト数について

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

バイト数について

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

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

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

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

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

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

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

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

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

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

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

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

トップビューの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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: 2DゲームにおけるZソート
返信数: 11
閲覧数: 7126

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

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

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

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

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

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

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

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

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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

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

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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

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

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

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

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

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

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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

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

わ か っ て な か っ た

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップの木や建物などの描画方法について
返信数: 39
閲覧数: 18253

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

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

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 10905

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 4500

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 4500

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: androidプロジェクトの実行時のエラーについて
返信数: 6
閲覧数: 3444

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルでのインクルードについて
返信数: 8
閲覧数: 4250

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

まずプレイヤーの構造体が定義されてる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 イマダニ
10年前
フォーラム: C言語何でも質問掲示板
トピック: 武器や乗り物の画像について
返信数: 4
閲覧数: 2593

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

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

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

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

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

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

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

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

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

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

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 イマダニ
11年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 15504

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 イマダニ
11年前
フォーラム: C言語何でも質問掲示板
トピック: クォーターの当たり判定とスクロール
返信数: 44
閲覧数: 15504

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_...

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