【初心者】スレを立てる前にココで質問を【Part17】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/05/11(日) 03:14:48ID:lWW0Pcx0スレッドを立てる前にはローカルルールを読みましょう。
http://pc8.2ch.net/gamedev/
※ >>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://gamdev.org/w/
ゲーム製作技術板公式アップローダ
http://gamdev.org/up/
ゲーム製作技術板公式掲示板避難所
http://bbs.gamdev.org/gamedev/
ゲーム製作技術板予備
http://yy13.kakiko.com/gamdev/
アップローダー予備
http://gamdev.hp.infoseek.co.jp/
gamdev.orgが落ちるたびにあげてみるスレ
http://pc8.2ch.net/test/read.cgi/gamedev/1107022166/
0242名前は開発中のものです。
2008/06/11(水) 02:26:47ID:dl2UA+Ho適当に決めてから調整していくしかありませんか?
0243名前は開発中のものです。
2008/06/11(水) 03:03:06ID:UjwNo3Ti経験点の取得方法はゲームによって異なるから、その計算式は自分で導き出すしかないんだけどな。
敵を倒すと経験点がもらえるのか、
プレイヤーの操作(スキル)によって与えられるのか
って書こうとしたけど眠くて力尽きた。おやすみ
0244243
2008/06/11(水) 12:22:37ID:ezoaWSsV興味があるならこっちへおいで。
◆ 神のゲームバランスを実現するには 3 ◆
http://pc11.2ch.net/test/read.cgi/gamedev/1103652057/
0245名前は開発中のものです。
2008/06/11(水) 12:43:34ID:dl2UA+Hoありがとうございます、勉強してきます
0246素人
2008/06/11(水) 23:10:57ID:pnwQC7GC理由が分かる方、お願いします。教えてください
0247名前は開発中のものです。
2008/06/11(水) 23:18:02ID:klFSvztV> なんかクリックできないのです。
マウスのボタンが堅くて押せないとか?
というのは冗談だけど、実行ボタンだかコンパイルボタンだかが無効になってるのは
「今開発しているプログラムがどのファイルをどんな風に使っているのか」を登録する
プロジェクト情報が無いからなんじゃないかと思う。
borland C++は使ったことが無いけど、新規プロジェクトやワークスペースを作成する
みたいな項目は無いですか?
0248名前は開発中のものです。
2008/06/12(木) 02:14:29ID:Uc2wXT7lhttp://www.tohofuhai.com/ 豆腐ゲームコンテスト
http://kirara111.sakura.ne.jp/ 星屑きらら杯
http://3punge.com/ 3分ゲーコンテスト
0249名前は開発中のものです。
2008/06/12(木) 05:50:43ID:gzO65s1Eひとつだけ劣悪なものを混ぜてるなw
残り二つとはどう考えても釣り合わない地雷コンテスト
0250名前は開発中のものです。
2008/06/12(木) 08:28:39ID:1Dxos4zW見てるんですが、タスクについて質問があります。
goluahには3つのタスクの種類があるみたいなんですが
それぞれどういう役割があるんでしょうか?
・通常タスク
・常駐タスク
・排他タスク
よろしくお願いします。
0251素人
2008/06/12(木) 10:14:46ID:YCgQbZ2qワークスペースは分かりませんが、新規プロジェクトというのはあります。
0252名前は開発中のものです。
2008/06/12(木) 12:54:09ID:aAoeQ5MpBorlandC++と勉強中(フリーソフト?)ってあたりからエスパーすると
もしかしてとBCC Developerと組合わせて使ってるのか?
もしそうならコード打ち込んだ後メイクボタン押した?エラー無く完了した?
つか、いくら素人でわからないって言ってももう少し詳しく書かないと答えられないと思うが。
0253名前は開発中のものです。
2008/06/12(木) 16:21:11ID:gzO65s1Eソース読まずにESP
通常→キャラとか弾とか
常駐→名前のとおり。ゲーム起動から終了まで存在するインスタンス
排他→番兵
多分これで正解だ。つか、おめーソース読んでねーだろ
カルト教団に入信してお布施して松浦尊師のタスクシステム本でも買っとけ
0254素人
2008/06/12(木) 20:56:36ID:YCgQbZ2q** error 1 ** deleting Debug\spgame02.exe
Make End !! (Elapsed time 0:00.375)
ってな感じになります。・・・errorって出てますね・・・
0255名前は開発中のものです。
2008/06/12(木) 21:18:00ID:gzO65s1Eそれはメッセージの通りだな
リンカがVORBISFILE_STATIC.LIBを見つけられないんだ
ライブラリを置いてる場所にパスを通してないんだろ
0256名前は開発中のものです。
2008/06/12(木) 23:00:22ID:xs8x640a多くの物体同士の当たり判定(1対1ではなく、多対多の当たり判定)ってどうするんですか?
全ての組み合わせでやると物凄い計算量になってしまいそうです。
999+998+987+986...といった具合に。当たり判定にはバウンディングボックスを使います。
0257名前は開発中のものです。
2008/06/12(木) 23:54:28ID:gzO65s1E物凄いがどの程度の話なのか知らんけど、富豪厨の俺は
数年前のモバイルノートで1000発のAABB相互作用を力任せ法でやったが
結果は余裕だった。この程度の処理量なら鼻糞だ
それっぽい総当り処理のサンプルソースは某スレに貼ったことあるが
そんなクズソース見なくてもできるだろ
0258名前は開発中のものです。
2008/06/13(金) 00:29:37ID:/jwDkXsA何らかの方法で計算量を抑えるようにすればいいってことだよな。
あと、数が多いと、ちょっと1つあたりの計算量を減らすだけで大幅に変わったりするので
厳密にやらずに適当にやる、とかも効果的だったりする。
0259名前は開発中のものです。
2008/06/13(金) 04:43:05ID:O4NLI/1rhttp://www.tohofuhai.com/ 豆腐ゲームコンテスト
http://kirara111.sakura.ne.jp/ 星屑きらら杯
http://3punge.com/ 3分ゲーコンテスト(今休止中)
何でもかんでも詰め込もうとしないで、切り捨てるとこころは切り捨てて
完成させねば。。
0260名前は開発中のものです。
2008/06/13(金) 10:03:33ID:FGpNXRkP星屑きららはやめといた方がいいぞ
主催がDQNてことで知れ渡ってる
詳細はノウハウ板の止めとけスレ
あるいはこの板の語るスレ辺りで
0261名前は開発中のものです。
2008/06/13(金) 11:13:31ID:hIYZdXb5マルチで宣伝うぜー
0262名前は開発中のものです。
2008/06/13(金) 15:01:22ID:xNnxVjQDよく分からんけど、投稿作品一覧のコメントを見て色々と酷いことだけは分かった。
神のゲームバランススレが落ちそう。誰か立てて。
0263名前は開発中のものです。
2008/06/13(金) 17:21:08ID:iI+lriih全画面スクロールさせるとズレが上から下に移動しているのが分かる。
0264名前は開発中のものです。
2008/06/14(土) 08:10:31ID:Vx/ilw+o液晶の駆動回路が生成するVSYNC信号無視してフレッシュレート60Hzと
決め付けて高精度タイマーでタイミング取って60Hzでフレーム切り替えしても
2Dスクロールのガタツキは体感できても
上側=旧フレーム、下側=新フレーム、みたいな現象は視認できないような
気がするんだが、実際どうなの?
と、未だにトリニトロン管を使ってるマイノリティの俺
体感できなくね?思うのだが
0265名前は開発中のものです。
2008/06/14(土) 08:12:18ID:Vx/ilw+o0266名前は開発中のものです。
2008/06/14(土) 09:41:01ID:WEqkvEOPそれ関係のオープンソースや、作り方のHow to とか載ってるサイトや本ってありますか?
0267名前は開発中のものです。
2008/06/14(土) 10:17:32ID:yvWyvXqlうちのPC2台だと視認できるよ
察するところ、ビデオカードからディスプレイ端子に出力された信号自体が
「上半分と下半分で1フレーム分違う」状態なら、それがきっちり反映されるんだろう
0268名前は開発中のものです。
2008/06/14(土) 19:50:19ID:nT6UYhMt使用言語:C++ 開発環境:製品版VisualStudio2005
問題の部分は恐らくPlayer.cpp&.h Enemy.cpp&.hだと思います
Playerクラスのvoid GetDistance2Target(Enemy *e);という宣言(定義は空実装)に下記のビルドエラーが発生します
error C2061: 構文エラー : 識別子 'Enemy'
Enemyクラス(Playerクラスがフレンド)があるヘッダもインクルードしてあります
Aクラスを宣言し引数を(A *e)に変更するとエラーは発生せずその後AをEnemyに書き換えビルドをするとエラーが発生しません
ただPlayerクラスがあるヘッダを1行でも書き換えると上記のエラーが再び発生します
0269名前は開発中のものです。
2008/06/14(土) 19:56:25ID:BjxsUuMKそのヘッダファイルの上のほうに
class Enemy;
と書く
0270名前は開発中のものです。
2008/06/14(土) 20:12:45ID:nT6UYhMtありがとうございました
簡単に解決できるような事を聞いて申し訳ないです
オブジェクト指向の概念ばかりでなくプログラムも弄って勉強するように努めます
0271名前は開発中のものです。
2008/06/14(土) 21:09:31ID:uDqAdFXoオブジェクト指向自体ももっと勉強汁
そのクラスの関係は悪手
0272名前は開発中のものです。
2008/06/15(日) 12:24:09ID:EcGkhplhレスd
そうか。つかよく考えたらビデオカードはあくまでも伝送方式(アナログRGBやDVI
インターフェースの仕様)に従って映像信号を出力(アナログRGBならHSYNC
検知する毎に画面上端ラインから順に、デジタル方式のDVI-DやHDMIも
上端ラインから順だったかな)してるんだよな。だから、例え出力装置の中で
画面切り替えが一瞬で行えようとも、CRTと違いスキャンラインの概念がなかろうとも
ケーブル経由の伝送に時間をかけていれば上側=旧フレーム、下側=旧フレーム
という現象は起きるのか
0273名前は開発中のものです。
2008/06/15(日) 12:46:49ID:EcGkhplh○下側=新フレーム
0274名前は開発中のものです。
2008/06/16(月) 01:42:19ID:jf5cBPIEおしえて /. : : : : : : : : : \
/.: : : : : : : : : : : : : : ヽ
,!::: : : :,-…-…-ミ: : : : :',
{:: : : : :i '⌒' '⌒' i: : : : :}
{:: : : : | ェェ ェェ |: : : : :}
. , 、 { : : : :| ,.、 |:: : : :;!
ヽ ヽ. _ .ヾ: :: :i r‐-ニ-┐ | : : :ノ
} >'´.-!、 ゞイ! ヽ 二゙ノ イゞ‐′
| −! \` ー一'´丿 \
ノ ,二!\ \___/ /`丶、
/\ / \ /~ト、 / l \
/ 、 `ソ! \/l::::|ハ/ l-7 _ヽ
/\ ,へi ⊂ニ''ー-ゝ_`ヽ、 |_厂 _゙:、
∧  ̄ ,ト| >‐- ̄` \. | .r'´ ヽ、
,ヘ \_,. ' | | 丁二_ 7\、|イ _/ ̄ \
i \ ハ |::::|`''ー-、,_/ /\_ _/⌒ヽ
0275名前は開発中のものです。
2008/06/16(月) 13:54:36ID:V29OceOR実行時にデコードしているんですよね?
特にOGGはデコードが遅いと聞きますが、
だったら最初からWAVEにしないのはどういった理由なのでしょうか?
0276名前は開発中のものです。
2008/06/16(月) 14:10:08ID:CWBMeGpPそれにいまどきのエンコーダならoggも遅くない。
0277名前は開発中のものです。
2008/06/16(月) 14:10:30ID:yolkQjtt圧縮できることのメリットすべて
>特にOGGはデコードが遅いと聞きますが
実際にはMP3より少し遅いくらい。(エンコードはかなり遅い)
使うライブラリにもよるが、公式の実装でもあまり問題にならないよ。
このへんは実際にストリーミング再生させて
ゲーム中にどのくらいCPU食ってるのか数字出さないと議論にならんよ。
0278名前は開発中のものです。
2008/06/16(月) 14:10:38ID:CWBMeGpP○デコーダ
0279275
2008/06/16(月) 14:43:16ID:V29OceOR返信ありがとうございます。
ということは、WAVEがダメなところはメモリ消費量だけでしょうか?
メモリを気にしなければ数MBあるWAVEをBGMとしても問題ない
ということでしょうか?
デコードしない分CPU負荷も少ないですし
0280名前は開発中のものです。
2008/06/16(月) 14:51:04ID:il/CiK3K0281名前は開発中のものです。
2008/06/16(月) 14:54:56ID:ELtfR4NDまぁそうだけど、44kHz・16ビット・ステレオのwavで、1分≒10MBだぞ
0282名前は開発中のものです。
2008/06/16(月) 15:07:51ID:S6nxqRuD正直俺は、mp3の128位とwav44kHz・16ビットの音質の違いが解らん。
それでもwavが良いんだ!と言うこだわりが無ければ、
データは小さければ小さい程、色々良いと思うな
0283275
2008/06/16(月) 16:07:30ID:V29OceOR今時のPCならmp3やoggのストリーミングも気にならないようですし、
oggでいこうと思います。
大変参考になりました。
返信ありがとうございました。
0284名前は開発中のものです。
2008/06/16(月) 16:55:24ID:uX6B7Jne0285名前は開発中のものです。
2008/06/16(月) 16:58:18ID:uX6B7JneBGMとか長くなりそうなものはmp3やoggなどの圧縮ファイルを使い、
効果音のような比較的短く、かつ再生タイミングがシビアなものはwaveそのまま、なんて人もいる。
あと、ウェブでダウンロードさせるのと、コミケでCDを頒布するのとでは
状況がまた違うから、そこで分けてる人もいるようだ。
0286名前は開発中のものです。
2008/06/17(火) 02:25:10ID:k5Hbpskcどういう風にして実装してます?
C++という想定で
1.行動を決定するメンバ関数(update()とか)に大量のif文を突っ込んで処理
2.敵クラスは、staticな関数へのポインタをもち、指し示す関数を入れ替えることでAIを切り替える
関数にthisポインタを渡して処理
3.敵クラスは、AIクラスへのポインタをメンバとしてもち、
指し示すAIクラス(の継承クラス)を入れ替えることでAIを切り替える
で、AIクラスのメンバ関数にthisポインタを渡して処理
1が簡単だけど、2、3は同じAIを複数の敵クラスで共有できるって言う利点がありますよね
0287名前は開発中のものです。
2008/06/17(火) 02:48:32ID:sJZvekW7いわゆるストラテジパターンというやつ。
あとはメンバ関数へのポインタを使って入れ替えるとかね。
class Hoge {
private:
// メンバ関数型を定義
typedef void (Hoge::*ACTION_PTR)(void);
// メンバ関数へのポインタを格納する変数
ACTION_PTR action;
public:
// 行動のセット
void action1(void) {}
void action2(void) {}
void action3(void) {}
// コンストラクタで初期値を設定
Hoge() { action = &Hoge::action1; }
// 同様の構文でメンバ関数を変更可能
//ポインタを通してメンバ関数起動
void update(void) { (this->*action)(); }
};
0288名前は開発中のものです。
2008/06/17(火) 09:37:29ID:XINqrfBX0289名前は開発中のものです。
2008/06/17(火) 15:08:42ID:sS8dV5wo>>287
C++はよくわからんが、行動のセットってクラス外にださんの?
なんか見通しが悪い気がするんだが
0290名前は開発中のものです。
2008/06/17(火) 23:15:33ID:sJZvekW7そうかな?
データと行動セットをひとまとめにして隠蔽しちゃうことにも、
それなりにメリットあると思うんだけどね。
一回作っちゃえば後から考えなくても良い。
でもまぁ、「ふるまい」クラスを作れば、他のクラスにも適用できるというメリットはあるね。
個人的にはオープンすぎるのは逆に不整合を起こしがちだから苦手だけれども。
0291名前は開発中のものです。
2008/06/18(水) 21:31:16ID:WrwNxCgo0292名前は開発中のものです。
2008/06/18(水) 23:30:26ID:kSLx4lcSこの板の人たちはPSPとかDSとかwiiとかのすごいかんじのゲーム作ってるの?
それともケータイのアプリみたいな簡単な作りっぽいゲーム作ってるの?
パソコンでやるゲームを作ってるの?
ネットしてたら、なんか餌とかあげたらなついて誰が一番なついてるみたいなランキング付きのペット育成みたいなんあるじゃん
あんなん勉強したら一人でつくれる?
お金かかる?
作ってみたい
0293名前は開発中のものです。
2008/06/18(水) 23:32:07ID:O5zucpEm0294名前は開発中のものです。
2008/06/18(水) 23:53:36ID:Q1s+fteM紙ですごろく作ったっていう話は聞かないな。
ほとんどがPCで動作するものを前提に話を進めてる気がする。
0295名前は開発中のものです。
2008/06/19(木) 00:05:06ID:g8qpIga7PSPとかコンシューマハード向けのゲーム開発は、
ゲームカテゴリーの裏技・改造板の方が詳しい
ゲーム製作技術板は基本的にPC向け
内容はファミコンみたいなミニゲームもあるし、
2000円で販売して飛ぶように売れるゲームを作る人もいる
開発環境はタダで手に入る(Visual Studio Expressでググれ)し、
情報はネット上に転がっているので、金はかからない
出来れば専門の本を買うか、図書館で手に入れて読んだほうが良いけど
ゲームを一人で作るのは限界があるよ
プログラムは勉強するとしても、絵や音楽はどうする気だ
テキストベースのゲームなんて豪快なことしたら誉めてやるが
0296名前は開発中のものです。
2008/06/19(木) 00:17:48ID:VxrSErVzちょっと楽しそうな板だから勉強してみる
絵くらいはなんとか書くよ 音は鳴らなくてもいいやw
暇潰し程度のもんをネットにあげてみたいな
0297名前は開発中のものです。
2008/06/19(木) 12:39:21ID:8LUlnvdl0298名前は開発中のものです。
2008/06/19(木) 21:41:06ID:/TWRozlQ0299名前は開発中のものです。
2008/06/20(金) 17:43:56ID:HYR3VEF9if(Aの取得){
if(Bの取得){
if(Cの取得){
if(Dの取得){
if(Eの取得){
処理
Eの開放
}
Dの開放
}
Cの開放
}
Bの開放
}
Aの開放
}
0300名前は開発中のものです。
2008/06/20(金) 18:56:25ID:smksGIRq0301名前は開発中のものです。
2008/06/20(金) 22:12:26ID:0jFV+g1O0302名前は開発中のものです。
2008/06/22(日) 00:46:33ID:Nh8dlMcG勉強の為、C++で2Dのシューティングゲームを作っています。
自機や敵などのアニメーションを作ってみたいのですが、
何か一般的な手法とかありますでしょうか?
0303名前は開発中のものです。
2008/06/22(日) 00:54:26ID:i0gJBqIP爆発するアニメのコマを一つずつ用意して適当な時間間隔ですり替えていく。
ちょっとプログラミング技術を要する。
0304302
2008/06/22(日) 02:26:24ID:Nh8dlMcGレスありがとうございます。
その手法はなんとなくイメージできたので試してみたいと思います。
実際にプログラムで処理するとしたら、
アニメのコマの範囲や、切り替えの間隔をを管理するようなテーブルみたいなのが必要そうですね。
とりあえず現状は試しでソースにテーブルを直接書いてみる事にしますが、
キャラクタやらアニメーションのパターンやらが増えてきたら、
ソースに直接手書きで作成とかだと効率悪いような気がしました。
アニメーション管理に使えそうなツールとかあるのかな?
その辺も探してみようかと思います。
ありがとうございました。
0305名前は開発中のものです。
2008/06/22(日) 11:08:20ID:g06tuC8Kやり方なんて幾通りもあるが、その方法で別に問題ないと思う。
アニメ管理ツールみたいなのは見たことがある。
企業だと確実に有るだろうな。
0306名前は開発中のものです。
2008/06/22(日) 11:33:19ID:GKAOzkXe絵描きとプログラマが別人だとツール無しじゃやっとれんかもね。
俺は複数人での製作経験無いけど。
勉強も兼ねてるんならツール一式も自前で作ってみたらどうだろう。
0307名前は開発中のものです。
2008/06/22(日) 18:39:39ID:8b6P9lU/で、いままですっかり忘れていたんですが、メニュー画面ってどうやって実現しましょう
void main(){
/*画面とかデバイスの初期化とか*/
int select;
while(true){
select = menu(); //メニュー画面
switch(select){
....
}
}
}
で、selectに応じてゲームを始めたり、オプション画面を出したり?
0308名前は開発中のものです。
2008/06/22(日) 19:01:36ID:PrpfkLMiそれと同じで良いと思うんだが・・・。
0309名前は開発中のものです。
2008/06/22(日) 19:11:44ID:8b6P9lU/>>308
ゲームそのものはゲームクラスをインスタンス化して、
そのメソッドをmain関数内のループから呼び出してます
0310名前は開発中のものです。
2008/06/22(日) 19:20:28ID:PrpfkLMi0311名前は開発中のものです。
2008/06/22(日) 19:22:40ID:g06tuC8Kwhile(1)
{
if (フラグ==タイトル ) タイトル画面( );
else if (フラグ==キャラセレ ) キャラセレ画面( );
else if (フラグ==ゲーム本編) ゲーム本編( );
}
これでいいんじゃない?
0312名前は開発中のものです。
2008/06/22(日) 20:25:34ID:iT3uPeFi"デザインパターン"でググるといいかも
0313名前は開発中のものです。
2008/06/23(月) 00:11:11ID:T4uoidjVvoid draw()
void move();
}
class Title : public Scene{
...いろいろ
}
class CharaSelect : public Scene{
...いろいろ
}
こんな感じで
currScene = new Title():
シーンごとに作るのがswitch使わなくてスマートになるんじゃないの?
0314名前は開発中のものです。
2008/06/23(月) 00:45:50ID:mDDnsWDdそれでどうやってswitch使わなくて済むかよくわからないのですが
while(1){
switch(scene){
case TITLE: currScene = new Title(); break;
case CHARA_SELECT: currScene = new CharaSelect(); break;
....
}
currScene->move();
currScene->draw();
}
自部のがちょうどこんな感じになってるんですがいい方法あるんですかね?
0315名前は開発中のものです。
2008/06/23(月) 00:59:18ID:fMSgUVEhp=move()
if(p!=NULL){
delete currScene;
currScene=p;
}
我ながら汚すぎて噴いた
0316名前は開発中のものです。
2008/06/23(月) 01:03:30ID:jZlgp0tw状態が多くないならそれでいいと思うけど
自分はこんな感じ
class Scene{
virtual void draw() = 0;
virtual void move() = 0;
}
enum SCENE{ TITLE, SELECT, SCENEMAX };
SCENE now_int;
*Scene now;
*Scene scene[SCENEMAX] = { &title, &select};
while(1){
now = scene[now_int];
now->move();
now->draw();
}
0317名前は開発中のものです。
2008/06/23(月) 01:07:53ID:fMSgUVEh0318名前は開発中のものです。
2008/06/23(月) 01:15:36ID:T4uoidjVclass Scene{
virtual void draw() = 0;
virtual void move() = 0;
virtual Scene sceneChange() = 0;
}
Scene * next;
if( ( next = currScene->sceneChange() ) != NULL )
{
currScene = next;
}
だめかw
0319名前は開発中のものです。
2008/06/23(月) 01:25:34ID:jZlgp0twtitleとかの状態のクラスが
0320名前は開発中のものです。
2008/06/23(月) 01:32:04ID:uo+1ccfkint SceneManager::receiveMessage(Message* pMsg, int param1, int param2, int param3, int param4)
{
switch (pMsg->getType()) {
case MSG_CHANGESCENE:
assert(SCENE_ID_MIN <= param1 && param1 <= SCENE_ID_MAX);
m_pNextScene = m_allScenes[param1];
break;
}
return SUCCESS;
}
int SceneManager::execScene()
{
if (m_pNextScene != NULL) {
Scene* current = m_pCurrentScene;
Scene* next = m_pNextScene;
current->onExit();
next->onEnter();
m_pCurrentScene = next;
m_pNextScene = NULL;
}
return m_pCurrentScene->execute(this);
}
0321名前は開発中のものです。
2008/06/23(月) 09:12:21ID:cIfICiuE// STLのlist(線形リスト)でSceneを管理するんだよ。
// (案外、スタックでもいいような気がするなー)
// (*1)Scenario::start()でシナリオが開始されて、
// (*2)登録されたScene::start()を呼び出すの。
// あ、Scene::start()っていうのは、そのシーンを開始するメソッドね。
// それでね、Sceneの中で次のシーンが決まったら、
// (*3)Scenario::addScene()で、次のシーンを登録して、
// 今実行中のシーンはただちに終わればいいの。
// (*4)登録されたシーンが全部無くなったらゲーム終了ね。
// ところで、これだけの長文読むより、プログラムを読む方が簡単に思えてくるだろ
list<Scene*> Scenario::scenelist;
void Scenario::start() // (*1)
{
while ( scenelist.size() > 0 ) { // (*4)
Scene* s = scenelist.front();
(*s)->start(this); // (*2)
scenelist.pop_front();
}
}
void Scenario::addScene(Scene* scene) // (*3)
{
scenelist.push_back(scene);
}
0322名前は開発中のものです。
2008/06/23(月) 22:43:25ID:SqRC+pBQそういえば関数ポインタや多態は最適化が効かないから
速度的に不利って話どうなの?
0323名前は開発中のものです。
2008/06/23(月) 23:23:03ID:0j4G1ygb0324名前は開発中のものです。
2008/06/23(月) 23:36:23ID:/qtuGijzいわれてきづいたけど、小規模のシーン管理だとswitchとかifのほうがいいとおもた
RPGぐらい画面遷移が複雑だとクラスのほうがいいかもしれんけど
>>速度的に不利って話どうなの?
とりあえずクラス自体がわりと重いっぽい、いろいろ調べたら早くする方法が書いてあって
それ全部使えば矩形の当たり判定なら数千個までいけると思う
0325名前は開発中のものです。
2008/06/24(火) 19:19:07ID:YG9wxXVw0326名前は開発中のものです。
2008/06/24(火) 20:37:20ID:qocbnAno0327名前は開発中のものです。
2008/06/24(火) 23:07:53ID:nk5lzdPAいまどきnewくらいで……と富豪厨化する
ていうか、それが俺
0328名前は開発中のものです。
2008/06/24(火) 23:12:47ID:vNDV7jMM0329名前は開発中のものです。
2008/06/25(水) 03:01:35ID:c0GyxKOTたぶん学歴が低い。
0330名前は開発中のものです。
2008/06/25(水) 03:23:39ID:LrDWXSL90331名前は開発中のものです。
2008/06/25(水) 20:09:54ID:/Pf8ls+r0332名前は開発中のものです。
2008/06/25(水) 21:18:20ID:4PLXCLdLただ、VMレベルでコストが高いと言っている可能性もあるけどな。
0333名前は開発中のものです。
2008/06/25(水) 21:58:19ID:zW+uiCng関数や変数へのアクセスコストが全体的に割高になるという意味でなら納得。
0334素人
2008/06/26(木) 00:03:25ID:FJtaI/dg現実はもっと厳しいものなのでしょうか?
0335名前は開発中のものです。
2008/06/26(木) 00:53:43ID:J+99J/hz考えたのは、入力された上下左右を保存しておいて、一個遅らせながら次のキャラに適応って感じなんですが
うまくいかないです。どういう考え方をすればいいんでしょ?
0336名前は開発中のものです。
2008/06/26(木) 00:58:21ID:7RoWXjdF実装でミスってるんじゃない?
0337名前は開発中のものです。
2008/06/26(木) 01:00:06ID:J+99J/hzそうですか、もう一遍見直してきます
0338名前は開発中のものです。
2008/06/26(木) 04:03:21ID:08fIa4T9ゲーム会社であることは、おそらく全く関係が無い。
0339名前は開発中のものです。
2008/06/26(木) 10:07:11ID:TBkGU+/r実際業務中にここ来てる奴も居るだろ。
俺含め、普段コンシューマやってて趣味でwindowsプログラム
してる奴とか。
0340名前は開発中のものです。
2008/06/26(木) 11:43:02ID:MvZUxeyNすごい人は極一部で語るスレみたいなゴミがほとんど
0341名前は開発中のものです。
2008/06/26(木) 14:11:44ID:LcBDfznV■ このスレッドは過去ログ倉庫に格納されています