DXライブラリ 総合スレッド その12
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2012/02/23(木) 21:35:32.53ID:Si08WDH/ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
DXライブラリ 総合スレッド その9
http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
DXライブラリ 総合スレッド その10
http://hibari.2ch.net/test/read.cgi/gamedev/1313655495/
DXライブラリ 総合スレッド その11
http://toro.2ch.net/test/read.cgi/gamedev/1322844235/
0773名前は開発中のものです。
2012/05/17(木) 10:48:59.52ID:72LABUA90774名前は開発中のものです。
2012/05/17(木) 12:18:20.00ID:kt0acN7f0775名前は開発中のものです。
2012/05/17(木) 12:51:45.63ID:XdhnKfWCvisual studio c++ 専用だけどpropertyという機能もある
0776名前は開発中のものです。
2012/05/17(木) 16:09:41.33ID:jk5kVr/j安心しろ、俺もだ
0777名前は開発中のものです。
2012/05/17(木) 16:36:03.67ID:LEC6LKtfメンバ関数作って使い方の感覚得るとかいんじゃね
0778名前は開発中のものです。
2012/05/17(木) 17:43:23.17ID:ucuijB6CC言語は入門書一冊熟読した
知識はそれだけです
0779名前は開発中のものです。
2012/05/17(木) 17:53:24.70ID:A/eH0jcf0780名前は開発中のものです。
2012/05/17(木) 18:19:27.36ID:Le624jWkあの滑らかなジャンプの曲線の動きとか作るのすげー勉強になるし、実際に動いてるの見ると楽しい
0781名前は開発中のものです。
2012/05/17(木) 18:25:10.94ID:sA5HBbyr作りたいもの作ればいいよ。
作りたいものがなければ違うことやればいいと思うよ
0782名前は開発中のものです。
2012/05/17(木) 18:42:01.27ID:Lq82mTDsともかく、DxLibとC言語で簡単なゲーム作る本があるから探して買うか図書館で借りるかして試してみればいいよ。
0783名前は開発中のものです。
2012/05/17(木) 18:44:31.06ID:CIWlPPKp0784名前は開発中のものです。
2012/05/17(木) 19:04:17.83ID:1miPR200実際に動かして見てやっと理解できる。
0785名前は開発中のものです。
2012/05/17(木) 21:17:20.29ID:MVax3Amg次のサンプルプログラムを1個改造して、
気に入ったのがあったら沢山改造して、というのを繰り返して身に着けたな
0786名前は開発中のものです。
2012/05/18(金) 00:14:29.29ID:4zRGqSRrこのサイトのソース読みながら覚えたいのですが
RPG.vcprojをドラッグアンドドロップして
vc++2008に変換しようとすると
「ゲームファイルの初期化に失敗しました」と何度試しても出ます。
VC++2010は低スペなので使えないのですがどうすれば変換できるのでしょうか
もしダメならこれ以外でVC++2008で公開されているrpgのサンプルがあれば教えてください
お願いします
0787名前は開発中のものです。
2012/05/18(金) 00:56:44.66ID:Kw1eEMY10788名前は開発中のものです。
2012/05/18(金) 00:58:13.40ID:gx1xQNnDそれ以外に開放手段はありません
0789名前は開発中のものです。
2012/05/18(金) 00:59:03.38ID:Kw1eEMY10790名前は開発中のものです。
2012/05/18(金) 00:59:42.96ID:mamO/m7+解放する必要があるなら、
配列へのポインタで変数を確保してnewでヒープを確保、
必要になったらdeleteすればok
0791名前は開発中のものです。
2012/05/18(金) 00:59:50.88ID:Kw1eEMY1ありがとうございます
0792名前は開発中のものです。
2012/05/18(金) 01:00:56.05ID:mamO/m7+関数内で宣言されるstatic変数はスコープは関数の内部のみ。
従って別物。
0793名前は開発中のものです。
2012/05/18(金) 01:04:36.26ID:Kw1eEMY1なんかよくわからないので具体的にコード書いてくれると嬉しいです。
・配列arrの引数m分だけ要素数を持つint型配列を引数&pに作成する関数
とかだとわかりやすくて自分が喜びます。
図々しくてすみません。
0794名前は開発中のものです。
2012/05/18(金) 01:05:51.71ID:Kw1eEMY10795名前は開発中のものです。
2012/05/18(金) 01:20:06.21ID:mamO/m7+//えーと、
// 適当な配列
int[] arr = {0,1,2,3,4,5,6,7,8,9,}
void dynamic_array(int*& p, int length)
{
//lengthnこのintを確保
p = new int[length];
// arrからコピー
for(int i = 0; i < length; ++i)
{
p[i] = arr[i];
}
}
// pを解放するときは、
// delete[] p;
0796名前は開発中のものです。
2012/05/18(金) 02:44:50.20ID:g6CQrJUG>>795 のSTL版
#include <vector>
void dynamic_array(int*& p, int length)
{
auto v = std::vector<int>(length);
p = v.data();
}
0797名前は開発中のものです。
2012/05/18(金) 12:33:49.02ID:AXglkRe50798名前は開発中のものです。
2012/05/18(金) 12:39:42.25ID:aBuN5zeL0799名前は開発中のものです。
2012/05/18(金) 12:52:20.63ID:tTxAGc55C++についてもよくわかってなかったりするからつい、だろうね。
他のスレだと”DXライブラリに頼らなくていい人”ばかりに思えて気後れする。
0800名前は開発中のものです。
2012/05/18(金) 14:58:56.44ID:AqX5CuAidynamic_array終了時に開放されね?
>>787が単にヒープに置きたいということでなければ>>795の方法しかないと思う
もしくはvector自体new/deleteするか
0801名前は開発中のものです。
2012/05/18(金) 21:35:11.00ID:0qQFV47b0802名前は開発中のものです。
2012/05/18(金) 22:52:22.12ID:Avt8/Znc>vector自体new/delete
スマポをnewするとか意味ないだろ。
>>796はドヤ顔でSTL勧める本人がSTLを理解してなかった良い例。
0803名前は開発中のものです。
2012/05/19(土) 00:27:03.52ID:VD4oJ3BEメモリはわずかながら消費されていくと思うんだけど、
それってnewが繰り返されてるってことだよね。
アクション性の高いゲームでメインループ内でnewとか使っていいのかな。
普段は軽い処理でも、メモリ確保と開放が絡むと、どこかでカクついたりしないか心配。
気にせずやってるけどカクつきなんて発生したことないよ、ということなら安心なんだけど。
0804名前は開発中のものです。
2012/05/19(土) 00:28:28.08ID:r1qEY4jZDXライブラリでパソコンで動くゲームって当たり前だが
そういうのが逆に新鮮じゃね?
0805名前は開発中のものです。
2012/05/19(土) 00:49:21.53ID:TBtSNI4jもしも、メインループで毎フレームほど行なうっていうのなら、
そういう処理を行なう事自体を、見直す必要があると思うけど。
0806名前は開発中のものです。
2012/05/19(土) 01:02:15.71ID:a+urZXjQ0807名前は開発中のものです。
2012/05/19(土) 01:10:30.26ID:ZOsD1vO4new deleteが重いというけど、なにをnew deleteするかでまた違うのよ。
new int とか new char[32] みたいに1回で終われば気にするほどでもない。
new Hoge で Hogeのコンストラクタの中でまたたくさん new() よばれているような
階層深く大きいクラスのnew, deleteが重いから、
その場合だけオブジェクトプールを検討すればいい。
0808名前は開発中のものです。
2012/05/19(土) 01:27:35.13ID:QmsbQiPL設定されたキャラクターの数だけ配列を宣言する形なんだけど
配列用ポインタを持たせたら、参照先が使い捨てになる。
で、動的に配列の要素数を操作すればポインタで使い捨てじゃなくてもいいんじゃないかと
0809名前は開発中のものです。
2012/05/19(土) 02:35:24.88ID:ZOsD1vO4最大数分のメモリを確保しっぱなしにするって話だろ?
それができる(普通な)規模のステージならそれがいい。
ステージだとかシーンと呼ばれる単位で一括確保・解放できればそれがベスト。
0810名前は開発中のものです。
2012/05/19(土) 09:17:44.64ID:9Hyd3HTN全部メモリ確保してもいいともうけどな
0811名前は開発中のものです。
2012/05/19(土) 10:43:57.82ID:lxOdfsYj一定サイズ以下ならただのプールからの切り出しだし。
0812名前は開発中のものです。
2012/05/19(土) 10:46:39.32ID:VD4oJ3BEオブジェクトはゲーム起動時に最大数をメモリ確保してある前提だったりする。
そこで、mapにinsertするpairが仮にintとポインタだったとして、
insertのときにそのintとポインタ分の小さいnewが起動するし、
eraseのときにはそれがdeleteされると思う。
で、その回数が膨大になったとき、GCみたいな時間くう処理が起動して
カクついたら困るなーと。特にアクション性の高いゲームだと。
たとえばメモリを新たに大量確保する処理が起動して時間くうとか。
そんなものは発生しない、なら、安心してコンテナ使ってゲーム作れるんだけど。
アクション性の高いゲームでも普通にコンテナ使うのが定番だよ、ということなら安心なんだけど、
そのあたりよくわからなくて。
0813名前は開発中のものです。
2012/05/19(土) 11:09:09.97ID:ArUyj87Z具体的なコードがわからないんだよ
class RoundAdmin{
Character character[];
RoundAdmin(int i){
for(int t=0;t<i;t++){
character[i] = new Character;
}
}
}
0814名前は開発中のものです。
2012/05/19(土) 11:09:37.11ID:ArUyj87Z0815名前は開発中のものです。
2012/05/19(土) 11:24:53.82ID:8/80f/4qメモリを確保する時間よりも、メモリが確保できるかどうかが問題だな
コンテナが定番かどうかはこういうのが詳しい
ttp://d.hatena.ne.jp/i-saint/20101012/1286822888
個人・小規模でPCゲー製作ならSTLで充分かと
0816名前は開発中のものです。
2012/05/19(土) 11:38:54.28ID:ArUyj87Zイメージとしてはこれができたら楽なんだ
winmain(~~~~~){
int state;
while(error()){
switch(state){
case 0:
RoundAdmin RAdmin=new RoundAdmin();
break;
case 1:
state=RAdmin.Func();
break;
case 99:
delete RAdmin;
break;
}
}
}
0817名前は開発中のものです。
2012/05/19(土) 11:52:46.30ID:aIMhivPJ0818名前は開発中のものです。
2012/05/19(土) 12:00:09.24ID:gXEjt6C90819名前は開発中のものです。
2012/05/19(土) 12:22:43.39ID:VD4oJ3BEありがとう。参考になる
自分はまさに個人・小規模でPCゲー製作だから、
out of memoryの心配だけはないんだよな
0820名前は開発中のものです。
2012/05/19(土) 12:24:45.52ID:HSIQMcFD0821名前は開発中のものです。
2012/05/19(土) 12:49:35.26ID:JpqeYW60ポリモーフィズムと言え。ややこしい
0822名前は開発中のものです。
2012/05/19(土) 12:58:30.97ID:zRojJiygOGRE3DのAdvancedOgreFrameworkがシーンの使い分けを解りやすく実装してるよ
仕組みだけなので2Dでも十分使える、ただ3DゲームならOGRE3D使ったほうがDXライブラリより楽だけど
0823名前は開発中のものです。
2012/05/19(土) 13:12:00.32ID:dlfQry7wそういえばこの間、少し大きめの構造体の配列を用意しようとしたんだけど
STRUCT_HOGE hoge[1024];
だと実行時エラーで、
STRUCT_HOGE *hoge = new STRUCT_HOGE[1024];
だと問題なく動くってことがあった。
頭では理解してたけど、実際遭遇したのは初めてだった。
0824名前は開発中のものです。
2012/05/19(土) 13:46:07.27ID:PlH7X2T2初心者が良くやるミスだね
0825名前は開発中のものです。
2012/05/19(土) 14:26:49.52ID:1CGbweqQ0826名前は開発中のものです。
2012/05/19(土) 14:51:44.70ID:VD4oJ3BE0827名前は開発中のものです。
2012/05/19(土) 14:53:36.27ID:ZHekMysl0828名前は開発中のものです。
2012/05/19(土) 14:57:27.20ID:VD4oJ3BE0829名前は開発中のものです。
2012/05/19(土) 15:14:52.35ID:GOROOjbN大文字で書かれると分かりにくいのは俺が初心者だからかな
普通小文字じゃない?
0830名前は開発中のものです。
2012/05/19(土) 15:18:21.89ID:ArUyj87Zそれしか方法ないのかなー
最悪、最大数宣言して存在フラグなんだけど
0831名前は開発中のものです。
2012/05/19(土) 16:51:36.07ID:dlfQry7wそれなりにプログラムやってるけど、遭遇したの初めてでなー。
>>829
こういう例示だと、結構使い分けることも多い気がする
0832名前は開発中のものです。
2012/05/19(土) 17:03:35.58ID:ZOsD1vO4>mapにinsertするpairが仮にintとポインタだったとして、
>insertのときにそのintとポインタ分の小さいnewが起動するし、
>eraseのときにはそれがdeleteされると思う。
ツリーマップは木構造のノードに必要なデータ、キー、バリューを
一つの構造体として1回のnew(), delete()で済ませる。
だからstd::listの追加・削除・挿入は比較的速いアルゴリズムと言われてるが、
これとnew(), delete()の回数自体は変わらない。(木構造を辿る負荷は別計算)
でも毎フレームstd::mapに大量の追加・削除されるのって
そもそも連装配列に向いてないペアなんじゃないか?(キーがHPとか?)
例えば >>816 なら関数ポインタ or クラス継承して
ストラテジーパターンのポインタを使うべきだ。
0833名前は開発中のものです。
2012/05/19(土) 17:09:43.18ID:ZOsD1vO4VC++の初期値では、スタックサイズの最大値、ヒープサイズの最大値に
低めの値10MBが設定してあるから、これを超えると例外が発生して終了。
0834名前は開発中のものです。
2012/05/19(土) 17:12:49.37ID:VD4oJ3BE>一つの構造体として1回のnew(), delete()で済ませる。
>これとnew(), delete()の回数自体は変わらない。(木構造を辿る負荷は別計算)
同意。
小さい負荷が積もり積もって、トータルでみれば大きな負荷となること、
その負荷軽減のためのチューニングや根本的な設計の方針については、
いろいろ情報も得やすいし、なんとかなる気がしている。
他言語のGCのような突発的大負荷の心配をしてたけど、
このケースでは、その心配はあまりなさそうという気がしてきた。
0835名前は開発中のものです。
2012/05/19(土) 17:46:09.07ID:pWSSP6VZhttp://toro.2ch.net/test/read.cgi/gamedev/1330000532/
0836名前は開発中のものです。
2012/05/19(土) 18:29:25.01ID:FNz7dsVi0837名前は開発中のものです。
2012/05/19(土) 18:50:09.12ID:aIMhivPJこれでエラー回避出来なくなった人って少なくないんだろうな(合掌)
>>834
GCが動き出すぐらいにメモリーをいじってれば、
いずれはフラグメンテーションの餌食になるだろうな。
そうなったら、メモリー管理の方法を根本から見直した方が良いな。
0838名前は開発中のものです。
2012/05/19(土) 18:56:35.62ID:aIMhivPJ立てるか?それとも俺が立てる?
0839名前は開発中のものです。
2012/05/19(土) 19:20:40.08ID:+n/uAHmA10MBじゃなくて1MB
0840名前は開発中のものです。
2012/05/19(土) 19:59:32.27ID:oQPWMkDdあったほうがいいかも。
軽く雑談できるくらいのスレは確かに欲しい。
ム板はstlやら何やらで分かれまくっててメンドイ。
0841名前は開発中のものです。
2012/05/19(土) 21:40:01.48ID:aIMhivPJ題名:C/C++総合スレッド Part1
ゲーム製作におけるC/C++全般に関するスレです。
元スレ
DXライブラリ 総合スレッド その12
http://toro.2ch.net/test/read.cgi/gamedev/1330000532/
0842名前は開発中のものです。
2012/05/19(土) 21:51:45.49ID:VD4oJ3BE知ってる人がいたらテンプレに入れてみては?
俺は不勉強ゆえDXライブラリしか知らないけど…
0843名前は開発中のものです。
2012/05/19(土) 22:19:17.33ID:oQPWMkDdboostとかsdlとかwtlとか
0844名前は開発中のものです。
2012/05/20(日) 02:25:40.47ID:b4J8kKZD誰かメインループ中でラウンド管理クラス(キャラクター数、オブジェクト数などのゲーム本体を管理するクラス)
を作りたいんだけど!
全然わからん。綺麗にできない。
ラウンド管理クラスを、例えばゲームのロード画面時にパッとnewして
キャラクターをその分だけパッとメンバの配列を動的に宣言して
リザルト画面に戻ったらパッとdeleteしたい
0845名前は開発中のものです。
2012/05/20(日) 02:28:54.36ID:rvG7rk610846名前は開発中のものです。
2012/05/20(日) 02:43:46.36ID:m1rxCUFY0847名前は開発中のものです。
2012/05/20(日) 03:09:05.33ID:b4J8kKZDキャラクターのクラスをラウンドクラスで配列で持って管理するっていう方法を想定して作ったんだよ
ラウンドクラスをコンストラクタの引数で指定されたファイルでマップやキャラクターや武器を初期化して
このラウンドクラスはその名の通りラウンド中は保持してラウンドが切り替われば新しく作る。
というのがしたいんだ。
だから
switch(hoge){
case 0:
hoge=func();
case 1:
Round round=new Round();
hoge=2;
break;
case 2:
hoge=round.main();
break;
case 3:
delete round;
hoge=0;
break;
}
これがしたい
case0がメニューで1で初期化(つまりロード画面?)2がメインゲーム、3がリザルト画面
みたいな
0848名前は開発中のものです。
2012/05/20(日) 03:12:36.92ID:b4J8kKZDstaticにすれば、ひょっとしたら言語特性でできるかもしれないし
でもそうするとdeleteしても消えないかもしれないし
0849名前は開発中のものです。
2012/05/20(日) 03:26:03.65ID:m1rxCUFYそのソースごと真似すればいいんじゃないかな
スコープはC/C++では割と基礎的なところなんで、そこの理解がまだ足りないうちに
そこまで高度・大規模なことを「そらで」やろうとしても挫折してしまうと思う
手本があるなら手本を理解するまでやったほうがいい、その意味で、手本の真似が足りない
0850名前は開発中のものです。
2012/05/20(日) 04:19:36.26ID:rvG7rk61>ストラテジーパターンのポインタを使うべきだ。
switchをやめろ。
0851名前は開発中のものです。
2012/05/20(日) 04:32:17.32ID:ETYUDOJj0852名前は開発中のものです。
2012/05/20(日) 05:20:07.65ID:J67XAZ6b0853名前は開発中のものです。
2012/05/20(日) 06:11:28.75ID:rvG7rk61>>847 のプログラミングからは駄々漏れ臭いがぷんぷんする。
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
ゴリ押しおまじないプログラミングは危険だぜ。
0854名前は開発中のものです。
2012/05/20(日) 08:54:21.16ID:jxpb7tAX無理すんな。普通にやれw
0855名前は開発中のものです。
2012/05/20(日) 09:17:03.32ID:GdVgJDsL0856名前は開発中のものです。
2012/05/20(日) 09:24:37.57ID:rvG7rk61http://mint.ninja-web.net/dpp/index.html
0857名前は開発中のものです。
2012/05/20(日) 09:33:19.40ID:QwDamEGAメンバ変数にでも保持しておかないと、
スコープ抜けたらローカル変数は保持できないので、結果的にメモリリークする
まあ、>>849がFAだと思うが
0858名前は開発中のものです。
2012/05/20(日) 09:47:55.18ID:b4J8kKZD確かにswitchはオススメしないって言われた
お手本のコードは無いです。
メインループのこの部分(タイトル画面やメインゲームやオプション画面の変異)って
どのようにした方がいいですか?
他の方法がわからない
今思いついたのは
NowState=&Start();
while(~~~){
NowState=NowState();//次に実行するべき関数のアドレスを返す
}
0859名前は開発中のものです。
2012/05/20(日) 09:49:23.86ID:b4J8kKZD0860名前は開発中のものです。
2012/05/20(日) 09:50:46.90ID:GdVgJDsL0861名前は開発中のものです。
2012/05/20(日) 10:17:37.19ID:K5FhX9FA0862名前は開発中のものです。
2012/05/20(日) 10:21:43.19ID:b4J8kKZDクラスは自分が管理クラス(今回の場合はラウンドクラス)から渡されたデータを使って処理を行う。
例えば一連の流れをいうと
キャラクターが攻撃を行ったら判定クラスのメソッドが呼ばれ
判定クラスのメンバ変数ポインタからキャラクターの情報を貰って
判定結果がtrueならダメージ処理クラスに攻撃方法と対象と攻撃者が渡されるメソッドが呼ばれ
ダメージ処理クラスが持っているキャラクターの情報を貰って
HPが0ならキャラクターに死亡フラグを立て、UIクラスのメソッドに攻撃者と対象を渡す。
つまりキャラクタークラス→判定クラス→ダメージ処理クラス→UIクラス
とバトンリレーになってる。
この時、キャラクタークラスや判定クラスやダメージ処理クラスは、キャラクターの情報を持ってないと仕事にならないのでラウンド管理クラスが保持している。
イメージとしてはクラゲと、クラゲの触手
class RoundAdmin{
Character character[];
Judge judge;
Damage damage;
public:
void SetCharaNum(int);
void SetJudgeClassChara(Character* hoge){damage.SetChara(hoge);};
void SetDamageClassChara(Character*);
}
以上のことを踏まえて誰か中央部の設計お願いします。もう設計の最初からやり直しするのは嫌ですヽ(;▽;)ノ
0863名前は開発中のものです。
2012/05/20(日) 10:39:42.64ID:b4J8kKZDhttp://d.hatena.ne.jp/selvaggio/touch/20060821/1156148509
関数ポインタ?をスタックしまくるんですか
でもタイトルシーン→ゲームシーン→リザルトシーン
という流れがあった場合リザルトシーンを予めタイトルシーン時にリザルトをpushしなきゃならないってことですよね
0864名前は開発中のものです。
2012/05/20(日) 10:48:07.65ID:rvG7rk61C++だと相互参照するのに嫌な制限あるから難しいよね。
>>856のサンプルに入ってるソースではデータと振る舞いを分けちゃってますが、
クラスを名前だけ前方宣言してダブルディスパッチするほうが一般的なのかなぁ。
0865名前は開発中のものです。
2012/05/20(日) 11:49:53.71ID:rvG7rk61こうか?
class Charactor
{
__int HP;
__bool isDead;
__void Attack(Charactor* target, How* how)
__{
____Judge judge;
____bool is = judge.IsHit(target);
____if( is )
____{
______Damage damage;
______damage.Set(this, target, how);
______if( HP == 0 )
______{
________isDead = true;
________UI ui;
________ui.Set(this, how);
______}
____}
__}
};
0866名前は開発中のものです。
2012/05/20(日) 11:56:57.34ID:rvG7rk610867名前は開発中のものです。
2012/05/20(日) 14:50:25.73ID:b4J8kKZDそれぞれの返り値がないから
例えばjudge.ishit()っていうメソッドの中でdamageを定義してメソッドを呼んでる
こう・・・
class Charactor
{
int HP;
int x,y;
double Angle;
bool isDead;
RoundAdmin* Admin;
void Attack(int Kind){
Admin->judge.IsHit(this,x,y,Angle,Kind);
}
};
class Judge{
RoundAdmin* Admin;
void Judge(RoundAdmon tmpAdmin){
Admin=tmpAdmin;
}
void IsHit(Attacker,x,y,Angle,Kind){
for(int i=0;i<Admin->CharaNum;i++){
if(~~~){
Admin->damage.func(Attacker,i,Kind);
}
}
}
}
0868名前は開発中のものです。
2012/05/20(日) 14:50:56.96ID:b4J8kKZD0869名前は開発中のものです。
2012/05/20(日) 14:54:58.64ID:d1pNr8pV{
TITLE,
MAIN,
ENDING,
};
int state = TITLE;
int main(void)
{
while()
{
func[state]();
}
}
0870名前は開発中のものです。
2012/05/20(日) 15:33:37.24ID:GdVgJDsLゲームオーバー処理の時にゲームシーンをpopして、そのままゲームオーバーをpushすればいいんじゃないの?
0871名前は開発中のものです。
2012/05/20(日) 16:09:24.24ID:b4J8kKZD逆だと思ってました(popしたものが実行されると思ってた)
そういうことですか
>>869
func[MAIN]関数内で保持したい変数ってどうすればいいんですか?
func[MAIN]以外が呼び出されたら消えて欲しいです。
あと今更ですが質問厨でウザいですし基本設計の質問はDxlibスレでスレチだった・・・
0872名前は開発中のものです。
2012/05/20(日) 18:03:42.86ID:B+9uILOG0873名前は開発中のものです。
2012/05/20(日) 18:16:08.20ID:eBiE/F9zCharacter*30 // Characterという変数と30の乗算(演算子オーバーロードがされていない場合)
Character*=10 // Characterという変数に30を乗算し代入(演算子オーバーロードがされていない場合)
/*Character*/ // コメントの終端
どれでもお好きな物をどうぞ
C++のスレがないってのは
ここで質問して良いって言う理由にはならないからな?
■ このスレッドは過去ログ倉庫に格納されています