2D格ゲーを作ろうとしたんですが・・・
2D格ゲーを作ろうとしたんですが・・・
皆さんはじめまして(初めてなので変なところがあるかもしれませんがご容赦願います)
まずはテンプレをば。
--------------------------------------------------------------------------------
[1] 質問文
[1.1] 自分が今行いたい事は何か
・初代サムライスピリッツのような2D格闘ゲームの製作
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
・格ゲーはシューティングを応用して作れると聞いたので、プログラミングの館を一通りやってみまし た。
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
・土台(キャラが立っている状態で足をつけているところ)を作り、そこにキャラを立たせる方法がわ かりません。
[1.4] 今何がわからないのか、知りたいのか
・キャラを地面に立たせる方法
・どんな風に応用すればシューティングを格ゲーにできるのか
[2] 環境
[2.1] OS : Windows vista
[2.2] コンパイラ名 : VC++ 2008EE
[3] その他
どの程度C言語を理解しているか
・ほんの数日前に勉強を始めたばかりです。
ライブラリを使っている場合は何を使っているか
・DxLib_VC2008_and_2005用
--------------------------------------------------------------------------------
フレームデータやモーションは(まず2キャラ分)決まっており絵師も見つかったのですが、プログラムに強い人がいなかったのでやむを得ず私がプログラミングを担当することとなりました。しかし早速つまずいてしまいました(やはり素人がやるには無茶なのでしょうか?)。
どうか、アドバイスをお願いします。
まずはテンプレをば。
--------------------------------------------------------------------------------
[1] 質問文
[1.1] 自分が今行いたい事は何か
・初代サムライスピリッツのような2D格闘ゲームの製作
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
・格ゲーはシューティングを応用して作れると聞いたので、プログラミングの館を一通りやってみまし た。
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
・土台(キャラが立っている状態で足をつけているところ)を作り、そこにキャラを立たせる方法がわ かりません。
[1.4] 今何がわからないのか、知りたいのか
・キャラを地面に立たせる方法
・どんな風に応用すればシューティングを格ゲーにできるのか
[2] 環境
[2.1] OS : Windows vista
[2.2] コンパイラ名 : VC++ 2008EE
[3] その他
どの程度C言語を理解しているか
・ほんの数日前に勉強を始めたばかりです。
ライブラリを使っている場合は何を使っているか
・DxLib_VC2008_and_2005用
--------------------------------------------------------------------------------
フレームデータやモーションは(まず2キャラ分)決まっており絵師も見つかったのですが、プログラムに強い人がいなかったのでやむを得ず私がプログラミングを担当することとなりました。しかし早速つまずいてしまいました(やはり素人がやるには無茶なのでしょうか?)。
どうか、アドバイスをお願いします。
Re:2D格ゲーを作ろうとしたんですが・・・
素人ですが、
最初に、サンプルプログラミングのサンプルによいものが載っているかもしれません。
リンゴをとるゲームは参考によいかもしれません。
>・格ゲーはシューティングを応用して作れると聞いたので、プログラミングの館を一通りやってみました。
一通りやってみた・・・とはどういう意味ですか?
実際にコピペして実行したのか、自分でいちど同じものを書いたのか。
一度書いてみると覚えます。
>・どんな風に応用すればシューティングを格ゲーにできるのか
まちがえていたらすいませんが、当たり判定は参考になるのではないでしょうか?
あとパンチのほかにショットを加えるなら(相手にショットを打つ)
参考になりますよ。
>・ほんの数日前に勉強を始めたばかりです。
まえ、もっとC言語の本を読んだほうがいいといわれましたが、
そのとおりで、いままで何もかも質問していましたが、
C言語の本を読んでかなり疑問が減りました。
特に明快入門C++の本はいいです。
といっても読破というかすべて覚えたわけではないですが。
最初に、サンプルプログラミングのサンプルによいものが載っているかもしれません。
リンゴをとるゲームは参考によいかもしれません。
>・格ゲーはシューティングを応用して作れると聞いたので、プログラミングの館を一通りやってみました。
一通りやってみた・・・とはどういう意味ですか?
実際にコピペして実行したのか、自分でいちど同じものを書いたのか。
一度書いてみると覚えます。
>・どんな風に応用すればシューティングを格ゲーにできるのか
まちがえていたらすいませんが、当たり判定は参考になるのではないでしょうか?
あとパンチのほかにショットを加えるなら(相手にショットを打つ)
参考になりますよ。
>・ほんの数日前に勉強を始めたばかりです。
まえ、もっとC言語の本を読んだほうがいいといわれましたが、
そのとおりで、いままで何もかも質問していましたが、
C言語の本を読んでかなり疑問が減りました。
特に明快入門C++の本はいいです。
といっても読破というかすべて覚えたわけではないですが。
Re:2D格ゲーを作ろうとしたんですが・・・
格闘ゲームなら足場を作るには簡単に
キャラのY座標++;
//自然に落ちてくる(重力)
if(キャラのY座標>足場になる位置)キャラのY座標=足場になる位置;
//キャラのY座標が足場になる位置より下に行ったらキャラのY座標を足場になる位置にする
立っているように見せるこれは絵で表します。
キャラのY座標++;
//自然に落ちてくる(重力)
if(キャラのY座標>足場になる位置)キャラのY座標=足場になる位置;
//キャラのY座標が足場になる位置より下に行ったらキャラのY座標を足場になる位置にする
立っているように見せるこれは絵で表します。
Re:2D格ゲーを作ろうとしたんですが・・・
アドバイスありがとうございます。
リンゴのゲームですか。参考にしてみます。
>一通りやってみた・・・とはどういう意味ですか?
コピペして実行しました。かんばって書いてみますね。
とりあえず、本を読むことからはじめようと思います。ありがとうございました。
リンゴのゲームですか。参考にしてみます。
>一通りやってみた・・・とはどういう意味ですか?
コピペして実行しました。かんばって書いてみますね。
とりあえず、本を読むことからはじめようと思います。ありがとうございました。
Re:2D格ゲーを作ろうとしたんですが・・・
バグさんのお考えのように、通常時はy座標に上下動かない
で十分かと思います。ただ、常に浮いたキャラを作るのなら、
描写でちょっといじらなければなりませんが・・・。
>フレームデータ
ってことは、外部読み込みですか^^;
なかなか大変そうですね。
・・・でも、絵師がいることは、やる気が倍増しそうですね^^
(本当にうらやまry)
>どんな風に応用すればシューティングを格ゲーにできるのか
situmonさんのおっしゃる、あたり判定は確かに参考になるかと思います。
っというか、図形同士の衝突が分かればいいかと思いますけどね^^;
がんばってください^^
で十分かと思います。ただ、常に浮いたキャラを作るのなら、
描写でちょっといじらなければなりませんが・・・。
>フレームデータ
ってことは、外部読み込みですか^^;
なかなか大変そうですね。
・・・でも、絵師がいることは、やる気が倍増しそうですね^^
(本当にうらやまry)
>どんな風に応用すればシューティングを格ゲーにできるのか
situmonさんのおっしゃる、あたり判定は確かに参考になるかと思います。
っというか、図形同士の衝突が分かればいいかと思いますけどね^^;
がんばってください^^
Re:2D格ゲーを作ろうとしたんですが・・・
インベーダーを90度回転した感じを想像してみてください。
どちらも敵の方に向かって弾を撃ちます。それがパンチと思ってください。
当たるとお互いにダメージを受けます。
格闘ゲームはそれに、防御(押している間ダメージを受けない、又はダメージが減少する)
技(当たり判定の大きさの違い・ダメージ量の違い)
が付きます。
まずは、簡単な対戦シューティング(お互いが上下に動き弾を打ち合う)を作り、
そこから徐々に格闘ゲームに近づける方法がいいと思います。
どちらも敵の方に向かって弾を撃ちます。それがパンチと思ってください。
当たるとお互いにダメージを受けます。
格闘ゲームはそれに、防御(押している間ダメージを受けない、又はダメージが減少する)
技(当たり判定の大きさの違い・ダメージ量の違い)
が付きます。
まずは、簡単な対戦シューティング(お互いが上下に動き弾を打ち合う)を作り、
そこから徐々に格闘ゲームに近づける方法がいいと思います。
Re:2D格ゲーを作ろうとしたんですが・・・
>『地面に立たせる』という風に考えるのではなく、『ジャンプ時以外は上下に動かない』
>インベーダーを90度回転した感じ
ということは、「横シューティングの上下移動をジャンプで行うゲーム」というのをベースに作ればいいんですかね?
>キャラのY座標++;
//自然に落ちてくる(重力)
if(キャラのY座標>足場になる位置)キャラのY座標=足場になる位置;
//キャラのY座標が足場になる位置より下に行ったらキャラのY座標を足場になる位置にする
というのがよくわからないんですけど、参考になるページってありますか?
>インベーダーを90度回転した感じ
ということは、「横シューティングの上下移動をジャンプで行うゲーム」というのをベースに作ればいいんですかね?
>キャラのY座標++;
//自然に落ちてくる(重力)
if(キャラのY座標>足場になる位置)キャラのY座標=足場になる位置;
//キャラのY座標が足場になる位置より下に行ったらキャラのY座標を足場になる位置にする
というのがよくわからないんですけど、参考になるページってありますか?
Re:2D格ゲーを作ろうとしたんですが・・・
コンピュータの座標軸は、
従って、キャラのY座標をcyとし、足場になる位置を460にします。
すると、
if(cy>460) cy=460;となります。
//cyが460より大きければ460にする
原点(0,0)→→→→→(640,0) ↓ ↓ ↓ ↓ ↓ (0,480) (640,480)となっています。
従って、キャラのY座標をcyとし、足場になる位置を460にします。
すると、
if(cy>460) cy=460;となります。
//cyが460より大きければ460にする
Re:2D格ゲーを作ろうとしたんですが・・・
いや、どちらかというと、シューティングは考えないほうがいいんじゃ・・・
とも思います^^;
弾は画面外までいっても、パンチはユーザーが決めた範囲のみのあたり判定だし、
参考にするところが少量かなっと。
とりあえず、ここの管理人さんが紹介している
ゲームプログラミングの館を見て、それを参考に試行錯誤を始めることが
一番じゃないかって思います。
ゲームの流れを考えるには、初めての人にはもってこいかと。
>>キャラのY座標++;
>//自然に落ちてくる(重力)
>if(キャラのY座標>足場になる位置)キャラのY座標=足場になる位置;
>//キャラのY座標が足場になる位置より下に行ったらキャラのY座標を足場になる位置にする
これはジャンプの処理(?)なんで、今はそんなに気にすることないかと。
これよりも、どのような実装にするかを考えるべきです。
マ○オみたいに、下に落ちることもあるかもしれないですし、
ある程度の速度で地面に落ちたら、地面がへこんで、
地面より、下に行くかもしれないですよね。
そうなると、また実装しなおしになります。
とにかく、まずは、どのように自分が実装したいかを
固めるべきかと。
とも思います^^;
弾は画面外までいっても、パンチはユーザーが決めた範囲のみのあたり判定だし、
参考にするところが少量かなっと。
とりあえず、ここの管理人さんが紹介している
ゲームプログラミングの館を見て、それを参考に試行錯誤を始めることが
一番じゃないかって思います。
ゲームの流れを考えるには、初めての人にはもってこいかと。
>>キャラのY座標++;
>//自然に落ちてくる(重力)
>if(キャラのY座標>足場になる位置)キャラのY座標=足場になる位置;
>//キャラのY座標が足場になる位置より下に行ったらキャラのY座標を足場になる位置にする
これはジャンプの処理(?)なんで、今はそんなに気にすることないかと。
これよりも、どのような実装にするかを考えるべきです。
マ○オみたいに、下に落ちることもあるかもしれないですし、
ある程度の速度で地面に落ちたら、地面がへこんで、
地面より、下に行くかもしれないですよね。
そうなると、また実装しなおしになります。
とにかく、まずは、どのように自分が実装したいかを
固めるべきかと。
Re:2D格ゲーを作ろうとしたんですが・・・
>コピペして実行しました。かんばって書いてみますね。
せっかく2D格闘を作ろうっていう計画があるんだから、ゲームプログラミングの館をリファレンス(参考)として使った方がいいのでは?
それか実際に利用しそうな機能を意識して探しながら最初から読んでみる、とか。
とりあえず、まずは何をすればいいのかを考えると
>初代サムライスピリッツのような2D格闘ゲーム
やったことないのでわからないのですが、ゲーム画面だけを考えるとまず最初に出来そうなのは
・背景を表示させてキャラを動かす
これは
3.画像を表示する。
12.画像を動かす
を重点的に参考にすればいけそうですよね。
最初はこんな風にして動くプログラムを書きながら、機能を追加していく方が簡単ではないでしょうか?
・画像が表示できた
↓
・前後に動かせた
↓
・敵も表示できた
↓
・敵を通り抜けないように当たり判定ができた
↓
以下どんどん続く。
せっかく2D格闘を作ろうっていう計画があるんだから、ゲームプログラミングの館をリファレンス(参考)として使った方がいいのでは?
それか実際に利用しそうな機能を意識して探しながら最初から読んでみる、とか。
とりあえず、まずは何をすればいいのかを考えると
>初代サムライスピリッツのような2D格闘ゲーム
やったことないのでわからないのですが、ゲーム画面だけを考えるとまず最初に出来そうなのは
・背景を表示させてキャラを動かす
これは
3.画像を表示する。
12.画像を動かす
を重点的に参考にすればいけそうですよね。
最初はこんな風にして動くプログラムを書きながら、機能を追加していく方が簡単ではないでしょうか?
・画像が表示できた
↓
・前後に動かせた
↓
・敵も表示できた
↓
・敵を通り抜けないように当たり判定ができた
↓
以下どんどん続く。
Re:2D格ゲーを作ろうとしたんですが・・・
>とにかく、まずは、どのように自分が実装したいかを固めるべきかと。
実装とは、どういう仕様にするかということですか?
>従って、キャラのY座標をcyとし、足場になる位置を460にします。
すると、
if(cy>460) cy=460;となります。
//cyが460より大きければ460にする
これは、どうやって設定すればいいんでしょうか?(ゲームプログラミングの館に似たようなのを見つけられなかったので)
実装とは、どういう仕様にするかということですか?
>従って、キャラのY座標をcyとし、足場になる位置を460にします。
すると、
if(cy>460) cy=460;となります。
//cyが460より大きければ460にする
これは、どうやって設定すればいいんでしょうか?(ゲームプログラミングの館に似たようなのを見つけられなかったので)
Re:2D格ゲーを作ろうとしたんですが・・・
日本語間違えてました。。
どのような仕様にするかですね。
途中から変更することも別に悪くないですが、
やはり、変更箇所が多いと、バグを起こす可能性も上がってきます。
なので、先に、ある程度決めたほうがいいかなって思います。
どのような仕様にするかですね。
途中から変更することも別に悪くないですが、
やはり、変更箇所が多いと、バグを起こす可能性も上がってきます。
なので、先に、ある程度決めたほうがいいかなって思います。
Re:2D格ゲーを作ろうとしたんですが・・・
サンプルプログラムです。
キックのアニメーションが出来ませんが、
ジャンプ処理や、左右の移動処理の参考になると思います。
DXライブラリのLibファイル等は入っていないので、追加して
コンパイルして下さい。
キックのアニメーションが出来ませんが、
ジャンプ処理や、左右の移動処理の参考になると思います。
DXライブラリのLibファイル等は入っていないので、追加して
コンパイルして下さい。
Re:2D格ゲーを作ろうとしたんですが・・・
同じ初心者としての意見なので、みなさんの様な専門的な答えにはならないと思いますが、
参考になれば幸いです。
以下長文になります。
参考になれば幸いです。
以下長文になります。
・キャラを地面に立たせる。 ・仕様として地面になるグラフィックがあるのであれば、まずそれを表示してみる。(DrawGraph等) ・上記で地面の画像が無いのであれば、画面y座標の最大値が地面になる。 ・キャラ画像(通常の立ち絵)を表示してみる。(DrawGraph等) ・キャラ画像のy座標を上下に微調整して、地面との調度良い位置を決定し、その座標を#defineで定数にする。 ・上記までで、通常の立ち状態になります。 仮コード #define CH_MAX_Y 400 //通常のたち位置がy座標400とする場合 void DrawGraphAll( void ); //前方宣言が抜けていたのを修正しました。 WinMain(・・・) double cx, cy; //キャラx、y座標 int gh_char; //キャラ画像ハンドル //DxLibの初期化処理など gh_char = LoadGraph( "画像パス" ); cx = 100; cy = CH_MAX_Y; while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ){ //様々な処理 //入力判定、当たり判定など DrawGraphAll(); //画像描画関数呼び出し } //DxLibの終了処理 } void DrawGraphAll( void ){ //プレーヤー画像の描画 //描画関数内にプレーヤー、敵、背景の処理をまとめるのが定石。(場合によって、さらに描画処理を分ける) DrawRotaGraphF( cx, cy, 1.0f, 0.0f, gh_char, TRUE ); } 簡単にだと、こんな感じになると思います。 ・キャラの移動、ジャンプ等 ・キャラの移動に関しては、こちらのサイトのサンプルが大変参考になります。 ・ジャンプもサンプルにあったと思いますが、単純にキー入力の判定と、y座標の計算(重力を加味した方がリアル)だけです。 ・当たり判定 ・格闘ゲームの場合、体、手、足、武器、飛び道具など様々な当たり判定が必要です。 ・飛び道具(波動拳みたいなもの)の場合は、シューティングの弾の当たり判定が似ていると思います。 ・その他(体、手、足など)はその時のモーションにや仕様によって変わりますが、キャラの構造体に当たり判定 用xy座標の配列を確保して、配列の各要素を体、手などに割り振ります。 ・後は状況によって当たり判定用配列の座標を更新して、条件分岐で当たり判定処理をするのが考え方として 楽ではないかと思います。(簡略化等は後で考えた方が良いと思いますよ) ・とりあえず必要になる変数やデータが揃ってしまえば、各処理はシューティングのコードも十分参考になると思います。 初心者の素人考えなので、どこまで参考になるかわかりませんが、お役に立てれば幸いです。
Re:2D格ゲーを作ろうとしたんですが・・・
サンプルありがとうございます! 早速参考にしてみます!
移動以外だと、やっぱり当たり判定が大変みたいですね……。がんばります。
実装は
イメージは、
・初代サムライスピリッツのような一撃の威力が高い斬り合いゲーム。
で、具体的には
・コマンド入力技は必殺技と一撃即死技。
・大武器、中武器、弱武器、大素手、中素手、小素手の6ボタン。大武器と大素手は、格小中ボタンを同時押し。あと、レバー入れ+大素手or大武器で投げ。
・表示するパラメータはHPのみで、残り四割以下で即死技使用可能フラグが立つ。
・非表示パラメータで武器HPがあり、ガードすると減る。零になると武器が壊れる。
・先行入力(チェーンコンボ)コンボは無し。目押しコンボ("相手のダメージ硬直F-自分の攻撃硬直F=有利時間"なので、"有利時間Fよりも発生の早い技ならコンボはつながる)。
・空振りした一部通常技を必殺技でキャンセル可能。(技毎にキャンセル受付F設定)
・削りダメージ有り。全技一律。
・ジャンプは一部キャラ以外一段ジャンプ。
・一ラウンドあたりの試合時間は99カウント。
・カウンターヒット時は相手のダメージ硬直増加(結果、有利Fが増える)。
という感じです。
キャラ毎に個別で設定したいのは
・HPの総量(防御係数ほうが簡単ですかね?)
・武器HPの総量
・食らい判定の大きさと移動速度と体重(落下速度)
・各種技の性能(範囲、判定の大きさ等)
です。
移動以外だと、やっぱり当たり判定が大変みたいですね……。がんばります。
実装は
イメージは、
・初代サムライスピリッツのような一撃の威力が高い斬り合いゲーム。
で、具体的には
・コマンド入力技は必殺技と一撃即死技。
・大武器、中武器、弱武器、大素手、中素手、小素手の6ボタン。大武器と大素手は、格小中ボタンを同時押し。あと、レバー入れ+大素手or大武器で投げ。
・表示するパラメータはHPのみで、残り四割以下で即死技使用可能フラグが立つ。
・非表示パラメータで武器HPがあり、ガードすると減る。零になると武器が壊れる。
・先行入力(チェーンコンボ)コンボは無し。目押しコンボ("相手のダメージ硬直F-自分の攻撃硬直F=有利時間"なので、"有利時間Fよりも発生の早い技ならコンボはつながる)。
・空振りした一部通常技を必殺技でキャンセル可能。(技毎にキャンセル受付F設定)
・削りダメージ有り。全技一律。
・ジャンプは一部キャラ以外一段ジャンプ。
・一ラウンドあたりの試合時間は99カウント。
・カウンターヒット時は相手のダメージ硬直増加(結果、有利Fが増える)。
という感じです。
キャラ毎に個別で設定したいのは
・HPの総量(防御係数ほうが簡単ですかね?)
・武器HPの総量
・食らい判定の大きさと移動速度と体重(落下速度)
・各種技の性能(範囲、判定の大きさ等)
です。
Re:2D格ゲーを作ろうとしたんですが・・・
仕様を見る限り、かなり大変そうですね・・・(汗) sizumaさんの回答にあったように、まずは画像の表示や、移動処理、単純な当たり判定処理・・・など一段階 毎に実装を目指した方が初心者(私もですが)には、結果的に近道になると思いますよ。 格闘ゲームの当たり判定処理は矩形での判定が多かったと思いますが、最初は円の判定で実装して、うまく行ったら、 矩形の判定を考えてみてはどうでしょうか?(矩形の場合矩形の回転が必要になる為) こちらのサンプルには結構基本的な処理のサンプルがあるので、参考にしてみてください。 後は技の判定発生フレームや喰らい時の硬直フレームの管理が大変だと思います。 スト2の昇竜拳みたいに、しゃがみ状態から立ち上がり寸前までは無敵とか、うまく処理しないと相打ち上等!なゲームになるので・・・
Re:2D格ゲーを作ろうとしたんですが・・・
実装のやつはあくまで最終形なんで、それを目指して一個一個やってきたいと思います。
質問なんですが、ファイルというのはどういう風に分けて作ればいいのでしょうか?
"りんご落ちゲー"では背景やキャラは一緒のファイルに入っているのに、"龍神録"では沢山のファイルがあります。これはなぜなんですか?
そして、格ゲーではどんな風にファイルを作るのがいいんでしょうか?
質問なんですが、ファイルというのはどういう風に分けて作ればいいのでしょうか?
"りんご落ちゲー"では背景やキャラは一緒のファイルに入っているのに、"龍神録"では沢山のファイルがあります。これはなぜなんですか?
そして、格ゲーではどんな風にファイルを作るのがいいんでしょうか?
Re:2D格ゲーを作ろうとしたんですが・・・
りんご落ちげーは少しの画像しか使わないのでいいだろうと思ったからでしょう。
龍神録は非常にたくさんの画像を使うので一つ一つ分けたほうがいいです。
たとえば、
敵ならenemy、プレイヤーならplayerと自分にわかりやすい形で分けるのがいいと思います。
龍神録は非常にたくさんの画像を使うので一つ一つ分けたほうがいいです。
たとえば、
敵ならenemy、プレイヤーならplayerと自分にわかりやすい形で分けるのがいいと思います。
Re:2D格ゲーを作ろうとしたんですが・・・
画像のファイル分けですが単純に分けるなら、キャラ毎に分けるのが管理の面で楽だと思いますよ。
キャラひとりでも、通常立ち、パンチ各種、キック各種、斬る、投げ、ジャンプ、喰らいモーション・・・
これがアニメーションする中間画像プラス、左右向き分あるわけですから・・・できればキャラひとり分でも
2~3枚位に分けないと、画像ファイルの容量が大きくなりすぎるかも・・・
後は、背景やエフェクト、その他など自分が管理しやすいようにフォルダ分けしておけば良いのではないでしょうか?
キャラひとりでも、通常立ち、パンチ各種、キック各種、斬る、投げ、ジャンプ、喰らいモーション・・・
これがアニメーションする中間画像プラス、左右向き分あるわけですから・・・できればキャラひとり分でも
2~3枚位に分けないと、画像ファイルの容量が大きくなりすぎるかも・・・
後は、背景やエフェクト、その他など自分が管理しやすいようにフォルダ分けしておけば良いのではないでしょうか?
Re:2D格ゲーを作ろうとしたんですが・・・
分けてみると結構な数になりましたが、ずいぶん見やすくなりました。回答ありがとうございました。
背景ファイルに"ゲームプログラミングの館4. 透過処理をした画像を表示する"を、PCキャラファイルに、〝19. キャラをキー入力によって移動させる"を丸々コピペしたら「1 つ以上の複数回定義されているシンボルが見つかりました」とエラーが出ました。どうやって解決すればいいのでしょうか?
背景ファイルに"ゲームプログラミングの館4. 透過処理をした画像を表示する"を、PCキャラファイルに、〝19. キャラをキー入力によって移動させる"を丸々コピペしたら「1 つ以上の複数回定義されているシンボルが見つかりました」とエラーが出ました。どうやって解決すればいいのでしょうか?
Re:2D格ゲーを作ろうとしたんですが・・・
とりあえずここ読んでみてください
2、ウィンドウの表示http://dixq.net/g/#2
というか
>一通りやってみた・・・とはどういう意味ですか?
>コピペして実行しました。かんばって書いてみますね。
コピペして実行は一通りできたんじゃなかったんですか??
追記
あぁ、ゲームプログラミングの館ってコンテンツごとにコンパイルできるサンプルが置いてるんですね。
失礼しました
2、ウィンドウの表示http://dixq.net/g/#2
というか
>一通りやってみた・・・とはどういう意味ですか?
>コピペして実行しました。かんばって書いてみますね。
コピペして実行は一通りできたんじゃなかったんですか??
追記
あぁ、ゲームプログラミングの館ってコンテンツごとにコンパイルできるサンプルが置いてるんですね。
失礼しました
Re:2D格ゲーを作ろうとしたんですが・・・
読みましたか?
ココ
って書いてある部分が、(主に)参考にする部分です。
コピペするにしても、ココでどんな処理をしているのかを理解して、処理を加えていってください。
ココのソースをそのままコピペしてもほぼ動かないと思いますので。
サンプル2つを1つのソースにまるまるコピペして実行してみた、と解釈したのですが。
こういう解釈でよかったですかね?
ココ
って書いてある部分が、(主に)参考にする部分です。
コピペするにしても、ココでどんな処理をしているのかを理解して、処理を加えていってください。
ココのソースをそのままコピペしてもほぼ動かないと思いますので。
サンプル2つを1つのソースにまるまるコピペして実行してみた、と解釈したのですが。
こういう解釈でよかったですかね?
Re:2D格ゲーを作ろうとしたんですが・・・
遅れてすみません。皆さんのおかげで前回のエラーは解決したのですが、また新しいエラーが出てしまいました。
キャラの描写のときに「error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません」というエラーがでるのですが、どうすればいいのでしょうか?
龍神録プログラミング(第四章)のほうで動いているのを(「#include "../include/GV.h"」を「#include "DxLib.h"」に変えただけです)使っているはずなのですがうまくエラーが出てしまいます。
「#include "../include/GV.h"」を変更したのがまずかったのでしょうか?
キャラの描写のときに「error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません」というエラーがでるのですが、どうすればいいのでしょうか?
龍神録プログラミング(第四章)のほうで動いているのを(「#include "../include/GV.h"」を「#include "DxLib.h"」に変えただけです)使っているはずなのですがうまくエラーが出てしまいます。
「#include "../include/GV.h"」を変更したのがまずかったのでしょうか?
Re:2D格ゲーを作ろうとしたんですが・・・
-----------------
#include "●●●"
-----------------
↑これがどういう事をしているのか、分かりますか?
おそらく、変数や関数の定義が取り込まれなかったのではないのでしょうか。
その為、「得体の知れない変数にメンバアクセス演算子(.)を使った」事になり、
エラーが出たのでは?
>>キャラの描写のときに「error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません」というエラーがでるのですが、どうすればいいのでしょうか?
「#include "../include/GV.h"」 →「#include "DxLib.h"」に変更してエラーが出たのであれば、
それを、もう一度「#include "../include/GV.h"」に戻せば良いと思います。
あと、「GV.h」の方で「DxLib.h」をインクルードしているみたいなので、
「GV.h」をインクルードすれば、「DxLib.h」も同時にインクルードされると思います。
#include "●●●"
-----------------
↑これがどういう事をしているのか、分かりますか?
おそらく、変数や関数の定義が取り込まれなかったのではないのでしょうか。
その為、「得体の知れない変数にメンバアクセス演算子(.)を使った」事になり、
エラーが出たのでは?
>>キャラの描写のときに「error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません」というエラーがでるのですが、どうすればいいのでしょうか?
「#include "../include/GV.h"」 →「#include "DxLib.h"」に変更してエラーが出たのであれば、
それを、もう一度「#include "../include/GV.h"」に戻せば良いと思います。
あと、「GV.h」の方で「DxLib.h」をインクルードしているみたいなので、
「GV.h」をインクルードすれば、「DxLib.h」も同時にインクルードされると思います。
Re:2D格ゲーを作ろうとしたんですが・・・
元に戻してみたのですが、そうしたら今度は「 fatal error C1083: include ファイルを開けません。'../include/GV.h': No such file or directory」とでてきました。
どうやって解決すればいいですか?
どうやって解決すればいいですか?
Re:2D格ゲーを作ろうとしたんですが・・・
#include"../include/GV.h"
としているのでしょうか?
恐らく、フォルダやファイルの位置がおかしいのだと思います。
相対パスの指定が間違っているのでしょう。
で、#include"../include/GV.h"というのは、
---------------------------------------------------------------------------------
1つ上のディレクトリにある、"include"というフォルダの中にある
GV.hというヘッダファイルをインクルードする
---------------------------------------------------------------------------------
という意味になります。
そこにGV.hがあるのか調べてみてください。
もしくは、#include"../include/GV.h"と記述したソースファイルの場所がおかしくないかを
確認してください。
┏━━━━━━━━━━━━━━┓
┃ ┏━━━━━━━━━┓ ┃
┃┏┫フォルダ"include" ┣┓ ┃
┃┃┗━━━━━━━━━┛┃ ┃
┃┃※ここにGV.hがあるのか┃ ┃
┃┃ 調べる ┃ ┃
┃┗━━━━━━━━━━━┛ ┃
┃ ┏━━━━━━━━━━┓ ┃
┃┏┫フォルダ(名は不明)┣┓┃
┃┃┗━━━━━━━━━━┛┃┃
┃┃#include"../include/GV.h"┃┃
┃┃と書かれたソースファイル┃┃
┃┗━━━━━━━━━━━━┛┃
┗━━━━━━━━━━━━━━┛
で、どのソースファイルがどのフォルダに入っているのかが分からないので、
解決できなければ、具体的なファイルの位置などを書いてみてください。
Re:2D格ゲーを作ろうとしたんですが・・・
沢山のファイルに分けたので、アップは難しいかもしれません・・・
あの、さっき気づいたんですけど、もしかして龍神録プログラミングの手順に従って作る(自分で作った新規プロジェクトにコピペしていく)ではエラーが出ますか? それが原因な気がしてきたんですが・・・
あの、さっき気づいたんですけど、もしかして龍神録プログラミングの手順に従って作る(自分で作った新規プロジェクトにコピペしていく)ではエラーが出ますか? それが原因な気がしてきたんですが・・・
Re:2D格ゲーを作ろうとしたんですが・・・
>>沢山のファイルに分けたので、アップは難しいかもしれません・・・
ソースファイル自体は別に問題ではありません。
どんなフォルダがあり、そのフォルダの中にどんなソースファイルが入っているのか、
という階層構造の問題です。
>>あの、さっき気づいたんですけど、もしかして龍神録プログラミングの手順に従って作る(自分で作った新規プロジェクトにコピペしていく)ではエラーが出ますか? それが原因な気がしてきたんですが・・・
新規プロジェクトを作る、ということは場所も変わりますから
当然、ファイルを読み取れない場合も出てくると思います。
とりあえず、フォルダ分けをしなければ全部
---------------------
#include"GV.h"
---------------------
みたいに直接 「ヘッダ名.h」みたいに出来ますよ。
(ゴチャゴチャしてしまいますけども)
-------------------------
#include"../include/GV.h"
-------------------------
みたいにしたいのであれば、ソースファイルだけでなく、フォルダなどの構造も
そっくりそのままコピーしないと駄目かと。
ソースファイル自体は別に問題ではありません。
どんなフォルダがあり、そのフォルダの中にどんなソースファイルが入っているのか、
という階層構造の問題です。
>>あの、さっき気づいたんですけど、もしかして龍神録プログラミングの手順に従って作る(自分で作った新規プロジェクトにコピペしていく)ではエラーが出ますか? それが原因な気がしてきたんですが・・・
新規プロジェクトを作る、ということは場所も変わりますから
当然、ファイルを読み取れない場合も出てくると思います。
とりあえず、フォルダ分けをしなければ全部
---------------------
#include"GV.h"
---------------------
みたいに直接 「ヘッダ名.h」みたいに出来ますよ。
(ゴチャゴチャしてしまいますけども)
-------------------------
#include"../include/GV.h"
-------------------------
みたいにしたいのであれば、ソースファイルだけでなく、フォルダなどの構造も
そっくりそのままコピーしないと駄目かと。
Re:2D格ゲーを作ろうとしたんですが・・・
実際にダウンロードしてみたのですが、 プロジェクトファイルのある場所に"mydat"というフォルダがありますね。 で、大体こんな感じになってます。 ---------------------------------------- mydat ┃ ┏━━┻━━┳━━━┓ include source PSD ┃ ┃ ┃ ┃ define.h char.cpp func.h ini.cpp GV.h <以下略> struct.h function.h ---------------------------------------- 新しいプロジェクトとして製作しているとの事ですが、 -------------------------------------------------------------------------------------- ①新しく作ったプロジェクトの所に、"mydat"フォルダがあるか ②#include"../include/GV.h"と記述したソースファイルは"source"というフォルダの中にあるか ③GV.hは"include"というフォルダにあるか -------------------------------------------------------------------------------------- これを調べてみてください。 また、新しく作ったプロジェクトの所に、フォルダも何も作っていないのであれば、 "mydat"フォルダをそのままコピーして持って来ればよいと思います。
Re:2D格ゲーを作ろうとしたんですが・・・
ありがとうございました!わかりやすい説明で、うまく理解できました! アドバイス通りにやったら開くことができました。
質問なんですが、龍神録に入っている「DxDirectX.h」と「DxLib.h」とは一体なにをしているファイルなのでしょうか?
質問なんですが、龍神録に入っている「DxDirectX.h」と「DxLib.h」とは一体なにをしているファイルなのでしょうか?
Re:2D格ゲーを作ろうとしたんですが・・・
DXライブラリのヘッダファイルですね。
中身を見たことは無いのですが、
画像を表示する関数や文字列を表示する関数、
音楽を扱う関数など、
ゲームに利用するような基本的な機能を提供しています。
中身を見たことは無いのですが、
画像を表示する関数や文字列を表示する関数、
音楽を扱う関数など、
ゲームに利用するような基本的な機能を提供しています。
Re:2D格ゲーを作ろうとしたんですが・・・
そうだったんですか。疑問がなくなってすっきりしました。
何日か考えていたのですが、技術的に無理がありそうなので、実装とジャンルを変更して作っていこうと思います。それに伴い質問を立て直そうと思います。いままで質問に答えてくださった方々、本当にありがとうございました。
何日か考えていたのですが、技術的に無理がありそうなので、実装とジャンルを変更して作っていこうと思います。それに伴い質問を立て直そうと思います。いままで質問に答えてくださった方々、本当にありがとうございました。