少し前まではHSPで作ろうと思っていたのですが、HSPでRPGゲームを作るのは難しいらしいので、C++で作ろうと思います。
C++のプログラミングは初めてですので、みんなの力が必要です。
お願いします。
あと質問ですが、C++ってMMORPGつくれますか?
探検
C++でRPGゲームを作成する
■ このスレッドは過去ログ倉庫に格納されています
1じっち
04/11/23 07:14:50ID:CCsv+84e705名前は開発中のものです。
2006/04/30(日) 15:56:52ID:Rmcj9mo1706名前は開発中のものです。
2006/04/30(日) 16:00:04ID:4wrj94cG >私が作った発展途上…
>…(と思う)。
>…(になると思う)。
お察しください。
>…(と思う)。
>…(になると思う)。
お察しください。
707名前は開発中のものです。
2006/04/30(日) 16:13:30ID:gjG8Ha5v 開発状況報告スレの方がよくね?
708名前は開発中のものです。
2006/05/04(木) 21:07:51ID:4iqaj+kF 質問です。
Item クラス
┣ Kougekiクラス
┗ Kaihuku クラス
┣ Yakuso クラス
┗ Poshon クラス
こんな感じで、アイテムクラスを基底に、効能別、名前別のクラスを作り
ゲーム内では Item* 型ポインタを使ってアイテムを一括管理しようと一度計画しました。
しかし、実際に拾えるアイテム( Yakusoオブジェクト等 )をランダムに生成しようとすると
クラスの外に switch( rand()%2 ){ case 0 : item = .... のようにずらずら書くしかなくなってしまいました。
最初は、 Item クラス自体に、ランダムでアイテムの種類を決定するメソッド(というかコンストラクタ)を
持たせたかったのですが、よく考えてみると子クラスを触らせることができないので手詰まりしました。
クラスの数をもっと減らして、アイテム名や効果(回復量など)を引数で渡すことで
オブジェクトの種類を稼いだ方がいいのだろうかとか(今は1クラス1アイテムだから)、
多少トリッキーなコードを書いてでも Item クラスにランダム生成メソッドを持たせられないかとか
色々考えているのですが、
ランダムに発生するアイテムを管理するクラスについて、何か定番みたいなものはないでしょうか
Item クラス
┣ Kougekiクラス
┗ Kaihuku クラス
┣ Yakuso クラス
┗ Poshon クラス
こんな感じで、アイテムクラスを基底に、効能別、名前別のクラスを作り
ゲーム内では Item* 型ポインタを使ってアイテムを一括管理しようと一度計画しました。
しかし、実際に拾えるアイテム( Yakusoオブジェクト等 )をランダムに生成しようとすると
クラスの外に switch( rand()%2 ){ case 0 : item = .... のようにずらずら書くしかなくなってしまいました。
最初は、 Item クラス自体に、ランダムでアイテムの種類を決定するメソッド(というかコンストラクタ)を
持たせたかったのですが、よく考えてみると子クラスを触らせることができないので手詰まりしました。
クラスの数をもっと減らして、アイテム名や効果(回復量など)を引数で渡すことで
オブジェクトの種類を稼いだ方がいいのだろうかとか(今は1クラス1アイテムだから)、
多少トリッキーなコードを書いてでも Item クラスにランダム生成メソッドを持たせられないかとか
色々考えているのですが、
ランダムに発生するアイテムを管理するクラスについて、何か定番みたいなものはないでしょうか
709名前は開発中のものです。
2006/05/04(木) 21:19:36ID:5IsqMDd3 static Item Item::CreateItem(int id)
{
case 0:...
}
みたいにやれば?
{
case 0:...
}
みたいにやれば?
710名前は開発中のものです。
2006/05/04(木) 21:43:38ID:MIihhrBb アイテムを生成するクラスを使う。
その中で、switch〜caseの羅列になっても、外部からは
隠すことが出来るので、トリッキーなコードを書くより
ずっといい。
その中で、switch〜caseの羅列になっても、外部からは
隠すことが出来るので、トリッキーなコードを書くより
ずっといい。
711名前は開発中のものです。
2006/05/05(金) 04:52:08ID:kC2BXK6h case分の羅列でもいいけど、それよりはメソッドへのポインタでテーブルを作成しる。
712名前は開発中のものです。
2006/05/05(金) 09:52:19ID:/fNbso43 http://pc8.2ch.net/test/read.cgi/tech/1133286541/
次スレはここと合併すべきじゃない?
次スレはここと合併すべきじゃない?
713名前は開発中のものです。
2006/05/05(金) 10:24:09ID:1M0+6Jiy 埋まったら合流で良し
714名前は開発中のものです。
2006/05/05(金) 12:18:33ID:yx9WHGs4 でも、あっちは板が違うしな。
さらに言えば、昔はあっちの方がこっちに行くように言われてたわけだし・・・。
さらに言えば、昔はあっちの方がこっちに行くように言われてたわけだし・・・。
715名前は開発中のものです。
2006/05/05(金) 21:43:00ID:LicKzfcD716名前は開発中のものです。
2006/05/27(土) 23:42:11ID:TAx3htqU がんばれ俺!今日明日で戦闘を作るんだ!
ここが踏ん張りどころだ!完成するぞ!完成するぞ!
ここが踏ん張りどころだ!完成するぞ!完成するぞ!
717名前は開発中のものです。
2006/05/28(日) 00:00:25ID:SbFom2eu C++でっていうけど、ウインドウズで動作させようと思ったら
APIの勉強もいるんだよね?orz
APIの勉強もいるんだよね?orz
718名前は開発中のものです。
2006/05/28(日) 00:40:31ID:lcSvizP1 >>716 がんばれ、超がんばれ、世界がおまえを待ってるぞ!
719名前は開発中のものです。
2006/05/29(月) 15:15:30ID:eI7Wuh/Q >>717超いるよ
720名前は開発中のものです。
2006/05/29(月) 19:45:46ID:qsL/g3xF さて、716の見苦しい言い訳を聞こうか
721名前は開発中のものです。
2006/05/29(月) 21:13:55ID:zEiBbzn5 二日っていうと五時間ずつやったとしても10時間だよね。
10時間で完成可能なことだったの?
10時間で完成可能なことだったの?
722名前は開発中のものです。
2006/05/29(月) 21:51:20ID:mBWO4XJP で、まずは>>720-721よ。
この板に何しに来たのか説明してもらおうか。
この板に何しに来たのか説明してもらおうか。
723716
2006/05/30(火) 14:31:56ID:kpb46nhc (^^;
完成できなかったけど、だいぶ進んだ
摂のRPGはドラクエ3みたいな単純なシステムではなかったことが敗因
完成できなかったけど、だいぶ進んだ
摂のRPGはドラクエ3みたいな単純なシステムではなかったことが敗因
724名前は開発中のものです。
2006/05/30(火) 18:30:24ID:/JTGRSEu 単純・・・だとぉ!
725名前は開発中のものです。
2006/05/30(火) 18:35:27ID:A1fjl0vL システムを単純化させるのがプログラマの腕
726名前は開発中のものです。
2006/05/30(火) 18:40:33ID:XHx1vsq2 やっぱ沢山RPGやったほうがいい?
FFとDQの典型しかした事無いけど
FFとDQの典型しかした事無いけど
727名前は開発中のものです。
2006/05/30(火) 19:40:27ID:hZJKdy+m >>726
どうせ最後はDQに集約されるんだから気にするな。
ただ、新しい(と思える)システムを作って『俺SUGEEE』ってやると、
後で絶対泣くことになる。ゲーム業界はすでに20年歩んでるんだからな。
どうせ最後はDQに集約されるんだから気にするな。
ただ、新しい(と思える)システムを作って『俺SUGEEE』ってやると、
後で絶対泣くことになる。ゲーム業界はすでに20年歩んでるんだからな。
728名前は開発中のものです。
2006/05/30(火) 19:44:19ID:XHx1vsq2729名前は開発中のものです。
2006/05/30(火) 20:06:53ID:hZJKdy+m730名前は開発中のものです。
2006/05/30(火) 20:18:52ID:PgwMBF7v wizって洋ゲーじゃなかったっけ
ワードナは逆読みすると開発者の名前になるとか聞いたことあるんだが
ワードナは逆読みすると開発者の名前になるとか聞いたことあるんだが
731名前は開発中のものです。
2006/05/30(火) 20:20:15ID:hZJKdy+m >>730
トレボーもワードナも開発者の名前をひっくり返したやつだな。
WizardryとUltimaはどちらも洋ゲーだけど、それを組み合わせたのがDQ
特に戦闘関係はWizardryから引っ張ってきてる。
トレボーもワードナも開発者の名前をひっくり返したやつだな。
WizardryとUltimaはどちらも洋ゲーだけど、それを組み合わせたのがDQ
特に戦闘関係はWizardryから引っ張ってきてる。
732716
2006/05/30(火) 21:00:58ID:kpb46nhc 摂のはアクションRPGだった(^^;
グラフィックは8方向分用意(^^;
グラフィックだけで死にそう(^^;;
グラフィックは8方向分用意(^^;
グラフィックだけで死にそう(^^;;
733名前は開発中のものです。
2006/05/30(火) 21:41:22ID:uSUZilj0734名前は開発中のものです。
2006/05/30(火) 22:09:25ID:RATgowud ちょっとまてw
作り始めるまで戦闘がアクションなのかDQ風なのか判別できなかったのか?www
作り始めるまで戦闘がアクションなのかDQ風なのか判別できなかったのか?www
735名前は開発中のものです。
2006/05/31(水) 18:37:35ID:kqnlPuDw いやそれは、アクションもDQ並に単純にできると思ったいたんじゃまいか。
DQを単純といえるほどの腕があるのかは知らないが。
DQを単純といえるほどの腕があるのかは知らないが。
736名前は開発中のものです。
2006/05/31(水) 18:41:52ID:dXTIpZ6p ARPG作ってますが
当たり判定を人型にするにはどうしたらいいですか?
当たり判定を人型にするにはどうしたらいいですか?
737名前は開発中のものです。
2006/05/31(水) 19:13:27ID:fUZxD/GV 厳密にやりたいならキャラクタ同士のテクセルが重なっているかどうかを一ドットずつ調べる
大雑把にやりたいなら頭、胴体、足、手それぞれの当たり判定を矩形や円で作る
もっと大雑把にやるなら胴体だけ矩形で作ればいい
大雑把にやりたいなら頭、胴体、足、手それぞれの当たり判定を矩形や円で作る
もっと大雑把にやるなら胴体だけ矩形で作ればいい
738名前は開発中のものです。
2006/05/31(水) 19:17:20ID:dXTIpZ6p 1ドットずつやろうとしたら泣きたくなるほど膨大になりそうでした・・・
>頭、胴体、足、手それぞれの当たり判定を矩形や円で作る
これ参考に組みます!
>頭、胴体、足、手それぞれの当たり判定を矩形や円で作る
これ参考に組みます!
739名前は開発中のものです。
2006/05/31(水) 20:53:14ID:OyxnCHMf まあ、厳密に当たり判定とる労力を他の調整に回した方が
最終的には面白いゲームができるからなぁ。
プレイヤーは見た目が不自然じゃなければ、そこまで
厳密な部分は見ない。見るのは解析マニアが弾幕シューターだ。
最終的には面白いゲームができるからなぁ。
プレイヤーは見た目が不自然じゃなければ、そこまで
厳密な部分は見ない。見るのは解析マニアが弾幕シューターだ。
740名前は開発中のものです。
2006/05/31(水) 21:37:10ID:fvp1fd0u アクションRPGは単純な紙芝居RPGとは違うパフォーマンス上の配慮が必要で大変ですね(^^;
冗長なことやってるとパフォーマンスガタ落ちで手抜きができません(^^;;
普通のRPGでは通っていたことが通らなくなりました(^^;;;
冗長なことやってるとパフォーマンスガタ落ちで手抜きができません(^^;;
普通のRPGでは通っていたことが通らなくなりました(^^;;;
741名前は開発中のものです。
2006/05/31(水) 23:54:17ID:VkKcen7a たぶん>>736のARPGは8頭身モナーみたいのが入り乱れるんだろうな・・・
742名前は開発中のものです。
2006/06/01(木) 01:26:31ID:1wKUdWEf たぶん>>716は釣り師なんだろうなぁ
743名前は開発中のものです。
2006/06/17(土) 01:55:24ID:gghwP/lw744716
2006/06/17(土) 12:45:56ID:A7FmLv2E ありがとうございます・・・ってどれが参考になりますか?
forループをウェイトに使っているのには思わず吹いてしまいました(><)
アクションRPGできてきました(><)
PDAと互換性保つため自前DIB描画の拡縮やアルファブレンドなので激重です(><)
誰か下のやつ最適化してください(><)
途中で宣言なしに出現する変数は事前に計算されていて、意味は以下のようになっております。
unsigned char alpha・・・アルファ値。
float mag_x、 mag_y・・・X、Y軸の拡大幅
unsinged char* dest_buffer 、 src_buffer・・・転送先,転送元イメージのバッファ。
int dest_offset・・・転送先データのオフセット。
int src_offset・・転送元データのオフセット。
int max_x ,max_y ・・・ 書き込みする範囲の最大バイト数
int bufW、srcW・・・転送先、転送元画像の幅。
unsigned char t = 255-alpha ;
for(int i=0;i<max_w;i+=3)
{
for(int j = 0;j<max_y;j+=3)
{
base_dest = dest_offset + i + j * bufW;
base_src = src_offset + ((int)((i / 3) / mag_x) + (srcW * (int)((j/3) /mag_y )))*3 ;
dest_buffer[base_dest] = (( t * dest_buffer[base_dest] ) >> 8) + (( alpha * src_buffer[base_src] ) >> 8 );
dest_buffer[base_dest+1] = (( t *dest_buffer[base_dest+1] ) >> 8) + (( aplhal * src_buffer[base_src+1] ) >> 8 );
dest_buffer[base_dest+2] = (( t * dest_buffer[base_dest+2] ) >> 8) + (( alpha * src_buffer[base_src+2] ) >> 8 );
}
}
誤字脱字があるかもしれません(><)
forループをウェイトに使っているのには思わず吹いてしまいました(><)
アクションRPGできてきました(><)
PDAと互換性保つため自前DIB描画の拡縮やアルファブレンドなので激重です(><)
誰か下のやつ最適化してください(><)
途中で宣言なしに出現する変数は事前に計算されていて、意味は以下のようになっております。
unsigned char alpha・・・アルファ値。
float mag_x、 mag_y・・・X、Y軸の拡大幅
unsinged char* dest_buffer 、 src_buffer・・・転送先,転送元イメージのバッファ。
int dest_offset・・・転送先データのオフセット。
int src_offset・・転送元データのオフセット。
int max_x ,max_y ・・・ 書き込みする範囲の最大バイト数
int bufW、srcW・・・転送先、転送元画像の幅。
unsigned char t = 255-alpha ;
for(int i=0;i<max_w;i+=3)
{
for(int j = 0;j<max_y;j+=3)
{
base_dest = dest_offset + i + j * bufW;
base_src = src_offset + ((int)((i / 3) / mag_x) + (srcW * (int)((j/3) /mag_y )))*3 ;
dest_buffer[base_dest] = (( t * dest_buffer[base_dest] ) >> 8) + (( alpha * src_buffer[base_src] ) >> 8 );
dest_buffer[base_dest+1] = (( t *dest_buffer[base_dest+1] ) >> 8) + (( aplhal * src_buffer[base_src+1] ) >> 8 );
dest_buffer[base_dest+2] = (( t * dest_buffer[base_dest+2] ) >> 8) + (( alpha * src_buffer[base_src+2] ) >> 8 );
}
}
誤字脱字があるかもしれません(><)
745名前は開発中のものです。
2006/06/17(土) 13:11:36ID:MX8Yl6AK746名前は開発中のものです。
2006/06/17(土) 13:12:23ID:MX8Yl6AK PDAと互換性ってかいてあるな、すまん
747名前は開発中のものです。
2006/06/18(日) 00:38:44ID:kJEJ2x/f ブレセンハムが応用できるなんて知りませんでした(><)
改良してみます(^^)
改良してみます(^^)
748名前は開発中のものです。
2006/06/18(日) 03:00:50ID:DrGgvxn8749名前は開発中のものです。
2006/06/18(日) 09:52:01ID:kWRvX99Z おいおい、初心者をミスリードするな。
visiRPGとNew CUIRPGも参考にならないだろう。
反面教師ならまだしも、作者の良識を疑う。
visiRPGとNew CUIRPGも参考にならないだろう。
反面教師ならまだしも、作者の良識を疑う。
750名前は開発中のものです。
2006/06/20(火) 05:44:49ID:yRy3miB7 鬼はどうなったん?
751名前は開発中のものです。
2006/06/20(火) 11:04:29ID:annU3c5h ステフが捨てました。
752名前は開発中のものです。
2006/06/21(水) 17:03:09ID:b0spWjUO >>749の作るゲームに期待
753名前は開発中のものです。
2006/06/21(水) 18:05:51ID:HFz2n3fa754名前は開発中のものです。
2006/06/21(水) 18:07:40ID:HFz2n3fa ヘッダに実装を書かない方法を知らないんジャマイカ
755名前は開発中のものです。
2006/06/22(木) 19:56:56ID:UpYDoT5s756名前は開発中のものです。
2006/06/25(日) 17:33:37ID:cfrlOTij ドラゴンクエストノスタルジア
とか創ったら略語がDQNにw
とか創ったら略語がDQNにw
757名前は開発中のものです。
2006/08/01(火) 04:11:10ID:lqTlZ2D0 きっと鬼ぃは喉を餅に詰まらせて診断だ
758名前は開発中のものです。
2006/08/01(火) 16:04:04ID:dyzvPv2P ですよねー
759名前は開発中のものです。
2006/08/04(金) 18:42:33ID:W6nuuaJ8 うんうん ^^
760名前は開発中のものです。
2006/10/14(土) 17:56:19ID:TyTVrLwQ ワロタ
761名前は開発中のものです。
2006/10/26(木) 21:13:09ID:ssyUOzfl C++でRPGシステムを作ろうと思っています。
汎用性重視で描画処理はすべてフレームバッファ(Win32ではDIBとして表示。LinuxとかMacは知らんw)。
フォントも安心して使える固定サイズのフリーフォント内蔵で画面イメージも統一できます。
シナリオエディタも搭載、ツクール感覚でオリジナルのRPGを作ることが可能。
設計書書くんで、誰かプログラミングしてください。
汎用性重視で描画処理はすべてフレームバッファ(Win32ではDIBとして表示。LinuxとかMacは知らんw)。
フォントも安心して使える固定サイズのフリーフォント内蔵で画面イメージも統一できます。
シナリオエディタも搭載、ツクール感覚でオリジナルのRPGを作ることが可能。
設計書書くんで、誰かプログラミングしてください。
762名前は開発中のものです。
2006/10/26(木) 23:08:33ID:5Uv1F1QJ クラス設計は人の書いたの見てみたいなあ
763名前は開発中のものです。
2006/10/27(金) 15:19:29ID:PMSzIrz+764名前は開発中のものです。
2007/01/28(日) 23:04:23ID:LYBCO2KL 自分のスキルあげるならどういうゲーム作ったら良いのさ
765名前は開発中のものです。
2007/01/30(火) 11:53:29ID:C4TtFAJ1 一定の経験値でスキルあがるようにするとか。
……と微妙にボケてみる。
……と微妙にボケてみる。
766名前は開発中のものです。
2007/04/12(木) 17:49:52ID:ZybyQoX6 >>764
今のレベルによるが、
ある程度も組めないようなら、本買ってきてそれに載ってるコードを読めるようになるとか
AngBandなどオープンソースの奴を頑張って読む。
その後は、何か2週間で作れるゲームを自力で作る(設計も自分でする)。
ここまで、できれば、あとはだいたいどんなRPGでも時間や物理的障害を除いて出来るようになると思うよ。
今のレベルによるが、
ある程度も組めないようなら、本買ってきてそれに載ってるコードを読めるようになるとか
AngBandなどオープンソースの奴を頑張って読む。
その後は、何か2週間で作れるゲームを自力で作る(設計も自分でする)。
ここまで、できれば、あとはだいたいどんなRPGでも時間や物理的障害を除いて出来るようになると思うよ。
767名前は開発中のものです。
2007/04/12(木) 17:50:34ID:bCgTq/qC 盛りage
768名前は開発中のものです。
2007/04/12(木) 18:43:46ID:MaYb13RL >>764
作りたいゲーム作れば?
作りたいゲーム作れば?
769名前は開発中のものです。
2007/11/21(水) 16:03:51ID:74vDcPF7770名前は開発中のものです。
2007/11/26(月) 14:03:23ID:uhzP5Hxh ドミノ10万個を見ても圧倒されない精神力
771名前は開発中のものです。
2008/04/25(金) 07:51:24ID:CbC63WhO ほ
772名前は開発中のものです。
2008/06/04(水) 20:15:51ID:xVETCOHb 新しい gamedeve一応かきかき
TopPage - game-develop.com wiki
http://wiki.game-develop.com/
GameDevWikiを何とかするスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1156117275/
TopPage - game-develop.com wiki
http://wiki.game-develop.com/
GameDevWikiを何とかするスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1156117275/
773名前は開発中のものです。
2008/10/04(土) 03:04:33ID:6CC7noIJ world
774名前は開発中のものです。
2008/11/10(月) 13:58:56ID:CM/VVTpv めんどいから紙芝居から練習するよ
775名前は開発中のものです。
2009/03/04(水) 08:57:47ID:BIR8YGwO RPGを作る前にミニゲームなどを作れるようにしたほうがいいよ。
ミニゲームで作った技術はRPGで応用できると思う
いきなり、 大作を作ろうとしても無理
ミニゲームで作った技術はRPGで応用できると思う
いきなり、 大作を作ろうとしても無理
776名前は開発中のものです。
2009/03/04(水) 09:02:17ID:WGe6HWau その通りではあるが
こんな過疎スレで言わんでも
こんな過疎スレで言わんでも
777名前は開発中のものです。
2009/04/08(水) 14:56:30ID:3KQiReEr 過疎ってるなー。
778名前は開発中のものです。
2009/07/02(木) 02:09:35ID:TZX2GARh とりあえず完成形が何かというを考え直した方がいいとレナは思うの
779名前は開発中のものです。
2010/08/04(水) 16:06:44ID:uZVXPzys780名前は開発中のものです。
2010/09/13(月) 20:52:54ID:M+I9V0GA 旧態依然としたコマンド&ターン戦闘が激しくつまらないと思う今日この頃
781名前は開発中のものです。
2010/10/14(木) 12:24:18ID:/y1Wbqlm JavaScriptでも作れそう?
ttp://www.programmingmat.jp/game_dev/webgame_dev/mapevt.html
ttp://www.programmingmat.jp/game_dev/webgame_dev/mapevt.html
782名前は開発中のものです。
2010/10/23(土) 15:44:45ID:A2QO4U5x >>781
HTML5の威力はこっちのが判りやすいよ
http://www.publickey1.jp/blog/10/html5javascriptakihabaraiphoneandroid.html
HTML5の威力はこっちのが判りやすいよ
http://www.publickey1.jp/blog/10/html5javascriptakihabaraiphoneandroid.html
783名前は開発中のものです。
2011/01/21(金) 23:01:50ID:MHt2IGM0 その通りではあるが
こんな過疎スレで言わんでも
こんな過疎スレで言わんでも
784名前は開発中のものです。
2011/03/09(水) 22:15:31.71ID:hobFeZxC このスレもらっていいかな?
C++とDirectXでRPGを作りたいんだが
誰か一から作り方を教えてくれる奇特な人はいる?
C++とDirectXでRPGを作りたいんだが
誰か一から作り方を教えてくれる奇特な人はいる?
785名前は開発中のものです。
2011/03/09(水) 23:09:17.54ID:gadIXpQZ >>784
一緒に考えるくらいでよければ協力しますよ。
一緒に考えるくらいでよければ協力しますよ。
786名前は開発中のものです。
2011/03/09(水) 23:38:44.90ID:hobFeZxC787名前は開発中のものです。
2011/03/10(木) 00:15:24.30ID:zj8b7q7C >>786
まったく一からと仮定して下記を試してみてください。
#include <windows.h>
#include <stdio.h>
class WINDOW {
public:
WINDOW();
};
WINDOW window;
WINDOW::WINDOW(){
AllocConsole();
freopen( "CONOUT$", "w", stdout );
freopen( "CONIN$", "r", stdin );
}
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
printf( "hello world\n" );
do {
;
} while ( 1 );
return 0;
}
まったく一からと仮定して下記を試してみてください。
#include <windows.h>
#include <stdio.h>
class WINDOW {
public:
WINDOW();
};
WINDOW window;
WINDOW::WINDOW(){
AllocConsole();
freopen( "CONOUT$", "w", stdout );
freopen( "CONIN$", "r", stdin );
}
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
printf( "hello world\n" );
do {
;
} while ( 1 );
return 0;
}
788名前は開発中のものです。
2011/03/10(木) 00:23:55.03ID:zj8b7q7C (787続き)
いろんなアプローチがあるかと思うのでいろんな意見を参考にされるとよいと思います。
わたしはまずはprintfから作るオールドタイプです。
あと、DirectXはver9しか知らないです。
VisualC++は使ったことないのでまったくわからないです。
いろんなアプローチがあるかと思うのでいろんな意見を参考にされるとよいと思います。
わたしはまずはprintfから作るオールドタイプです。
あと、DirectXはver9しか知らないです。
VisualC++は使ったことないのでまったくわからないです。
789名前は開発中のものです。
2011/03/10(木) 00:26:00.17ID:LV/Xv7hB >>787
はい、試しました
はい、試しました
790名前は開発中のものです。
2011/03/10(木) 00:29:26.99ID:LV/Xv7hB >>788
DirectXは9.0cで作ろうと思っているので、ちょうど良いです
自分はもっとオールドタイプですね
MSXの頃にプログラムしてたので、Windows環境はさっぱりです
まあVC++が吐き出すWin32APIの雛形くらいは理解できますが
DirectXは9.0cで作ろうと思っているので、ちょうど良いです
自分はもっとオールドタイプですね
MSXの頃にプログラムしてたので、Windows環境はさっぱりです
まあVC++が吐き出すWin32APIの雛形くらいは理解できますが
791名前は開発中のものです。
2011/03/10(木) 00:36:07.62ID:zj8b7q7C 次はとりあえずWindowを作成してしまいましょう。
WINDOWクラスに下記のメンバーを追加してください。
private:
HWND handle;
MSG message;
bool sync;
struct {
unsigned int X,Y,W,H;
unsigned int x,y,w,h;
} screen;
変数名とか関数名は自分のポリシーにあわせて変更してください。
WINDOWクラスに下記のメンバーを追加してください。
private:
HWND handle;
MSG message;
bool sync;
struct {
unsigned int X,Y,W,H;
unsigned int x,y,w,h;
} screen;
変数名とか関数名は自分のポリシーにあわせて変更してください。
792名前は開発中のものです。
2011/03/10(木) 00:49:20.74ID:zj8b7q7C メンバー関数を作成します。
public:
bool open( void );
ゲームの名称が決まっているならプロジェクト名をつけておくと愛着が湧きますよ。
#ifndef PROJECT
#define PROJECT "お好きな名前"
#endif
そろそろファイルを.hと.cppに分割したほうがよいかも知れません。
public:
bool open( void );
ゲームの名称が決まっているならプロジェクト名をつけておくと愛着が湧きますよ。
#ifndef PROJECT
#define PROJECT "お好きな名前"
#endif
そろそろファイルを.hと.cppに分割したほうがよいかも知れません。
793名前は開発中のものです。
2011/03/10(木) 00:51:12.61ID:zj8b7q7Cbool WINDOW::open( void ){
HINSTANCE hi = GetModuleHandle( NULL );
WNDCLASSEX wc;
wc.cbSize = sizeof( wc );
wc.style = CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc = Proc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hi;
wc.hIcon = ( HICON )LoadImage( NULL,IDI_APPLICATION,IMAGE_ICON, 0,0,LR_DEFAULTSIZE|LR_SHARED );
wc.hIconSm = wc.hIcon;
wc.hCursor = ( HCURSOR )LoadImage( NULL,IDC_ARROW, IMAGE_CURSOR,0,0,LR_DEFAULTSIZE|LR_SHARED );
wc.hbrBackground= ( HBRUSH )GetStockObject( BLACK_BRUSH );
wc.lpszMenuName = NULL;
wc.lpszClassName= _T( PROJECT );
794名前は開発中のものです。
2011/03/10(木) 00:52:43.01ID:LV/Xv7hB795名前は開発中のものです。
2011/03/10(木) 00:55:08.70ID:zj8b7q7C RegisterClassEx( &wc );
handle = CreateWindow(wc.lpszClassName,
wc.lpszClassName,
WS_OVERLAPPEDWINDOW,
screen.X = screen.x = ( GetSystemMetrics( SM_CXSCREEN ) - SCREEN_W )/ 2,
screen.Y = screen.y = ( GetSystemMetrics( SM_CYSCREEN ) - SCREEN_H )/ 2,
screen.W = screen.w = SCREEN_W + GetSystemMetrics( SM_CXFRAME ) * 2,
screen.H = screen.h = SCREEN_H + GetSystemMetrics( SM_CYFRAME ) * 2 + GetSystemMetrics( SM_CYCAPTION ),
NULL,NULL,hi,NULL);
ShowWindow( handle, SW_SHOW );
UpdateWindow( handle );
return true;
}
これでコンパイルしてみてください。
"Procという関数がないよ"でエラーになります。
handle = CreateWindow(wc.lpszClassName,
wc.lpszClassName,
WS_OVERLAPPEDWINDOW,
screen.X = screen.x = ( GetSystemMetrics( SM_CXSCREEN ) - SCREEN_W )/ 2,
screen.Y = screen.y = ( GetSystemMetrics( SM_CYSCREEN ) - SCREEN_H )/ 2,
screen.W = screen.w = SCREEN_W + GetSystemMetrics( SM_CXFRAME ) * 2,
screen.H = screen.h = SCREEN_H + GetSystemMetrics( SM_CYFRAME ) * 2 + GetSystemMetrics( SM_CYCAPTION ),
NULL,NULL,hi,NULL);
ShowWindow( handle, SW_SHOW );
UpdateWindow( handle );
return true;
}
これでコンパイルしてみてください。
"Procという関数がないよ"でエラーになります。
796名前は開発中のものです。
2011/03/10(木) 00:57:21.06ID:LV/Xv7hB797名前は開発中のものです。
2011/03/10(木) 00:59:49.27ID:n38lezle windows.hのインクルード前に
#define WIN32_LEAN_AND_MEAN
を入れておくとコンパイルが早くなったりとか
_WIN32_WINNTを定義しておかないと勝手にVistaとか7専用にされたりとか
#define WIN32_LEAN_AND_MEAN
を入れておくとコンパイルが早くなったりとか
_WIN32_WINNTを定義しておかないと勝手にVistaとか7専用にされたりとか
798名前は開発中のものです。
2011/03/10(木) 01:00:15.45ID:zj8b7q7C >>794
MinGW g++というコンパイラです。VCのような統合環境が苦手なんです。
静的メンバー関数としてProcを追加してください。
private:
static LRESULT CALLBACK Proc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp );
LRESULT CALLBACK WINDOW::Proc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp ){
switch ( msg ) {
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hWnd, msg, wp, lp );
}
MinGW g++というコンパイラです。VCのような統合環境が苦手なんです。
静的メンバー関数としてProcを追加してください。
private:
static LRESULT CALLBACK Proc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp );
LRESULT CALLBACK WINDOW::Proc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp ){
switch ( msg ) {
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hWnd, msg, wp, lp );
}
799名前は開発中のものです。
2011/03/10(木) 01:04:37.18ID:zj8b7q7C >>796
スクリーン用の定数定義を忘れていました。
WINDOWクラスに下記の定義を追加してください。
private:
enum {
SCREEN_W = 800,
SCREEN_H = 600,
};
数値はお好みで変更ください。
ファイルや環境変数で外部から取り込む方法もあるかと思いますが、
面倒くさいんでやってないです。最後の方で対応すればよいかと。
スクリーン用の定数定義を忘れていました。
WINDOWクラスに下記の定義を追加してください。
private:
enum {
SCREEN_W = 800,
SCREEN_H = 600,
};
数値はお好みで変更ください。
ファイルや環境変数で外部から取り込む方法もあるかと思いますが、
面倒くさいんでやってないです。最後の方で対応すればよいかと。
800名前は開発中のものです。
2011/03/10(木) 01:14:43.71ID:LV/Xv7hB801名前は開発中のものです。
2011/03/10(木) 01:21:28.74ID:zj8b7q7C802名前は開発中のものです。
2011/03/10(木) 01:25:17.77ID:LV/Xv7hB >>801
できました
できました
803名前は開発中のものです。
2011/03/10(木) 01:30:45.13ID:zj8b7q7C >>802
そうですか。。。コンパイラの差異かも知れないです。
先々、この手の差異でどうにもわからない場合は、
申し訳ないですが自己解決か他に助言を求めてください。
下記の2つのメンバー関数を追加してください。
private:
bool peek( void ); //ウィンドウのメッセージを処理します
bool sync( void ); //タイマーの同期を取ります
そうですか。。。コンパイラの差異かも知れないです。
先々、この手の差異でどうにもわからない場合は、
申し訳ないですが自己解決か他に助言を求めてください。
下記の2つのメンバー関数を追加してください。
private:
bool peek( void ); //ウィンドウのメッセージを処理します
bool sync( void ); //タイマーの同期を取ります
804名前は開発中のものです。
2011/03/10(木) 01:36:52.24ID:LV/Xv7hB■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【足立区ひき逃げ事故】意識不明の20代女性が死亡 死者2人に [Ailuropoda melanoleuca★]
- ■緊急地震速報 熊本など [人気者★]
- 足立区11人ひき逃げ・37歳男逮捕 取り調べ中に暴れたり、会話がかみ合わないなど“異常行動“か [Hitzeschleier★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」 [muffin★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」★2 [muffin★]
- 🇺🇸🇨🇳米中関係は「極めて強固」とトランプ氏… ★8 [BFU★]
- 【実況】博衣こよりのえちえちFantasy map simulatorミニキャラ死闘編🧪★2
- 【実況】博衣こよりのえちえちFantasy map simulatorミニキャラ死闘編🧪
- 【モンスト】モンスターストライク総合11/25【クソ浪人立てる時コマンドの補充をしろ🏡】
- 政府、高市さんの答弁は従来の政府見解を完全に維持していると閣議決定。特定野党、完全敗北 [519511584]
- 高市早苗、ガチで「メス」丸出し。各国女性首脳陣の中で1人だけ「スカート」 [165981677]
- 【悲報】立川志らく「別に高市さんはおかしな事言ってないのに叩いてる奴は馬鹿!!むしろ中国にキレろよ!!」 [522666295]
