1人でゲームが作れるように修行します。2 (487レス)
上下前次1-新
抽出解除 レス栞
157: SGGK ◆6pZCoAtaxk [sage] 2011/02/28(月) 22:47:24.76 ID:ard6obcB(1/2) AAS
今回のプログラム修正は前回と違って、warningが出ないようにしたい。(前回あまりにもたくさん出てきたので諦めてしまった。)
warning C4290: C++ の例外の指定は無視されます。関数が __declspec(nothrow) でないことのみ表示されます。
上記のwarningメッセージは、プログラムソースの例えば、void loadFiles()throw(int);と書いた行のような場所で多数出た。
エラー処理の命令でtry{この中でエラー出たら何かをthrowする。}catch(){左の()内とthrowされた値が同じ時に処理する内容をここに書く}というのがあって、
その最初の{}の中には関数を入れる事も出来て、その関数の中からエラー時にthrowすることも出来る。
つまり外に向けてthrow出来る関数を宣言するときにthrow(int);(注:この例ではthrowされる値の型はint型になる)を横に付けるらしい。
でも、VS2008では、この仕様をフォローしてないので、throwされる型は指定できない。
warning C4290: はそういう事を言っているらしい。
このwarningが出ないようにするには、
#pragma warning( disable : 4290 )
を書いてやればよいとの事。
たしかに出なくなった!
179(15): 名前は開発中のものです。 [sage] 2011/03/29(火) 00:57:27.76 ID:W5EaQ6/R(1/2) AAS
久々にまたがんばろうかな っと思ったけど
この板すんげぇ過疎ってんのね・・・
このスレにちょいとお邪魔してもいいかな
とりあえず2DでSLGぽいのを目指して。
190: 179 [sage] 2011/04/02(土) 21:31:56.76 ID:YKJBI5s3(2/2) AAS
class HUMAN_UNIT
{
public:
void Damage(int point);
void Heal(int point);
private:
int hp;
};
void HUMAN_UNIT::Damage(int point)
{
hp -= point;
return;
}
void HUMAN_UNIT::Heal(int point)
{
hp += point;
return;
}
ハンドルとか良く分かって無いですが、こういう事?
んでも↓みたいな事やるときにhp取り出すのがめんどくて
ついpublicに置いてしまう…w
HUMAN_UNIT yuusya , souryo;
if(yuusya.hp > souryo.hp)souryo.Heal();
if(yuusya.hp < souryo.hp)yuusya.Heal();
196: SGGK ◆6pZCoAtaxk [sage] 2011/04/05(火) 00:03:40.76 ID:S0hRYVkN(1) AAS
>>194
以前、動くところまで書いたのですが、試合前半後半で選手の向きを入れ替えたりとか
いろいろ条件を加えていくうちにソースがわかりにくくなってきた事があったので、
もしまたそうなっても、今の状態からならやり直しやすいだろうと思い、ここを区切りにして保存しておこうと思ってます。
>>195
ともに頑張りましょう!
get、set関数の件、たしかにそのとおりで、直すときは検索つかえばいいんだし、これから書く部分はpublicにしてみます。
今日は、プログラムをリリースモードでコンパイルしようとしてバグ。
どうもユニコードとかの文字コードの何かが原因らしいけど、ネット検索で見つけたコンパイラの設定画面が表示されず、
しようがないので、ソース内の”文字”をTEXT(”文字”)にしたという例を真似してみたり、
他にもいろいろやってみた結果、コンパイルは通ったけど、デバッグモードでは22人の選手が表示されるのに、
リリースモードでは2人しか表示されない…。解決には時間かかる予感。
346: SGGK ◆6pZCoAtaxk [sage] 2012/03/03(土) 22:58:58.76 ID:7buMobyS(1) AAS
しかし、良く見ると自分の選手がボールにタッチする前から選手全員がボールに向かおうとしてることに気付く。
移動出来る選手は自分が動かす1人だけだけで他選手は足元から移動方向に短い線を引くようにしていたので気付いた。
原因はボールにタッチした場合にボールに向かい、タッチしてない場にマウスカーソルに向かうのを
反対にプログラムしていたから。
次は、それでもボールが蹴れない問題。
it=(*listfp).begin();
while(it!=(*listfp).end()){
押してるキーで移動関数(歩く・走る)を切り替える
}
++it;
}
この1行を忘れてた → it=(*listfp).begin();
while(it!=(*listfp).end()){
ボールにタッチすると判定用変数を選手IDに上書きして、選手の移動目標をボールにして、ボールを蹴る。
}
++it;
}
しかし、ボールの動きが良くない。
最初は選手がボールを押してるような感じでずるずる動いたかと思うと
次の瞬間、勢いよく蹴ってしまう。
364: SGGK ◆6pZCoAtaxk [sage] 2012/06/27(水) 22:59:33.76 ID:1q/ptGIo(1) AAS
昨日のプログラムを少し変えた。
1つの状態について1ヘッダーファイル、1cppファイルというのはファイル数が多すぎて分かりずらいのでやめて、
複数の状態を1ヘッダーファイル、1cppファイルにまとめた。
ステートパターンの参考にした本、オライリーのゲームAIプログラミングもそうなっていたし…。
一応、インクルードファイルや前方宣言も本に合わせてみた。
しかし、1か所だけSoccerGameクラスのヘッダーファイルのコンストラクタの行でエラーが出た。
コンストラクタだけ実装(というか定義?)がヘッダーに書いてあったので、
この定義部分だけをcppファイルに移したらコンパイル出来た。
とりあえず、この書き方で進めよう。
タイトル、ゲームオーバー画面が出せたので、次はメインのゲーム部分を書く予定。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s