トップページgamedev
981コメント342KB

【0から】C言語でゲームを作る【スタート】

■ このスレッドは過去ログ倉庫に格納されています
0001104/08/25 08:14ID:GyrQ+1pU
アイデアはあるけどプログラムその他ができない為に実現できない人、これから
C言語を勉強していきたい人、など

まったく0から覚えていこうというスレです。初歩的な質問から進行状況の報告、
こんなゲームを作りたいんだ、等の夢、妄想を語ってくれてもおkです。
みんなでモチベーションを高めて挫折しないようにがんばっていきましょう。

たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。アドバイス
や質問に答えてくれる方は大歓迎です。
0715名前は開発中のものです。05/01/26 05:41:37ID:jSqP5Ccr
>>714
フリーカーソルってこと?
それならエディタ設定で選べるが…
071669205/01/26 18:30:02ID:EGh3OyI2
>>707
やってみたけどできませんでした。

キーボードのオートリピート機能とかで、
押しっぱなしにしても内部では勝手に連打してるんです。
0717名前は開発中のものです。05/01/26 21:54:20ID:8L+i4BPI
>>716
kbhit()が使える環境ならそのままリピート無視して使えたと思うけど?
Windowsで開発してるのなら、GetAsyncKeystate() を使えば確実
0718名前は開発中のものです。05/01/26 23:35:15ID:tIGc3T01
で、結局>>700の言う特殊って何?
0719名前は開発中のものです。05/01/27 00:16:30ID:QfcSPUvG
「C言語は移植性が高い」という幻想をいつまでも追っているのだろうな。
072069805/01/27 11:19:46ID:2DtUXEc7
>>713
「猫でもわかる」についてた奴なんで、インストールしてます
使い方が難しいので、メモ帳に逃げてました。
リンカとか使うようになったら、移行しようと思います
0721名前は開発中のものです。05/01/27 18:13:40ID:o46I3wJj
>>719
移植性が高くても、現実の移植は簡単じゃないのにな。
0722名前は開発中のものです。05/01/27 19:38:52ID:aSpCHcWE
独習Cと独習C++を読み終えました。
VC++でゲームを作るのが目標なんですが、
今の私にピッタリな勉強サイトありませんか?
0723名前は開発中のものです。05/01/27 22:58:18ID:WSAoHDpT
>>722
DirectX によるゲームプログラミング入門 : 第 1 章 3D ゲームプログラムの基礎
http://www.microsoft.com/japan/msdn/academic/Articles/DirectX/01/

NVIDIA GPU Programming Guide Version 2.2.0 - Japanese (.pdf) [1.4 MB]
http://download.nvidia.com/developer/GPU_Programming_Guide/GPU_Programming_Guide_Japanese.pdf
0724名前は開発中のものです。05/01/28 18:56:28ID:/9HPt2Rn
>>723
おいおい・・・
>>722
ttp://www2s.biglobe.ne.jp/~sinmasa/
ttp://www.c3.club.kyutech.ac.jp/~sukiyaki/
ttp://www.sm.rim.or.jp/~shishido/
がおすすめ。何を作りたいかによるけど、。
0725名前は開発中のものです。05/01/28 19:32:21ID:36nwhN0G
>>724
ダビスタ3のような物を作りたいと思っています。
C++の次は具体的にどのような事を勉強すればいいのでしょうか?
0726名前は開発中のものです。05/01/28 19:53:13ID:tGEFJMBs
>>725
>>724のサイトを巡ればこんな所で聞く必要は無いはずなんだが。
0727名前は開発中のものです。05/01/30 23:50:22ID:0egSxxVF
>>725ではありません。

ここ
http://mikata.curiocube.com/
と猫でもわかる・・・のC++編を読みながら
C言語からC++に移ってみようかと悩んでます。

CからC++に移行したほうがよい結果を生みますか?
0728名前は開発中のものです。05/01/31 00:40:36ID:CVBDoXdb
素人の俺が解答していいのかな?

>>727
C++のほうがオブジェクト指向でクラスとかあって管理しやすい気がする。
将来的にDirectX使ってC系でプログラム組みたいのならC++(クラスとか)は必須。
Cで書いたソースでもそのほとんどがCPPとしてコンパイルできるし、
本格的にプログラムを組んでゲームを作っていきたいのならやっていて損はないと思う。


ちなみに俺は猫でもでCからC++読んで、それからWindowsSDK読んで、
それから別サイトでDirectXに入った。
0729名前は開発中のものです。05/01/31 00:42:15ID:1rXC/tk7
移行というか、Cやってんなら自分が必要だと思う機能だけつまみ食いすればいい。
ぶっちゃけクラス作んの(’A`)マンドクセと思うなら作らんでもいいし。
0730名前は開発中のものです。05/01/31 00:44:51ID:2XbQcfiv
>>728
別にC++要らんだろ。COMはCからでも操作できる。
0731名前は開発中のものです。05/01/31 18:32:40ID:G766Q76l
>>728
C→C++で次にDirectXに行こうと思うんだが、
その前に猫でWindowsSDK勉強を挟んだ方がいいですか?
WindowsSDKが何なのかってのもよく分かってないんですが。
0732名前は開発中のものです。05/01/31 20:57:37ID:yK+oTGTD
君はどの環境のソフトを作ろうとしてるかわかってるのかい
0733名前は開発中のものです。05/01/31 21:20:30ID:G766Q76l
>>732
Windowsdです。
Cは一通りやりましたが、次に何をすればいいか全く分かりません。
Win32 APIやWindowsSDKとか沢山あるので、
何からやればいいか分かりません。
どれもCの知識のみじゃあできませんって書いてありますし・・・。
0734名前は開発中のものです。05/01/31 21:29:20ID:Nd+7aRPk
>>731
なにがしたいのかをはっきりしないと時間の無駄だよ。
君が思っている程プログラミング関係で覚えることは少なくない。
順に全てを学べる程少なくはないんだ。
だから、なにを学ぶべきかを初めにしっかりと意識しないといけない。
場合によっては勉強した事全てが無駄になることだってあるんだ。
初めに言っておくけれど、よくプログラミングを始める人が勘違いしていることだけどGUIプログラミングができても*まったく*すごくもなんともないんだよ。
それはレベルの高い人から見て、という意味ではなくて、GUIが本質的ではないからなんだ。
このスレはCでゲームを作るスレらしいから、きっと君もゲームが作りたいのだと思う。
でも、良く考えてくれ。
「ゲームとは何か」
可愛い女の子がニコニコ笑っている絵が順番に表示されるのがゲームか?
飛行機の画像とミサイルが左右に動いて、ジョイスティックで操作することか?
白くて丸い絵をクリックすると、クルリと回った後に黒くて丸い絵に入れ替わるのがゲームか?
違う。それは紙芝居だ。それはアニメだ。
コンピュータを使ったゲームは、その操作や思考を楽しむものなんだ。
そのためには、コンピュータはプレイヤーを楽しませねばならない。
紙芝居もアニメーションも、それはそれで楽しめるがゲームではない。
コンピュータでなくてもできることだ。
コンピュータは昔、人工知能と呼ばれていた事がある。
もちろん、今となっては、これは誇大広告であるが、ゲームにはその一端を見ることができる。
例えば、将棋をするとき、あまりに単純な手しか取らない対戦相手だと、当然すぐに
0735名前は開発中のものです。05/01/31 21:44:16ID:vXo59ck5
>>733
「Cの知識のみでは出来ない」とどこで読んだのかは知らんが(多分おまいの勘違い)、
言語スキルはCがあればそれでいいはずだが。

Windowsプログラミングであれば基礎的なイベントドリブンだとかGUIについての知識も
必要だがそれは同時に勉強していけば何の問題も無い。

まあその程度の認識でCを一通りやったっていうのもどんなもんだかと言われても文句は言えない。
0736名前は開発中のものです。05/01/31 22:02:20ID:D9OUk3Xj
>733
まずDirectXの書籍を買うなり、参考サイトの解説を読むなりしてすすめれ
そこでわからないこと(たとえばAPIのこと)なんかがでてきたら、そのつど
調べていけばいい
あとDirectXやるんならC++にも手を広げる必要あり

まぁうだうだ悩む暇があったら本買ってサンプル打って実行しる
0737名前は開発中のものです。05/01/31 22:41:54ID:CWwIyJqJ
>>731
DirectXに行くならWindowsSDKをやっておいたほうがいい。
DirectXで動くアプリケーションもWindowsアプリケーションだから。
まぁ、WindowsSDKを端折って済ませたくても、
ウィンドウの作成とウィンドウプロシージャでのメッセージの処理は押さえておくべきだと思います。
その二つを押さえてからDirectXに入れば・・・まず困ることはないような。
猫でものWindowsSDKで勉強するなら、第一部の4章くらいまでは読むべきだと思います。
ただ読むのではなくて理解する必要がありますけど。
0738名前は開発中のものです。05/02/01 02:46:23ID:7pzsTxKl
>>727です。
>>728さん>>729さん有難う御座います。

確かに仰るとおり、Cで書けるところはCで書いても通りますからね。

頑張ってみます。
0739名前は開発中のものです。05/02/01 22:38:24ID:lTb3GnVn
>>738
自分の作りたいもののために必要な知識を身に付けていくのも結構だけど、
勉強の区切りがついたところなら別のアプローチを試してみないか?

・今持っている技術だけを使ってどんなゲームが作れるかを考案し、実装する

勉強の成果が確認でき結果も残せていいと思うんだが。
数当てゲームでもいいから、バランス調整や操作性の向上も含めた
「作品」を仕上げる練習をしてみることをお勧めするよ。
0740名前は開発中のものです。 05/02/02 23:41:25ID:wKu6pB/X
思い切り初心者です。
一念発起してVS.netのtheSpokes買ってきたと友人に言ったら
VC#の参考書をたくさん教えられました。
VC#自体どういうものか分かってないのですが、これから始めてしまっても構わないでしょうか?
それとも当初の予定通り独習C買ってきてCを勉強する方が将来的にはいいのでしょうか?
0741名前は開発中のものです。05/02/03 00:16:03ID:Ww62MRW+
>>740
その友達は興奮してファビョってるな。
VC#が何かわからないほど初心者なら独習Cをやったほうが良い。
ただ、独習Cは図解が無いし退屈だから気をつけてね。

ちなみにその友達、竹井って言う名字じゃないよね?
074274005/02/03 00:38:09ID:jUth+a0T
>>741
レスありがとうございます。Cからの方が良さそうですね。
VC#はJAVAよりの言語でオブジェクト指向だ……という字面はよく見るのですが
実際の所その意味さえよく分かっていないので、アドバイスどおり独習Cから頑張ります。

>竹井って言う名字
よくわかりませんが幸か不幸か人違いのようです。
0743名前は開発中のものです。05/02/03 02:54:13ID:IAM13XRE
>>741
> ちなみにその友達、竹井って言う名字じゃないよね?
笑わせるなよw
0744名前は開発中のものです。05/02/15 11:56:08ID:830P8G/f
ちょっとおまいら、私の悩みを聞いてください。
VC#プログラミング歴2ヶ月です。
ファイル名変換ソフトやアクセスのデータベースを
操作するソフトは作れるようになりましたが、
VC#というソフトの使い方がわかっただけで、
まったくプログラミングをしているという気になりません。
最近は当初の目的であるゲームプログラミングに手を出そうと思っています。
しかし新しく本を買っても、結局VC#の使い方や必要な部分の
コピーペーストに終わって、本質のところを理解できないのではないかと、
VC#に対するモチベーションが下がってきています。
(ちなみに私の最終目標はトランプゲームや、
 ファミコンレベルのシミュレーションゲームです。)
仮にVC#でこれらを完成できたとしても、そのときプログラミングの力が
私に備わっているのか甚だ疑問です。
皆さん、Visual○○をつかって、私のような経験をしたことはありませんか?

思えば、基本情報用に勉強したC言語は楽しかったなー・・・
0745名前は開発中のものです。05/02/15 17:25:18ID:p5urPZ0n
そういう余計な回り道をするからだ。
ゲームが作りたいんなら、ゲームを作るのに必要そうなことだけやればよろしい。
DirectX で画像処理とか。

興味の無い分野ではどうも大きなものを作ろうという意識が薄れてしまう。
結果として、表面的な学習で終わってしまう。
まだ初学者だろう。仕事になったりしたら事務的な作業ばっかりになるぞ。
今のうちだけなんだから、好きなことやれよ。
074674405/02/15 19:40:05ID:830P8G/f
>>745
使い方のわからないコントロールが7割残ってようが
自分が打ち込んだコード以外(VC#が自動的に作った)の
コードが理解できなかろうが、さっさとDirectXとかの
ゲームプログラミングに特化した本を買って勉強しろって
ことですか?
0747名前は開発中のものです。05/02/15 20:56:05ID:6CIQh+IC
>>746
ゲーム作るのに使わんだろ。

クソつまらんコントロールいじりで根本的な技術向上をないがしろにするか、
ゲーム作って楽しく技術向上するか、どっちがいいかはわかりきってる。
コントロールいじりだって、技術が向上してから勉強し直した方が効率いいに決まってる。

あとな、学校のおべんきょじゃねえんだぞ。
「使い方のわからないコントロールが七割」ってお前、課題みたいに言うなよ。
074874405/02/15 21:08:47ID:830P8G/f
やっぱりそうですか。
逆引き大全500とか見ても、これ全部理解してる人って
内容は浅いながらも凄まじい好奇心持ってるんだなと思ってました。
0749名前は開発中のものです。05/02/15 21:09:10ID:2rR4DQMa
コントロールの存在すら知りませんでしたじゃ困るけどな
0750名前は開発中のものです。05/02/15 21:12:00ID:I9tMoLtC
そんなもの技術でもなんでもない。
ただのテクニックだ。
くだらん。
0751名前は開発中のものです。05/02/15 21:36:29ID:FM1HiEFr
もまえらこんなのもありますよ
http://www.geocities.jp/gpandaz/
0752名前は開発中のものです。05/02/15 21:45:37ID:thXIoL1e
テクニックは技術のことではないのか。



テクニック [technic]

技術。技巧。テクニーク。

三省堂提供「大辞林 第二版」より
0753名前は開発中のものです。05/02/15 21:46:17ID:bkBMdMej
>>744
その気持ち、自分はよく分かる。
http://www.kumei.ne.jp/c_lang/ とかで勉強してみてはどうだろう。
VC#というのはよく分からなく、使えるか分からないけど。
0754名前は開発中のものです。05/02/15 21:58:56ID:JLbFWFfc
自分の属性をはっきりさせておかないと中折れする。
プログラミングの勉強をしたいのならプログラミングの勉強をする。
ゲームを作りたいならゲームを作る。
0755名前は開発中のものです。05/02/15 22:49:35ID:6RofYV1f
というかツクールツカエ
0756名前は開発中のものです。05/02/15 22:58:21ID:V7EcU05u
>744
とりあえず画像表示する方法とキーボードからの入力を取得する方法がわかれば色々遊べるぞ
0757名前は開発中のものです。05/02/15 23:23:53ID:+LnwGr1n
男ならBCCでおk
075874405/02/16 08:35:25ID:056BD+l5
サンクスです。
見てみたけど、ウィンドウを作るとか画像を移動するとか
そそるなぁ。早速やってみます。
0759名前は開発中のものです。05/02/16 09:43:10ID:mBeMpjFa
いやあ、よりによってそこを見てってのは止めた方がいいかと。
じゃあ良いサイトを紹介しろって言われても困るけれど・・・


http://pc5.2ch.net/test/read.cgi/gamedev/1008220559/
各種ライブラリ紹介スレを参考にして一通りリンク踏んでみるとか。
0760名前は開発中のものです。05/02/16 18:16:02ID:ihl6KqA8
とりあえずDirectXの入門本を一冊買えばいいような気がする。

最近の入門本はどういう内容かしらないけど、漏れが DirectX3 ぐらいの時に買った本は、
CreateWindow から始まり、DirectDraw を初期化して、ダブルバッファ用のサーフェイスを作って、
という感じで、最後にはDirectXで簡単なシューティングゲームは作れるぐらいにはなってたよ。
0761名前は開発中のものです。05/02/16 21:22:24ID:5mrimBjr
質問!
K&R理解できたら初心者卒業ですか?
K&Rって中級者向けだと思ってた(((( ;゚Д゚)))ガクガクブルブル
0762名前は開発中のものです。 05/02/16 23:30:49ID:2NIZLMW2
まあ、Effective C++すら基礎固めと言ってる人間を知ってるが。
みんな凄いよな。俺もまだK&Rレベルだよ。
0763名前は開発中のものです。05/02/16 23:48:27ID:ifwmOIa6
そりゃ基礎固めだろ。
Effectiveとかに載ってる約束事に近い技法は数学で言えば「公式」に過ぎない。
0764名前は開発中のものです。 05/02/17 01:05:28ID:Z3P3sN5U
そうなのか……精進します。
0765名前は開発中のものです。05/02/17 01:22:28ID:y6k4vsDj
まぁ、K&RもEffective C++も、いわゆるアレだ。「基礎にして初歩にあらず」
0766名前は開発中のものです。05/02/17 23:44:54ID:mJ/iHhQ9
本なんて準備しなくても多くの内容がするっと出てくるようになれば
上達したとみなしていいんじゃないかな。
でまあ、初歩でも何でもいいが、とにかく上達し続けることが大切だ。
ある程度に達した時点で考えることを止めて
自分のできる範囲内で済まそうとする奴よくいるが、
努力は怠るなと言いたい。
0767名前は開発中のものです。05/02/18 09:41:34ID:/2hbyQqV
>>766
でも自分の目標に達しちゃったら、それでいいと思う。
0768名前は開発中のものです。05/02/19 19:16:38ID:aqIoA5U3
指標探しは各自で殺れ
0769名前は開発中のものです。05/02/19 21:23:09ID:u3jKB+Nn
Borland C++ Comiler(ver5.5)なんですけど
コンパイルすると
Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
とでますがどうしてでしょうか??
C++を解説してるサイトのソースも同じエラーがでます。
0770名前は開発中のものです。05/02/19 21:50:15ID:CqhQ13fy
>>769
・Windowsアプリケーションを作ろうとしている
 はい  → @へ
 いいえ → Aへ

@コマンドラインならオプションに -W をつける。
  BCCDevは知らん。

Amain関数がない。
0771名前は開発中のものです。05/02/19 21:51:18ID:SeeIdQIF
本当に C++ の話か? Win32 アプリケーションのプログラミングの話じゃないのか?

もし main() じゃなくて WinMain() から始まってるようなら、
bcc32.exe に -tW ってオプションを付けてみろ。
0772名前は開発中のものです。05/02/19 21:55:59ID:SeeIdQIF
重複すまん
0773名前は開発中のものです。05/02/20 05:26:11ID:n/2qaPWT
>>770>>771
説明不足でした。
その通り、Windowsアプリケーションです。
オプション -W をつけたらちゃんとコンパイルできました。
ありがとうございます。
077433005/02/20 16:51:55ID:u8X98eX9
ああこのスレまだあったんですね(^^
やっぱりC言語は潔くて面白いですね。
漏れはWindowsゲームプログラミングの本に書かれた内容を理解して、
手続きが面倒な部分は自分が分かり易いようにラップしたライブラリを作って、
簡単なシューティング(真っ黒な画面でショボイ宇宙戦闘機がサシの3本勝負)を
作りました。効果音や音や音楽もちゃんと鳴ります。
次は2DRPGを作ろうと思います。
最初に作ったショボいシューティングと違って、
マップ情報とかイベント情報は当然プログラムから切り離すべきですよね?
そうなると視覚操作でデータを生成するGUIのツールが便利というか
必要になると思いますが、今まで得たWindowsのCプログラミングの知識では、
Windowにコントロールを貼り付けて、それに対応したイベント処理とかの
書き方が全く分からないので、そういうのはVisualBasicで作ろうと思います。
そういうツールを作成を解説した親切なサイトもたくさんありますしね。
07752DRPG制作人05/02/20 21:15:05ID:ontbG9w8
>>774
>マップ情報とかイベント情報は当然プログラムから切り離すべきですよね?

私が作ったRPGシステムでもそうしてたんだけど、イベントに関しては
プログラムで直接書くのもありな気がしてきた。汎用的なイベント処理
仮想マシンを作るのはかなりしんどい(仮想マシン用にコードを書くの
もしんどいw)し、イベントの自由度が落ちるからね。

>そうなると視覚操作でデータを生成するGUIのツールが便利というか
>必要になると思いますが、

マップエディタは必須。イベントに関しては、マップ座標を直接指定しな
がらイベント処理用のコード書くのと、その座標やコードを生成するGUI
ツールを作るのと、どちらが楽か良く考えた方が良いかも(イベントを
プログラムで直接書くなら、イベント生成ツールという選択肢は消える)。
イベント生成ツールはおそらく「その場限り」になって、次に再利用する
機会はない可能性が高いから。
077633005/02/20 22:02:06ID:u8X98eX9
>>775
>汎用的なイベント処理
>仮想マシンを作るのはかなりしんどい(仮想マシン用にコードを書くの
>もしんどいw)し、イベントの自由度が落ちるからね。

レスthxです^^
ああ、確かにそれは言えてますね。
マップに関しては、2D見下ろし型って決めちゃっても
まあゲーム性に関係する表現の自由度にはあまり影響しないれど、
イベント情報ファイルを逐次読み込んで処理するエンジンまで作ると、
出来の悪いRPG作成ツールになってしまう可能性が高いですからね。
となると、イベントの実体とプログラムをどのような単位&構成で
結びつけて管理していくかを、しょぼい雛形らしきものを作りながら
よく考えてみます。
(その前にマップデータのファイル設計とエディタ作成の作業がありますがorz)
0777名前は開発中のものです。05/02/22 20:51:54ID:/lAGqJ0l
へたれだからマップエディタ作っても
エディタでマップ作るの面倒。
というか、挫折した。
マップの組み合わせが難しい。お城とか作りたいんだけど...。
マップチップはフリー素材で素材自体は良いのに、使う側に問題(略)
0778名前は開発中のものです。05/02/22 22:36:46ID:qypsTgSw
なんかC++覚えてきたら、他の言語のこともわかるようになってきた。
ちょっと驚いてます。

オブジェクト、プロパティ、メソッド、イベントの意味がわかっただけで、
他言語が理解できるようになってきました。
クラス、インスタンス、インターフェイスなるものを知って更に納得。
今、例外処理のところを重点的に調べております。

Cだけやってた頃はサッパリ分かりませんでした。
ちょっとC++に挑戦してみて得した気分です。
(といってもC++もCもまだまだ知らない事多すぎですけど。。)
0779名前は開発中のものです。05/02/23 20:00:51ID:TqSGdh/x
オブジェクト指向ってよく分からないけど、
アプリケーションが表現する対象世界を構成する要素を表現するのに、
それを構成する一まとまりの情報とそれに基づく状態を管理する関数の
鋳型を作って個別名でメモリを割り当てることで、同一プロセスの中で
同じ鋳型から生成された同じ動きをする部品関数を、情報や状態は別管理で
使え、部品の機能拡張も容易という点については、かなりいいもんだと思う。
後、要らなくなった時にその部品関数はメモリから開放できるという点が
すばらしい。(C++の場合それがネックになるそうだが)
必要なときに必要な情報を、その情報とは直接関係のない関数を呼びまくって
お膳立てしてから処理する従来のCではこうはいかない。
データ主導開発の利点がちょっと分かってきた。
でも、やっぱりCでしこしこライブラリ作って、無駄なく速いプログラムを作るほうが面白い。
特に個人のゲーム開発ではね。
0780名前は開発中のものです。05/02/23 20:47:47ID:zB1TH8NI
>>779
>部品の機能拡張も容易という点については
継承を機能拡張に使うのは、なるべくやらないほうがいい。
>要らなくなった時にその部品関数はメモリから開放できるという点が
ガベージコレクション?はオブジェクト指向とは関係ない。
>必要なときに必要な情報を、その情報とは直接関係のない関数を呼びまくって
>お膳立てしてから処理する従来のCでは
それはオブジェクト指向以前に設計が悪い気が



どうも歳をとると説教くさくなっていかん。
0781名前は開発中のものです。05/02/23 23:26:42ID:V31MJ0K3
部品を分離できて、鋳型から実体を生成できるっていう
一番基本的な大きな利点を理解できてるから、まあそこは誉めといてやろうや。

あと、
> やっぱりCでしこしこライブラリ作って、無駄なく速いプログラムを作るほうが面白い。
よっぽど変な言語じゃない限りは、
ちゃんと実装すれば言語による速度差はほとんど無いよ。
無駄を作るかどうかに関しても実装次第だね。

俺は普段Cでライブラリ書いてるので、特有の面白さがあるってのはわからんでもない。
0782名前は開発中のものです。05/02/23 23:36:26ID:UjT2eVy3
>779
Cでもデータ中心の設計でやったほうがいいし、隠蔽化もある程度徹底したほうがいい
意味のある単位でモジュールとしてまとめていって、グローバル変数も極力staticにしていくだけでも
保守性や再利用性は格段にあがる

無制限のグローバル変数がたくさんあって意味のある単位でまとめられてない場合は
ちょっと気を抜くとソースがスパゲッティになってしまう

そうなってしまうと部分的に再利用するために取り出そうとしてもグローバル変数や関数の依存関係の
問題で難しくなってしまう

スパゲッティを避ける為には最初から意味のある単位でモジュール化する必要があるし
モジュールの独立性や強度といったものにも気を配る必要がある

漏れはオブジェクト指向ってのはその延長線上にあるものだと解釈してる
0783名前は開発中のものです。05/02/24 02:10:47ID:ZD3CN/k4
> グローバル変数も極力static

fopen() の設計を見ろよ。
構造体を malloc() で確保して返すのがベスト。
C++ でクラスを new すんのと(やろうとしてることの根っこは)同じ。
C でも、グローバル変数はもちろんのこと static もかなりの例外じゃない限り必要無い。
関数のポインタも合わせて活用すれば C だけでもオブジェクト指向は可能だよ。
はっきり言ってそこまでやるなら D 使った方がいいとは思うが。
0784名前は開発中のものです。05/02/25 00:04:40ID:RU8p+2dU
>783
もちろんグローバルやらは少ないほうがいいと思うが
プログラミング経験の浅い香具師はグローバルを使う頻度が高いから
まずはstaticに、そして減らしていくっていうステップが必要だろう

あと漏れはグローバル変数=不要なものとは思わない
意味あるグローバル変数やstatic変数はあってもいいと思う
別にグローバル変数がない=オブジェクト指向でもないからな
0785名前は開発中のものです。05/02/28 22:54:27ID:1VSyH9ti
どっちでもいい
078633005/03/01 00:14:47ID:nSR+H/34
まともなRPGは思ったより難しそうです..orz。
マップを歩く人とか、会話とか、画面のスクロールとか。
どういう構造でプログラムするのが未だスッキリとせず、いろいろ手探りで模索中です。
取り敢えず今日は、フリップ専用スレッド(ペイントメッセージ発行のみの極小エンジン)を作りました。
即席の描画スレッドや、イベント監視スレッドで捕捉したキー情報などで
アニメパターンや位置をずらして描画させてやることで、
簡単なアニメーションのテスト(マリオ歩行)をしてみました。
あとは本格的なゲームループを上手く構造化して、
あるマップに来たときに、下地マップや、そこで動くイベントを一括してバックバッファに書き込むスレッドを
起動してやれば「動いてる町」を表現できるのでは?と、いい加減なの思いつきで進めています。
その先がどうなるのかは考えていません汗
システムがある程度固まるまでは、マップエディタも仕様変更しながらの作業です。
この辺を詳しく解説してるお人よしなサイトはなかなか無いみたいですね(^^;。
明日も仕事なのでもう寝まつ。zzz
0787名前は開発中のものです。05/03/01 19:45:26ID:TpPMIZbO
C言語の入門書読み終えた。BASICでいうGOTOみたいなのは載ってなかった。多分あると思うけど。
クラスってのを理解するためにこれからC++に取り掛かるところ。
0788名前は開発中のものです。05/03/01 19:46:51ID:fQRsmgtr
>>787
goto文に触れてない入門書があるのか?!
0789名前は開発中のものです。05/03/01 19:59:16ID:CElQ5t1d
何か良く分かりませんが、
ここにURL置いときますね。

http://www.ipsj.or.jp/members/Journal/Jpn/4503/article013.html
0790名前は開発中のものです。05/03/01 20:28:28ID:mFC8Y2QC
>>789
本文読めない
0791名前は開発中のものです。05/03/01 20:36:24ID:CElQ5t1d
>>790
よし、upしてやろうか?ほしけりゃやってやるが。
0792名前は開発中のものです。05/03/02 00:21:10ID:IAdEOla+
goto、いいよねー
積極的に使っていこうぜ
0793名前は開発中のものです。05/03/02 00:35:14ID:1E+KTVXb
そうそう
gotoは臆することなく使うのがスーパープログラマーだぞ
0794名前は開発中のものです。05/03/02 09:46:47ID:91+qZ4pw
goto に限らんが、必然性のある場所で有効に使えば何でも道具になるわな。
goto はその場面が少ないか、他にもっと有効な手段がある場合が多いというだけ。
他にもっといい手段があるかも知れないのに安易に goto で済ませてるだけだったら
そりゃ単なる思考停止だろうと言う他無いが、
ここは goto しかねえ! と思ったら使っていいんでない。
0795名前は開発中のものです。05/03/02 14:43:06ID:HTfNB3Bb
ええっと、質問いいでしょうか
Win2000使用のCの初心者でして、
試しにWindowsアプリの簡単なもののコンパイルをして見ようと考え
試みに↓のサイト

http://goldfly.ld.infoseek.co.jp/

のスケルトンのやつのコンパイルをして見ました
しかし、メイクが出来て実行ファイルを走らせてもメニューの表示が何らないウインドウが
表示されてしまいます
ウインドウにメニューが加えられて表示される筈ですが…
この辺りについて首をひねるばかりでどうすれば良いのかわかりません
この場合どう考えれば良いのでしょう?

079679505/03/02 14:52:46ID:HTfNB3Bb
あ、追記ですが
パズル堂のBCCとBCC Developerについて解説しているページで
「簡単なプログラムを作ってみる」というのがあってそれについてこちらは質問しています
上記の書き込みで貼ったURLではどこのページの記事についての質問なのか
はっきりとわかりませんね…すいません
0797名前は開発中のものです。05/03/02 18:50:28ID:VuiEwiSv
よくわからないけど、

brc32 WinSkelton.rc 実行ファイル名

はいらないの?
0798名前は開発中のものです。05/03/02 20:46:37ID:eXTuyVOB
>>797 の言うとおりリソースをリンクしてないんだろうね…
そのページの解説が不十分なんだと思われ

他の解説サイト探したほうがイイヨ
0799名前は開発中のものです。05/03/02 23:49:30ID:0NH0DsAP
コンソールでゲームを作るのは面白いね。ヘタれな漏れに最適。
>>375にあったページの五目並べをCPUと対戦できるようにしてみた。
http://mudlava90.hp.infoseek.co.jp/prog/gomoku.zip

空気嫁って?ゴメソ
080079905/03/03 00:31:08ID:qRrU22jP
漏れのPCにはテンキーがなくて勝手に操作方法を変えているのを忘れてた…
現在はテンキーとスペースでも操作できるバージョンに差し替えてます。

操作方法
8・↑ カーソルを上に移動
2・↓ カーソルを下に移動
6・→ カーソルを右に移動
4・← カーソルを左に移動
スペース・Enter 石を置きます
Ctrl+C 強制終了
0801名前は開発中のものです。05/03/03 02:05:09ID:lR30Beol
>>799
イイネイイネ(゚∀゚)
単純だが面白かったよ
まあ碁に慣れてるから楽勝なわけだがw

ところで五目並べは黒必勝があった希ガス
0802795&79605/03/03 18:06:13ID:5tvjcctg
>>797
>>798
お答えありがとうございます
どうやら他のサイトを調べて見るそちらの方が正解だったみたいです
下記のサイト↓

http://www.kumei.ne.jp/c_lang/bcc/bcc_05.htm
http://www.kumei.ne.jp/c_lang/bcc/bcc_06.htm

で、おおむね同じ事をやっているのでこちらで試したら今度こそうまく行きましたよ
ようやく疑問が解消出来て安心出来ました
だけど、このサイトでも少し初心者には足らない所があるみたいです
コマンドラインからではどうなるかは確認してませんが、BCC Developerでコンパイル
をして見るとリソーススクリプト側にエラーが出てしまい当初当惑させられました
まあ、初心者なりに色々しましたがそんな事もありましたよ
(リソース側の「#include <windows.h>」を削ったら正常にコンパイルが出来た)


0803名前は開発中のものです。05/03/04 00:26:40ID:eUknkQaz
まあぶっちゃけ、リソースって無くてもプログラム作れるんだけどね。
メニューなんてGUIエディタでちまちま作るよりソースに直接記述した方が早くて簡単だと思うのは漏れだけ?
それに動的にメニューいじろうと思ったらAPIで追加したり削除したりってのは結局必要だし。
0804名前は開発中のものです。05/03/04 00:49:59ID:uKVqqBT5
嬉々としてリソーススクリプトを書く漏れは負け組みですか?
0805名前は開発中のものです。05/03/05 00:14:31ID:MPb+uO3e
>>803
同意。
外部データをexeに含める時にのみ使えばいいのに、猫は無駄に使いすぎ。
0806名前は開発中のものです。05/03/05 00:21:24ID:w6DNVo8J
でもアイコンが無いと寂しい。
0807名前は開発中のものです。05/03/05 06:51:27ID:MPb+uO3e
>>806
.icoの位置が分かれば、普通にLoadImageで変えられると思うが。
0808名前は開発中のものです。05/03/05 15:21:59ID:Y8/b+0qG
>>804

負け猫ですねw
0809名前は開発中のものです。05/03/06 16:49:15ID:UpDR4vvT
いや、人それぞれだから必ずしもそうではないよ
0810名前は開発中のものです。05/03/08 01:21:59ID:3M/Fn6cH
>808
負け猫…
                             iヽ、
                            ミ ヽヽ、
                           ,,,ミ  ),,,,\
‐- ...,,__       カチカチ         / ,,;;;;;;;;;;  "''-、
     ~""''' ‐- ...,,__          /,, ,,;;; ;;;;;;''''__,,_,.-'''"l、
           ____,,,,,,,,,,,, -------/●);;;; ,;;'''   彡  l ,!
⌒ヽ、   _,,-‐‐‐f,"  ;; ;;; ''  ;;;;彡三;_/  ''      彡 ノ ,,l
   ヽ、八  \`(,,,,,,,,,イ''''ー、,;;;;;;;   ((,,,,,..   (●>,    __/'';;;;!
     ヽ`---ー‐‐―‐ン     '''-l ( ,.,.,    ,;;,,   '';;;;;;,,,,/
        ̄ ̄ ̄ ̄ ̄         l  メ//l '';,,,;;'';; '';;; ';, '';:;/
"'''- .._                 | / /メ、|';,,,,,'''';;;;;;;;;;;;;; ン;ヽ
     "'''- .._     ____,,,,,,,,,,,,,,-'''''  ;;;;;;;;;;;`;-;;;-;;;;-;;-; ;;; ;;;l
 /  ,   ,  "'''- .. f-''   ;; ;; '';;;;; ''' ;;;;;;;;;;;;;;;;;;;;;;;;;_ ;;;;;;;;;;;;;l
/   /  /  /   // (⌒  ;; ;; '';;;;; ''' ;; ;;;;;;;;;;;;;;   ;;;;;;;;;;;;;|
0811名前は開発中のものです。05/03/08 17:56:12ID:RcfMnqt8
化け猫
0812七味唐辛子 ◆z2mYCw53h6 05/03/10 05:19:33ID:TIRsdl23
BCCでパズルGAME作ろうと思います。
Cpadでやろうと思ってるけどデベロップーのがいい?
0813名前は開発中のものです。05/03/10 10:47:59ID:pFiHALa7
Cpadではコンソールアプリしか作れないの?
0814名前は開発中のものです。05/03/10 15:28:00ID:F40Btv5I
質問します。
文字列→数値列(逆も)の変換はどうやるのですか?
よろしくお願いしますm(_ _)m
■ このスレッドは過去ログ倉庫に格納されています