C/C++言語でRPGを作ってみるスレ2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/07/09(土) 15:12:42まとめサイト
http://himatanuki.hp.infoseek.co.jp/
まとめサイト(Wiki)
http://gamdev.org/w/?%5B%5BC%2FC%2B%2B%B8%C0%B8%EC%A4%C7%A3%D2%A3%D0%A3%C7%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%EB%A5%B9%A5%EC%5D%5D
前スレ
C/C++言語でRPGを作ってみるスレ
http://pc8.2ch.net/test/read.cgi/tech/1114834076/
0153デフォルトの名無しさん
2005/07/17(日) 18:04:27アドバイス程度にしておこうよ。
0154シープラ勉強中
2005/07/17(日) 18:20:42どもです。windowsに関しては無知そのものなので
ちょこっと調べてみました m(__)m
WS_VISIBLE
可視状態のウィンドウを作成します。
::GetMessage()の戻り値
WM_QUIT メッセージを取得すると、0 が返ります。
エラーが発生すると、-1 が返ります。たとえば、hWnd パラメータが
無効なハンドルを指していた場合、エラーが発生します。
とありました。
いずれもご指摘の通りにした方が良さげですね。感謝!
パソの解像度は 1400*1050 です ^^
画面の半分ちょいぐらいでプログラム書いてますので、幅は狭めかも。
空いてる部分で2ちゃんとかしてるので、こうなってしまいました。
使ってるのは東芝のノートパソで、celelon1.8ギガのやつです。
コンパイラはVC++6.0 Standerdです。
Timerは、とりあえず30フレ出ればなんでも良かったのと、
マルチスレッドが全然わからないんで。。
あと::PeekMessage()と::Sleep()使う方法は知ってるのですが、
あんまパソに負担かけたくなくて。
今のタイマーだとCPU使用率も5〜15%なので、
パソにやさしそうなのでこれ使ってます。
最終的にはマルチスレッドというのをやりたいと思ってます。
ご指摘ありがとうございました。
0155127
2005/07/17(日) 18:53:39CPU率が高いかな。
RPGとか動きの少ないゲームは、移動とかしない時は、FPS4でいいと思うけどな。
3枚の視界サイズのメモリビットマップに、視界の全キャラの全足踏みパターンを
書いておいて、WM_TIMERで250ミリ秒毎に0→1→2→1と描画するだけ。
キャラが移動した時、画面がスクロールした時には、
3つの歩行パターン全部に更新部分を描画する。
0156デフォルトの名無しさん
2005/07/17(日) 19:12:220157デフォルトの名無しさん
2005/07/17(日) 19:18:40俺の環境だとCPU利用率が1%ぐらい。
0158157
2005/07/17(日) 20:38:48俺のマシンのスペックは今となっては高くない。
CPUはPentium3 900MHz
グラフィックはVIAのオンチップで
0159デフォルトの名無しさん
2005/07/17(日) 21:31:04OSは?
0160157
2005/07/17(日) 21:35:51メモリは256M
0161デフォルトの名無しさん
2005/07/17(日) 21:50:04>// 開放(この開放のしかたはいいのか?)
>void Free ();
よくねーよボケー!!!
Free(); としましょう。それじゃ宣言止まりです。
0162デフォルトの名無しさん
2005/07/17(日) 22:01:12それじゃ解放処理呼ばれて無いわw
メモリリークしまくりんぐ
0163デフォルトの名無しさん
2005/07/18(月) 07:33:37まだカーソルキーでスプライトを動かせるだけですが、マルチスレッド使ってます
画像データに、シープラ勉強中◆ryjMYLsfPAさんのものを使わせてもらっています
あと、コードはいろんなところからパクってます:-)
ttp://gamdev.org/up/img/2912.zip
0164デフォルトの名無しさん
2005/07/18(月) 09:11:05http://www.google.co.jp/search?as_q=RPG+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&num=100
0165デフォルトの名無しさん
2005/07/18(月) 09:54:21http://pc8.2ch.net/test/read.cgi/gamedev/1086023829/
推薦図書/必読書のためのスレッド in ゲ製作技術
0166デフォルトの名無しさん
2005/07/18(月) 13:14:38うちは600MHzぐらいorz。すごく重いとかいう意味ではなくて、
一般的にfpsが高い方が作品としてすぐれているみたいに考えられているけど、
RPGや、ゲームではないけどテキストエディタとかは、
描画の回数を減らせるなら減らした方がいいのではという意味で書いた。
>>163
まずは、基本的な移動という感じですな。
お互いレベルアップできるようにがんばりましょう。
0167シープラ勉強中
2005/07/18(月) 14:40:07おお、そんな技もあるのかあ。
プログラムはどんどん重くなっていきますし、
いずれはそんな方法も使ったほうがいいのかなあ。
ちょっと難しそう・・どうもありがとうです。
>>156
わたしも欲すぃ。
町の人のセリフとか、どうやって個々に持たせるのか
全然思いつかないし (T_T)
あと、イベントとか、ホントどうするんだろうか・・。
>>161
うはwwほんとだwwww
いちおうFree()の中で開放してるやつは
全部デストラクタにも入ってるので
このプログラムではあんま結果は変わらないのですが、
過去のヤツでは問題アリアリのもあったかも。。
てゆか、たぶんFree()作ったときからそのヘンテコ記述でしたよぉ。
気づいてくれて、ありがとうございます m(__)m
>>163
おー、なんか私の知らない未知のテクノロジーがいっぱいww
絵はどう使っても問題ないんですよ。
でも、、ホントにあんなんでいいんですかね ^^
改変とかもバシバシやっちゃっても全然かまわないので。。
マルチスレッドうらやますぃ。
0168デフォルトの名無しさん
2005/07/18(月) 15:30:29クリティカルセクションをコンストラクタとデストラクタで
ロック/アンロックしてる部分は知らなかったんで「なるほど」と思いますた。
定石なのかもしれませんが・・。
wineからMSIMG32.dllの部分だけとって使おうと思ったら、
まだ実装すんでないのね。
0169デフォルトの名無しさん
2005/07/18(月) 15:32:39ふむふむ。
0170デフォルトの名無しさん
2005/07/18(月) 15:59:30御指摘通り、yaneSDKからパクってます(;´Д`)
コードを抜き出して組み込んでも良いと書かれていたので、
そうさせてもらってます:-)
(他の部分もコードを読んでいるんですが、
yaneSDKの中身はおいらにとっては難しすぎますorz)
使えるオープンソースは使っていこうという方針っす
0171デフォルトの名無しさん
2005/07/18(月) 16:11:16CriticalSectionはEnter回数をWin32側がカウントしているんじゃなかったけ。
そもそも動作しているスレッドがロックしているとか、ロック回数を保持するとか
必要あるのかな?
0172デフォルトの名無しさん
2005/07/18(月) 17:44:10ソース読んでない&&Java屋の戯言だから間違っているかもしれんが...
コンストラクタでロック、デストラクタでアンロックしているようだから>>168で合ってるはず。
再帰ロックすると、単純にデストラクタでDeleteCriticalSectionを実行するとバグるからだと思う。
0173デフォルトの名無しさん
2005/07/18(月) 23:27:26WinでもConvertToFiber(うろ覚え)みたいなAPIで使えるよね。
ライブラリでも拾えるし。
0174デフォルトの名無しさん
2005/07/18(月) 23:38:01無理してスレッドやらコルーチンやら使わなくてもいい希ガス。
0175デフォルトの名無しさん
2005/07/19(火) 00:44:11本当は出したくなかったんですが参考になればと思って出します。
数年前に某所で発表したものです。
見た記憶のある人は黙っておくこと。
問題があるソースだということは分かっています。
いまさら作り直すのも手間ですし、時間もかかるのでパス。
あと、バグがありますが消してません。場所も特定済みですが。
マップチップは前スレの852あたりから拝借。
マップエディタ、NPCエディタ、イベントエディタは…公開しない。
0176デフォルトの名無しさん
2005/07/19(火) 02:16:24わお!スクリプト記述キター!
やはりゲームシステムとゲーム内容は分離すべきですね。
なんかちょっとやる気出てきたゾ。
0177175
2005/07/19(火) 06:33:50マップが適当なのは組み立て方が
良く分からなかったのと面倒だったから。
ソース自体は素敵処理が満載で、
まんま使ったりしようとすると恐らく
痛い目にあうからやめた方が無難。
ただし、スクリプトの実現や、
NPCの実現の一つの手法としては
もしかしたら参考になるかもしれない。
0178デフォルトの名無しさん
2005/07/19(火) 19:03:03うあっ、また未知のテクノロジーがw
NPCエディタとか、イベントエディタとか
やぱ作らなきゃいけないのかぁ。
どこまでできるかな。。
0179デフォルトの名無しさん
2005/07/19(火) 19:16:45作った方が楽できることもあるし、ゲームよりもエディタの方が
大掛かりになってしまうこともある(後者はある意味本末転倒)。
それに、一口にエディタといってもコンバータに毛が生えたようなものから
GUIベースの凝ったものまで色んな形があり得る。
エディタはプレイヤーには見えない(ゲーム開発者だけが使う)道具だから、
「何がしたいか」をはっきりさせて手抜きできるところは手を抜かないと。
何から何まで本格的にやってたらとてもじゃないけど完成しないよ。
0180デフォルトの名無しさん
2005/07/19(火) 20:33:55がんばろっと…
0181デフォルトの名無しさん
2005/07/19(火) 21:50:320182デフォルトの名無しさん
2005/07/19(火) 21:51:590183デフォルトの名無しさん
2005/07/19(火) 21:58:56今できそうなことを着実にこなして、脳内を快感物質で満たし続ける方がいいよ
そうすればやる気も持続しやすくなるはず
0184デフォルトの名無しさん
2005/07/19(火) 22:10:40全体の量が多くなるからねぇ…
0185デフォルトの名無しさん
2005/07/20(水) 08:43:08基礎だけなら、シューティングやシュミレーションなんかとそれほど変わらんとおもうが、
大抵、RPGはドラクエとかFFみたく凝りたがる人が多いからね。
とりあえず、Rogueのソース読みこなせればいっきに世界が広がるよ
と言ってみるテスト。
0186デフォルトの名無しさん
2005/07/20(水) 11:24:43ソース以前に操作方法でつまづいた orz
0187デフォルトの名無しさん
2005/07/20(水) 16:34:12まずは外部依存でイベントを実行できるアドベンチャーを作ってみるとか。
0188デフォルトの名無しさん
2005/07/20(水) 20:09:45本家#1のやつね。あれはイベントスクリプトなんてものはないし、
そもそもNPCがいないし。フラグ管理もアイテムのみだ。
NPC以外の全てが詰まってるステキなゲーム。
0189デフォルトの名無しさん
2005/07/20(水) 20:20:120190デフォルトの名無しさん
2005/07/20(水) 20:25:05SUGEEEEEEEEEE
やっぱレベルが違うわ
自分はまだマップ読み込み+表示レベルっす
あと、スクリプト初心者な俺には
ttp://www4.nasuinfo.or.jp/~hobby/index.shtml
がかなり参考になった。AVGだし、C言語だけどね。
0191デフォルトの名無しさん
2005/07/20(水) 20:39:53一番最初のシナリオ。ASCIIの外伝とかじゃないやつ。
Wizardryはシナリオごとに#1、#2〜と番号が振ってある。
0192デフォルトの名無しさん
2005/07/20(水) 20:41:570193デフォルトの名無しさん
2005/07/20(水) 22:52:120194デフォルトの名無しさん
2005/07/20(水) 23:50:130195デフォルトの名無しさん
2005/07/21(木) 00:48:550196デフォルトの名無しさん
2005/07/21(木) 16:45:17>>149が落とせなかったんで現状把握が出来てないのだが、
今どこまで進んでて、どの辺りが詰まってるん?
0197デフォルトの名無しさん
2005/07/21(木) 16:53:55せんし1のくびをはねた
せんし1はまひした
せんし1はどくにおかされた
せんし1はいしになった
せんし1ははいになった
せんし1のレベルが7さがった
どうする?
0198デフォルトの名無しさん
2005/07/21(木) 17:15:45それでも生きてるのか…?
0199デフォルトの名無しさん
2005/07/21(木) 17:40:37Wizには死より悪い状態がある。それが灰。
灰よりさらに悪い状態もあって、それがロスト。
0200デフォルトの名無しさん
2005/07/21(木) 17:44:19>>149は、プレイヤーらしきキャラが画面上を歩くだけのプログラムです。
今はフィールドのプレイヤーと町の人の共通の処理を、
なんとかクラスにまとめられないかを考え中です。
動きうんぬんよか、どういうクラスにするのかが難しい。
早くゲームっぽい動きを考えるとこまで行きたいよぉ。
>>188さんの提案は凄く魅力的。
まずはイベントとか無いのを作るほうが、
モチベーションを維持できそうな気がする。
スクリプトってなに?
0201デフォルトの名無しさん
2005/07/21(木) 18:18:43たとえば王様のイベントがあったとして、
event.cpp
----------
void king()
{
if(dead){
msg("おおぅ、勇者のくせに死んでしまうとは情けない");
msg("明日から来なくていいよ");
sound("derodero.wav");
}
}
↑こんな風に直接コーディングするのではなく
↓こういうテキストを用意して、プログラムからこのテキストを解析することにより
上のコードと同じような動作を再現させる。
event.txt
----------
event king
if $dead
msg おおぅ、勇者のくせに死んでしまうとは情けない
msg 明日から来なくていいよ
sound derodero.wav
endif
endevent
0202デフォルトの名無しさん
2005/07/21(木) 19:13:11げっ、マジですか?
それってメチャ難しそうなんですけど・・
たまにサイトとかで「独自のスクリプトを組んで〜」みたいなのを
見かけるのですが、コレのことだったのかぁ。
こりゃ無理ですわ orz
0203デフォルトの名無しさん
2005/07/21(木) 19:15:10動く物(その場でアニメーションを含む)はスプライトを扱う基底クラスを
作って、それを継承すると後々楽になると思う。
下はパッと考えで書いたので甘すぎるクラスになっているが、
基本的にはdoMove()で次の位置を決めdraw()で描画といった形。
NPCObjectはそれぞれランダムで決めた方向に進む処理をdoMove()に実装し、
UserObjectはkeyDirectionに従って進む方向を処理する。
その他オブジェクトは移動なしのスプライトアニメーションに使う等。
class MoveableObject{
MoveableObject(void);
MoveableObject(int controller, int xPos, int yPos);
virtual ~MoveableObject(void);
virtual void doMove(void);
virtual void draw(void);
protected:
int controller; //0 = user controll, 1 = non player controll
int xPos, yPos;
};
0204デフォルトの名無しさん
2005/07/21(木) 19:17:02class UserObject: public MoveableObject{
UserObject(void);
UserObject(int xPos, int yPos);
virtual void doMove(void);
virtual void keyEvent(int direction);
protected:
int keyDirection;
};
class NPCObject: public MoveableObject{
NPCObject(void);
NPCObject(int xPos, int yPos);
virtual void doMove(void);
};
class OtherObject: public NPCObject{
..その他、小爆発アニメーションなど
};
0205デフォルトの名無しさん
2005/07/21(木) 20:26:21けれども、自由にNPCを追加したりするときに重宝する。
マップとスクリプトあれば、同じシステムでいくらでもゲーム作れるからね。
まあ、それがRPGツクールなんだけど。
何も完全構文である必要はない。@eとか@nとか、プレフィックス+1文字で
どうにかするとかもできる。
0206デフォルトの名無しさん
2005/07/21(木) 20:44:10RPGならどうしても大規模ゲームになるよね。
0207デフォルトの名無しさん
2005/07/21(木) 20:46:26スクリプトは、バイナリの簡単な仮想マシンにすると実装は楽だね。
大きなスクリプト書くのはしんどいがw
0208207
2005/07/21(木) 21:15:22プトシステムに簡易アセンブラ(ラベルのアドレス化と簡単なニーモック、
フラグレジスタの変換程度)、といった形が現実的かも。
実行時にテキストを読み込んで処理するのはちょっとしんどいし、配布
にも不利だからね。
0209デフォルトの名無しさん
2005/07/21(木) 21:19:080210シープラ勉強中 ◆ryjMYLsfPA
2005/07/21(木) 21:23:10定期です。
本格的に>>149と変わってないのですが。
当たり判定で、ちょっとハマってしまいまして。。
>>203
私のプログラムでは、
CObjectBase ってのが MoveableObject に当たると思います。
てゆか、ベースクラスのメンバ変数を protected のとこで宣言すると、
派生クラスで直接使えるのにびっくりしてしまった。
あー、C++を覚えながらRPGを作るのは、やぱ無謀だったか。
>>203と>>204に仮想関数がやたらと多いのは、
いったいなぜでしょうか?
アフォな質問で申し訳ありませんが、
お願いします m(__)m
0211デフォルトの名無しさん
2005/07/21(木) 21:24:40それはちょっと大袈裟すぎ…
0212デフォルトの名無しさん
2005/07/21(木) 21:25:260213デフォルトの名無しさん
2005/07/21(木) 21:37:44既存の組み込みスクリプトでええじゃないか。
0214デフォルトの名無しさん
2005/07/21(木) 21:39:41ゲーム作りたがる人は地味だから、これを飛ばしたがるけどねw
簡易電卓をまず作ってみるといい
0215デフォルトの名無しさん
2005/07/21(木) 21:45:57仮想メンバ関数を多用しているのは、端的に言うと>>212の意味。
基底クラスなどでvirtual宣言している仮想メンバ関数は継承クラスで再定義できる。
>>203を例にとると、
static MoveableObject spriteTable[MAX_SPRITE_COUNT];
int eventLoop()
{
for(int i = 0; i < MAX_SPRITE_COUNT; i++){
spriteTable[i]->doMove();
}
return(returnCode);
}
void intialize()
{
memset(spriteTable, 0, sizeof(spriteTable));
spriteTable[0] = new MoveableObject();
spriteTable[1] = new UserObject();
spriteTable[2] = new NPCObject();
while(!exitFlag){
eventLoop();
}
}
こんな感じで使うとして、i==0の時はMoveableObjectクラスのdoMoveに制御がまわり、
i==1 -> UserObjectクラスのdoMove()
i==2 -> NPCObjectクラスのdoMove()に制御がまわる。
使う側はその実際のクラスがなんであれ基底クラスとして扱えば
実際の制御は派生クラスで行ってくれるという感じ。
詳しくは派生クラスとバーチャル関数辺りを調べれば出てくると思う。
0216デフォルトの名無しさん
2005/07/21(木) 21:46:04BulletMLみたいにXML使ってもよかですかい?
0217デフォルトの名無しさん
2005/07/21(木) 21:51:34>これを飛ばしたがるけどねw
飛ばすもなにも、自己流で勉強した人はまず、そんなプロセス通らないだろ。
役に立つのは確かだから俺からもオススメするが。
なによりも知的好奇心が気持ちよく満たされる。
0218207
2005/07/21(木) 21:54:01「状態の設定」には良いんだけどね>XML。
処理の「流れ」をどう表現するか……。
結局、XMLに記録するものがまた「テキストスクリプト」になる気がw
0219デフォルトの名無しさん
2005/07/21(木) 21:56:43誤: static MoveableObject spriteTable[MAX_SPRITE_COUNT];
正: static MoveableObject *spriteTable[MAX_SPRITE_COUNT];
0220デフォルトの名無しさん
2005/07/21(木) 22:00:52自己流でやっていて、Cを覚えようとして、
BASICインタプリタ作った俺はなに?
0221デフォルトの名無しさん
2005/07/21(木) 22:01:380222デフォルトの名無しさん
2005/07/21(木) 22:02:290223デフォルトの名無しさん
2005/07/21(木) 23:47:070224(-_-;)
2005/07/22(金) 05:38:41だれか、このスレのLogを取って置いてくださいませ。
来年の4月には取りに着ますので。
よろしくお願いします。
0225デフォルトの名無しさん
2005/07/22(金) 06:58:57そもそも、VC++6.0 Standerdってなんですか?Yahooで調べてみたけど、いまいちよく分からん。
というより、Cで3DRPGを作れるの?聞く話によると、Javaの方がいいという。
まったく初心者の俺は、これだけで混乱してしまう。
だれか、厨房と思わずに教えてくれー!!
0226デフォルトの名無しさん
2005/07/22(金) 07:10:02>聞く話によると、Javaの方がいいという。
言語なんて飾りです
エロい人にはそれが分からんのです
・・・つまり
センスがある人ならCだろうがJavaだろうが作ってしまう
センスが無い人は、どの言語を選ぼうが作れない
ただそれだけのこと
0227デフォルトの名無しさん
2005/07/22(金) 07:33:32VC++6.0 Standerd とは マイクロソフト製のC言語、C++言語でプログラミングをする統合開発環境
Cで開発する場合、画像を表示する窓(ウィンドウ)から作らなくてはならない
Javaで開発する場合は、その窓を作らなくてもよい
3Dゲームを作る場合は、すでにあるライブラリーを使う場合が多いけどその時はCのほうがライブラリーを使いやすく、使用例が多くあります
0228デフォルトの名無しさん
2005/07/22(金) 09:53:580229デフォルトの名無しさん
2005/07/22(金) 11:02:16あたり判定
ソースを読んでみたのだが、今プレイヤーが壁に向かっているか否かは
CPlayer::HitCheckMap()の中でcMap.GetMap()を使用して背景スプライト番号で
判定しているが、これを障害物マップに置き換えてみてはどうだろうか。
あるいは背景スプライト番号(m_pbyMap)の意味を拡張して、
障害物フラグも内包するなど、今は8ビットだがこれを16ビットにして
下8ビットをスプライト番号、上位8ビットを障害物フラグなど。
unsigned short mapItem;
mapItem = cMap.GetMap(...);
if(!(mapItem & 0xff00) && ((mapItem & 0x00ff) == 1)){
mapItem = cMap.GetMap(進行方向);
if((mapItem & 0xff00) || ((mapItem & 0x00ff) != 1)){
m_byWalkFlag &= ~WALK_XXXX;
nHit = true;
}
}
この場合CMap::m_pbyMapの内容は村人の移動とともに書き換えることになる。
絵付きで細かく説明しないとわかりにくいかもしれないが、ご容赦。
0230デフォルトの名無しさん
2005/07/22(金) 11:13:43訂正
誤:この場合CMap::m_pbyMapの内容は村人の移動とともに書き換えることになる。
正:この場合CMap::m_pbyMapの上位8ビットは村人の移動とともに書き換えることになる。
0231シープラ勉強中
2005/07/22(金) 17:56:03なるほど。一つのインターフェイス、複数のメソッドってやつですかね。
う〜ん、でも効果的な使い方が思い浮かばないです orz
>>215のを利用すると、プレイヤーキャラと町の人をソートして、
上から順番に表示するプログラムとか、やりやすそうに
なるような気がしなくもないですけど、、うーん。
もうちょっと考えて見ます。
ども!
>>229
おー、それはいいかもです!
マップチップの種類はそんなに多くならなそうですし、
8ビットのうち、1ビットは進入可能か不可能かの判定フラグにしてもいいですね。
村人の移動で書き換えるのも良いさげ!
でもそれだと、もう一個フラグが必要になるかなあ。
マップチップデータはunsigned short型にして、上位8ビットには
なんか他のデータを入れようかと思ってました。
敵の出現情報とか(川の向こうとこっちじゃ出てくる敵の種類が違う、みたいなやつ)は、
マップチップに持たせたほうがいいんですかね?
0232デフォルトの名無しさん
2005/07/22(金) 18:57:27構造体の配列にするといいと思う。
struct CHIP{
int image;
int movable;
int enemy_type;
};
class CMap {
CHIP *m_pbyMap;
…
}
0233207
2005/07/22(金) 19:23:37>敵の出現情報とか(川の向こうとこっちじゃ出てくる敵の種類が違う、みたいなやつ)は、
>マップチップに持たせたほうがいいんですかね?
それは別にした方が良い(出現情報自体が、地形情報とは異質の一つの
マップになるから)のでは?
配列で持つなら
地形(表示用マップチップ)
遭遇する敵
イベント情報(イベント番号)
はそれぞれ別にする方がわかりやすいと思う。
0234デフォルトの名無しさん
2005/07/22(金) 19:50:54GDI+については良く分かってないもので適当ですが多分もっと早くなると思う。
DirectDrawとGDI_DDBが早いのはデバイス依存形式で
ビットマップを使っていて、かつビデオメモリにイメージがあるからです。
ttp://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0011.lzh
0235デフォルトの名無しさん
2005/07/22(金) 22:58:58GDI+はどうやっても速くならないと思う
0236デフォルトの名無しさん
2005/07/22(金) 23:48:540237デフォルトの名無しさん
2005/07/23(土) 00:55:37微妙にチャットできるようになったらUPします。
0238デフォルトの名無しさん
2005/07/23(土) 05:19:34どうもです。
そうか、構造体って手段がありましたね。
そのほうがわかりやすそうです。
マップエディタ作るまえに、最終的な仕様を決めとかないと
あとで大変なことになりそうですね。。
イベント情報もマップデータが持つのか。
マップチップ構造体
○絵
○敵のタイプ
○イベント情報
○なんか1ビットずつのフラグ
こんな感じになるのかなあ。
↑のやつだと、全部BYTE型ですみそうですけど、
念のためint型で宣言しといた方がいいのかなあ。
でもそれだとメモリいっぱい使いそうだし。
>>234
おつです。
やっぱ、けっこう差があるんですね。
ウチでもDirectDrawのビデオメモリverが異常に早かったようです。
>>237
うはww なんか、高レベルな感じ。
がんばってください。
0239デフォルトの名無しさん
2005/07/23(土) 06:21:09ttp://lamoo.s53.xrea.com/develop/gdiplus/gdiplus_blt.html
GDI+はここのBitmap-OFF と Bitmap-ONの状態で、
Cache-OFF Cache-ONを使えば1.5倍ぐらいになるのは目に見えてる。
内部はDIBだと思うのでその程度の速度にはなるはず。
基本的にGDI+はゲームにつかうためのものじゃ無いとは思うけど。
0240デフォルトの名無しさん
2005/07/23(土) 06:37:00仮に1チップあたり贅沢に16バイト使うとしても
たとえば50x50チップの町を表現するのに 40KBytes。
これは256色ビットマップ200x200程度の容量。ぜんぜん気にならない。
ちなみに SFC の RPGツクールでは、世界マップが 256x256 だった。
これだとちょうど 1MBytes 必要になるな…。今の PC なら気にならんだろうけど。
(それに1チップ16バイトも使わないだろう)
設計さえしっかりしてれば
メモリの節約なんて、完成の1歩手前でも十分間に合うから、
今は作りやすさを優先したほうがいいと思う。
0241デフォルトの名無しさん
2005/07/23(土) 11:19:21>メモリの節約なんて、完成の1歩手前でも十分間に合うから、
通常、それは設計がしっかりできていないというんだよ。
0242デフォルトの名無しさん
2005/07/23(土) 11:56:53それにちっと位贅沢設計でも問題ないだろ。
仮に出来上がったものが1Gbyte以上必須だとしても、それはそれで面白い。
ま、1Gは大げさだが256M位だったら問題なしだろ。
0243デフォルトの名無しさん
2005/07/23(土) 13:32:20それより重要なことがある
設計者として節約の感覚はあったほうがいいとは思うが、
ゲームやるPCのメモリは潤沢だろ
0244デフォルトの名無しさん
2005/07/23(土) 13:45:000245デフォルトの名無しさん
2005/07/23(土) 13:46:490246デフォルトの名無しさん
2005/07/23(土) 14:44:080247デフォルトの名無しさん
2005/07/23(土) 14:46:020248デフォルトの名無しさん
2005/07/23(土) 15:45:31設計がしっかりしているとメモリの節約さえ柔軟にできないのですか?(ニヤニヤ
0249デフォルトの名無しさん
2005/07/23(土) 15:51:34設計がシッカリしているのがまるで悪いことのように思える文章だ。
0250デフォルトの名無しさん
2005/07/23(土) 15:56:54>>241
0251デフォルトの名無しさん
2005/07/23(土) 16:02:26まずは、完成させることが大事であるわけだが。
0252デフォルトの名無しさん
2005/07/23(土) 20:09:17■ このスレッドは過去ログ倉庫に格納されています