【0から】C言語でゲームを作る【スタート】
■ このスレッドは過去ログ倉庫に格納されています
00011
04/08/25 08:14ID:GyrQ+1pUC言語を勉強していきたい人、など
まったく0から覚えていこうというスレです。初歩的な質問から進行状況の報告、
こんなゲームを作りたいんだ、等の夢、妄想を語ってくれてもおkです。
みんなでモチベーションを高めて挫折しないようにがんばっていきましょう。
たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。アドバイス
や質問に答えてくれる方は大歓迎です。
0340名前は開発中のものです。
04/10/12 14:10:53ID:6RBXEO5O0341名前は開発中のものです。
04/10/12 15:38:13ID:JI/oVSLAknotは制御点によって制御できる曲線の範囲だと思って構わない。
knotを変えれば制御範囲も変わるので曲線の形も変わる。
どういう影響を及ぼすかは数式や図解なしには説明にしくいので、
数式を読み解くか、実際に色々な数列を設定してトライ&エラーで頑張ってくれ。
3Dでキャラクターのモーションとかだと、
制御点以外に接点ベクトルやウェイトなんかも設定できるので、
open uniform(開一様)なknot列じゃ上手く再現できなかったりするが、
ゲームで移動の軌跡として使う程度なら、拾ってきたソースのような、
曲線の両端が制御点の両端と一致するように、
両端で位数個重複しているopen uniformなknot列を使うのが一般的。
0342名前は開発中のものです。
04/10/12 20:00:35ID:T2ODe9z0今の自分ではまだ言われたことの半分、理解できるか出来ないかなので、
この公式を理解して扱えれるように、もっと勉強していこうと思います。
とりあえず、まずは数式をよく考えて見ます。
0343名前は開発中のものです。
04/10/13 03:06:39ID:s239kc13>>340
の流れにワラヌ
0344初心者@一知半解
04/10/14 13:59:11ID:hZ7VVEVthttp://www.kumei.ne.jp/c_lang/bcc/bcc_03.htm
こちらで試したら警告と共にエラーが出てコンパイル出来ません。
読む限りではコンパイル可みたいですけど
どうもこちらの場合エラーで足が止まってしまいました。
う〜ん、この場合どうすればいいのかなあ??
0345名前は開発中のものです。
04/10/14 14:54:06ID:ZNW5RLV8エラーメッセージを具体的に示してくれないとわからん
0346名前は開発中のものです。
04/10/14 14:56:08ID:T3JzKORSエラーメッセージを書けよ
0347名前は開発中のものです。
04/10/14 19:18:12ID:ZNW5RLV8ちなみにC++Builderでコンパイルしたら問題なく動いたぞ
0348名前は開発中のものです。
04/10/14 19:40:42ID:gITA8TMgコンソールプロジェクトとかでやろうとしてるからとかじゃないの
いや素人なんで的外れかもしれないけど
0349名前は開発中のものです。
04/10/14 20:22:56ID:wJKkfksrどうせ窓アプリ形式にしてないだけだろう。
0350344
04/10/15 10:35:00ID:XKXjqZeuしかし、意味がわからずここで手が止まってしまいました
普段は入門書に載っているソースをこれでコンパイルしているんですけどね…
うーん、どこがおかしいのかな?
0351名前は開発中のものです。
04/10/15 14:23:35ID:azmQp6Yu猫でもわかる〜か?
CD付いてるだろ?それそのまんまコンパイルしても駄目なのか?
0352名前は開発中のものです。
04/10/15 14:58:42ID:hV6u+CLY書いてあるのと全く同じ手順でやるか、10章まで読んでからやるか、他のサイトを探すかしましょう。
0353名前は開発中のものです。
04/10/15 18:53:02ID:EHz8wKsn調べたらプロジェクトの指定が間違ってたらしい。多分。
visualC++でWin32コンソールともう一つのコンソールと
では違うのかな。Win32コンソールの方で確か作ったと思うけど。
コンソールあんまり使わないから戸惑った。
0354名前は開発中のものです。
04/10/15 19:31:54ID:azmQp6Yu情報が少なすぎ。
0355名前は開発中のものです。
04/10/15 21:06:23ID:Q+ioU/Pnオプションは何つけてコンパイルしてる?
0356名前は開発中のものです。
04/10/16 07:58:53ID:+HzjJBFLBCCなら、「bcc32 ファイル名.c」でできるはずだが。
0357名前は開発中のものです。
04/10/16 11:47:00ID:OZGxiGO5これで通ったyo
ウィンドウズ(GUI)アプリを作ろうとしてるのに、オプションの中に -W を入れてないんじゃない?
猫でも〜のページでは、オプションの小文字の -w と大文字-Wの違い、
どこに-w-8075を挿入すればよいかが書かれていないね
その辺で迷ったのかな
↓ボーランドのFAQにも書いてあったから読もう
Borland C++ Compiler 5.5 - コンパイル時のトラブルに関する一般的な質問と回答
http://www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq4.html
>Q. プログラムをコンパイルすると、「外部シンボル 'WinMain' が未解決」というエラーが発生します。
0358350@猫以下
04/10/16 13:17:33ID:PynNLdhcありがとうございます
確かにWinアプリを作ろうとしてたのにその部分が間違っていました。
ようやく解答にこぎつけたと言う所ですが、ここへ来てああ、まだまだ自分は
勉強不足なのだなあと痛感しました。
でも、ともあれこれでわずかでも進む事が出来て嬉しいです。
私はまだまだヘボですがヘボなりに色々やって見ますね
0359名前は開発中のものです。
04/10/16 13:24:19ID:9f1F5+HL大丈夫、「猫でも」の作者が猫以下の説明能力だっただけだよ。
0360名前は開発中のものです。
04/10/17 16:57:44ID:3VxwyS7b見てるやつも分からなかったら猫以下だと思えって宣告に見える。
0361名前は開発中のものです。
04/10/17 17:01:40ID:Wxs4+5UH0362名前は開発中のものです。
04/10/17 17:37:54ID:/rO4iNtYしかもわかりやすいならまだ許せるけど説明ヘタ杉だし。
0363名前は開発中のものです。
04/10/17 21:07:08ID:/wze+wEzあれは中級以上向けのリファレンスページ。
0364名前は開発中のものです。
04/10/17 21:09:45ID:B4mfWN4dだけどVC++5.0時代のカスも残ってるからリファレンスとしても(ry
0365猫
04/10/17 22:52:24ID:O5bsLFrA0366名前は開発中のものです。
04/10/17 23:23:58ID:3VxwyS7bそうかもね。猫がかわいくて楽しいのは確か。
0367名前は開発中のものです。
04/10/18 02:37:21ID:AGZ2exJpあれでは初心者は分からないよ
0368名前は開発中のものです。
04/10/18 03:09:07ID:ZL6cjDMuてか、大体解説とか流し読みだし
サンプルコード見れりゃそれでいい気がする
まぁ今回のコンパイルオプションはちゃんと書いてあったほうがBCCの人には親切だろうけど
0369名前は開発中のものです。
04/10/18 03:50:58ID:hwEBuGJ10370名前は開発中のものです。
04/10/19 16:05:21ID:R54rjT5p0371名前は開発中のものです。
04/10/19 18:47:16ID:Mtywr81q画面をクリアして1から書き直す方法が思いつかない…
0372名前は開発中のものです。
04/10/19 18:53:35ID:SDU7Jht7Windows…だよね?
Win98ぐらいまでのDOS窓ならエスケープシーケンスで画面をクリアしたり、
任意の場所に文字を置けたりしたからやったことあるが、XPとか2000じゃダメなんだろな
他だとLinuxとかcygwinでcurses使ってやるくらいしか思いつかない
0373名前は開発中のものです。
04/10/20 01:27:52ID:oXzJTA9t以前やってみたことがあります。
WindowsXPでもANSI.SYSを入れればエスケープシーケンスコードが使えます。
しかし、これはWin32コンソールアプリケーションからは使えないようです。
そこで「LSI C-86 v3.30c 試食版」で16bit版としてコンパイルしてみたのですが…
内部では高速で動いてるのに画面は1秒間に3回くらいしか更新されませんでした。
この時点であきらめましたが、きっと解決方法があるでしょう。いつか続きをやって
みたい気がします。
0374名前は開発中のものです。
04/10/20 03:54:49ID:zJ8GJj8c横80×縦n×m階調のドット絵と考えればいいんでしょうけどちょっと不思議な感じ。
ttp://taat.planet-d.net/tmdc/download.html
ttp://tmda.planet-d.net/list.html
0375名前は開発中のものです。
04/10/20 05:50:28ID:L3FcpsBc色変え
http://www.kumei.ne.jp/c_lang/intro/no_58.htm
カーソル移動など
http://hp.vector.co.jp/authors/VA016117/cprog/index.html
0376名前は開発中のものです。
04/10/20 12:53:05ID://ogvlzzソース↓
ttp://202.208.158.51/bin/Q135.lzh
中身
Main.cpp
ConsoleUtil.cpp
ConsoleUtil.h
0377名前は開発中のものです。
04/10/20 13:42:21ID:hKO9gHU4間の取り方がいい。
0378名前は開発中のものです。
04/10/20 16:42:50ID:HNkhLcsOおお、こんなのができるのか
0379名前は開発中のものです。
04/10/20 21:22:25ID:eh4L8TNKとりあえずは>>375の下のページにあるInitConsoleとClsを使えば良いんでしょうか?
0380376
04/10/20 21:47:03ID://ogvlzz画面をクリアするときはClsみたいです
オマケ
>376のOppaiでもやってるけど<conio.h>を
インクルードするとkbhitとgetchが使えます
getcharを使ってキー入力を得るとプログラムをそこで止めたりするので
kbhitとgetchのあわせ技でキー入力を取得しています
0381名前は開発中のものです。
04/10/21 09:47:22ID:sFeMhn1Sやって見れば進むものです
勉強になるなあ
0382名前は開発中のものです。
04/10/21 21:18:20ID:JTco9tzcソース探してみたら、コンソールゲームのソースは見つからなかったけど、
Mode13で描画してるギャルゲーっぽいADVの作りかけが出てきて超なつかしかった。
0383376
04/10/22 00:24:20ID:b8gueTEVとりあえずタイトル画面とキャラの移動、ショットの発射まで
今回は実行ファイル(AAShoot.exe)のみ
ttp://202.208.158.51/bin/Q148.lzh
そのうち、敵キャラ飛ばしてソースにコメント打って整形したらソースもうpします
0384名前は開発中のものです。
04/10/22 00:45:20ID:4G3g20XR横の移動速度を2倍にしてみてはいかが?
0385376
04/10/22 06:00:56ID:b8gueTEVなんとなく寝付けなかったから続けて作ってみた
ttp://202.208.158.51/bin/Q150.lzh
意外と爆発の表現はうまくできたと思います
今度はソースも付けました
ソースファイルが*.cppとなっていますが、
変数宣言とコメント以外はC++の機能(クラスなど)を使わなかったので、
ほぼC言語です
(新しい規格だと、この辺もC言語に含まれるんでしたっけ?)
C言語憶え中だけど、なんか動くものが作ってみたいという人には参考になるんじゃないでしょうか
テトリスとかブロック崩しとかベタですけど、初心者の人はこんな感じで作ってみるのもいいと思います
0386名前は開発中のものです。
04/10/22 11:33:58ID:y9LbMVNTコンソールプログラムは、表示処理がかなり重いから、
ゲームループ1週毎にClsしない方がいい。
味方、敵が移動した時、前の位置をピンポイントで消す方がいい。
ゲームルーチン1週毎のSleepが長いから、
ボタンを押した時、すぐに反映されない場合が出てくる。
1週のSleepを短くして、何週かする事で敵を動かす方がいい。
0387名前は開発中のものです。
04/10/22 21:47:08ID:Hip2mdjT0388名前は開発中のものです。
04/10/22 22:16:29ID:aEtPfjyjプログラミング言語プログラムで作られています。
0389名前は開発中のものです。
04/10/22 22:21:51ID:qPIuu7LrCだったり
C++だったり
Javaだったり
Delphiだったり
Basicだったり
HSPだったり
0390名前は開発中のものです。
04/10/22 22:23:51ID:L73cQ1tP0391名前は開発中のものです。
04/10/22 22:32:56ID:X+3AXho90392名前は開発中のものです。
04/10/22 22:46:42ID:Q39wQHeSこんなのとか。
http://www.itmedia.co.jp/games/gsnews/0110/19/news06.html
0393名前は開発中のものです。
04/10/22 23:09:53ID:b8gueTEVゲーム会社の採用情報でプログラマの項目をみれば、
言語について明記してあるところも多いので、それで判断してください
0394名前は開発中のものです。
04/10/23 22:44:47ID:oaXV2b0XVC6.0を使用して、
デバッグモードにて実行するとエラーは出ないが、
普通に実行するとエラーが出るっていうのは、どんなものなんでしょうか?
エラーの内容なのですが、作成中のシューティングゲームにて、
テストでゲームを進めると、不規則的にプログラムが落ちます。
(落ちないときも極まれにあります)
内容はアクセス違反、readにならないぞゴルァです。
教えてくれちゃったりする方いたら、よろしくお願いします。
0395名前は開発中のものです。
04/10/23 22:50:00ID:PylOGN5xてめーのプログラムのバグだ。首括ってゼロからプログラム書き直せ。
0396名前は開発中のものです。
04/10/23 22:57:32ID:qwdD0YhY0397名前は開発中のものです。
04/10/23 23:15:30ID:YmVB4Iw2変数がちゃんと初期化しているかチェックしてみては?
0398名前は開発中のものです。
04/10/23 23:16:36ID:iTzjnAUD自分でつくったプログラムなら自分でなおすのがふつうだろ・・・
0399名前は開発中のものです。
04/10/24 01:34:13ID:KhjSCxq2即レスありがとうございます
早速チェックしてみます。
>>395 & >>398
言い方がおかしかった。
デバッグモードだとメモリの保護とかやられててエラーがでないとか、
そういうのがあるのかなー、とか思ってて、
それでVCのそういった機能があったら知りたかった、という事です。
不快に思ってたらマジごめんね。
0400名前は開発中のものです。
04/10/24 01:38:50ID:/K5Gjlomとにかく変数の初期値の内容が違うはず。鬱だ氏のうDirectXの過去ログでみた気がする。
0401名前は開発中のものです。
04/10/24 02:02:51ID:6Ak9IAJV//グローバル変数
static IMAGE *pImage; //初期値が明示されてない。NULL以外が入ってるかも?
//とある関数内
if (pImage){ //ぬるぽに対する厳しいチェック。おおっとしかしここはスルー!
DrawImage(pImage, x, y); //ここで不正なメモリへのアクセスガッ?試合終了です
}
0402398
04/10/24 02:50:46ID:YALd697Aほんとはわかってたんだ・・・
調子に乗ってただけなんだ・・・
久しぶりの2ちゃんでさ・・・
ちょっと言ってみたかっただけなんだ・・・
正直すまんかった・・・orz
0403394
04/10/25 03:16:54ID:xn2n/UzQあるところをいじると、バグの様子が変わる、
というのを見つけるところまでは行ったのですが、
そこからが、また手詰まりになりました。
こうなったら意地でも直してやろうと思います。
それと、以前の発言のときに、デバッグモードという言葉を使いましたが、
私はアレをどうやら間違った意味で捉えていたようです。
以前の発言の意味は、
メニューから、ビルド>デバッグ開始>実行
で実行するとエラーが出ないが、
メニューから、ビルド>実行
で実行するとエラーが出てしまう、ということです。
ビルドはずっとDebugというタイプでやっていました。
--------------------構成: ddraw01 - Win32 Debug--------------------
ddraw01.exe - エラー 0、警告 0
↑こんな感じです
0405名前は開発中のものです。
04/10/25 20:42:14ID:+kRZkPnx正常でない値が返ってきた時点で内容をウィンドウ出して表示するか、ファイルにテキストで書き出す
まずはその辺りからやってみ
Cじゃないけどtry catchも上手く使うといい
てか、ソースあげてみそ
デバッグの仕方教えてやる(誰かがきっと)
0406名前は開発中のものです。
04/10/25 21:57:01ID:cW8J6Q0O文字列操作あたりで設定より多めに文字列をセットしてたりして
ない?
char *moji = "文字を入れてみたり";
char str[10] = {0};
strcpy(str,moji);
みたいな感じの。
文字列に限らず配列の外を参照してエラーが出ているのでは
なかろうかと思ってみたり
0407394
04/10/27 00:38:44ID:Xb5jS9fy返信ありがとうございます。
助言の数々を参考に一からすべてを疑って調べてみました。
しかし、どうもまだ当たりを引くに至りません。
どこかしらソースをいじると、エラーの出現するフレーム数が変化する。
(アクセス違反対象データの格納先のメモリ配置が変化するからでしょうか?)
ということと、敵クラス内の数十行の移動用関数を使用しなければ、
エラーが今のところ発現しないというのがわかりました。
しかしまだ、その関数のどこにエラーがあるのかがつかめていない状態です。
あきらめてソースを投げてしまいたいのですが、
それは悔しいので、もう少し粘ってみようと思います。
ところでふと気になったのですが、
皆さんはバグで最高どれくらいの時間を修正に掛けたことがありますか?
0408名前は開発中のものです。
04/10/27 01:02:29ID:dgX5Z4bmその数十行の中で
・配列を操作しているところ
・ポインタの先を参照しているところ
あたりがあやしいような。
というか、デバッグモードでビルドしたものを実行してエラーが
出たときは「デバッグしますか?」っていうダイアログはでない
のかな?
0409394
04/10/27 04:06:55ID:Xb5jS9fyようやく原因が分かりました。
かなり基本的なことだったので、恥ずかしいですが一応書き込んでおきます。
原因は、newの相棒を忘れていました。
(try catchと言われて、そこでnewを連想して、ミスに気づくことが出来ました。)
低レベルなミスでしたが、今回のこれはかなり勉強になりました。
(デバッグ方法もいろいろと新しいことを知ることができました)
おかげで、今後絶対にdeleteを付け忘れることが無いよう意識していけると思います。
ようやくぐっすりと眠れそうです。
本当に皆さんありがとうございました。
0410名前は開発中のものです。
04/10/27 23:57:56ID:/PY4olLCスマートポインタを使うのも手だね。
0411名前は開発中のものです。
04/10/28 00:10:14ID:vw3d/AjGスマートポインタってCでは実現できないよね
0412名前は開発中のものです。
04/10/28 00:17:45ID:pifSVQsOnew/deleteできるのでCではないでしょ
0413名前は開発中のものです。
04/10/29 17:44:28ID:dikgk+eu0414名前は開発中のものです。
04/10/29 18:10:42ID:fDNToCNY0415名前は開発中のものです。
04/10/29 18:14:46ID:32yjM8FAファイナルファイト系なんていう俺ジャンルで言われてもなぁ。
正確に質問してくれ。
0416名前は開発中のものです。
04/10/29 19:37:23ID:VQCXStAAFCかSFCみたいな感じ?
ゲームの作れるものだったらどれでもできる
0417416
04/10/29 19:43:12ID:VQCXStAAここCのスレだった
このスレでわざわざ質問しているってことはC言語前提だよな
てか、この位のこと聞き返さないとわからないような質問はするな
質問するときは>415の言ってるように正確に質問すべし
もしC言語前提じゃまければここで質問するな
0418名前は開発中のものです。
04/10/29 19:51:27ID:KkyMEzVzお前らが無駄にプライドの高い面倒な連中だったと言う事を忘れてたよ、すまん。
次からはバカにも解りやすい説明をする様にするよ。
0419名前は開発中のものです。
04/10/29 19:56:18ID:fDNToCNY0420394
04/10/29 20:03:35ID:hay4UoYg返信ありがとうございます。
スマートポインタ、初めてそういうものがあることを知りました。
ちょっと使い勝手は良くなさそうですが、今回の場合など、
それを使えばかなり、文字通り”スマート”に解決できていました。
(一時的なパラメータ保存のためのnewだったもので適していたと思います)
これからは積極的に使っていこうと思います。
それと都合上Cに関係ない話まで持ってきてしまいました。
もしそれで波紋を作ってしまったのなら、ここで謝らせてもらいます。
申し訳ありませんでした。
次からは気をつけます。
0421417
04/10/29 20:12:31ID:VQCXStAA問題が発生したら何が問題なのかきちんと分析できる力
これができる香具師は効率よくプログラミングの学習ができたり、
効率よく新しい技術を身につけられる
だからイジワルで正確に質問すべしって言ってるわけでも、
プライドが高いわけでもない
いわばプログラミングの先輩として後輩にプログラマの心得を知って欲しいと思うからこその
発言なんだぬるぽ
0422名前は開発中のものです。
04/10/29 20:12:44ID:32yjM8FA賢いポインタ集だって
http://ootips.org/yonat/4dev/
0423名前は開発中のものです。
04/10/29 20:55:54ID:VQCXStAAすまぽ
0424名前は開発中のものです。
04/10/29 21:58:43ID:+LwMX2wZ日本語の本も出てるし
0425名前は開発中のものです。
04/10/29 22:05:20ID:6tUDOgklガッ
0426名前は開発中のものです。
04/10/29 23:04:16ID:/umSa7/Dかと言って、テンプレートライブラリがないとC++は激しく使いにくい。
そんな俺はD言語を勉強してます。
0427名前は開発中のものです。
04/10/29 23:07:00ID:32yjM8FAソースは読まないでリファレンスだけ見て使えばいいじゃない。
かくいう私はBOOSTは使わずソースを参考にさせていただくのみ…
0428名前は開発中のものです。
04/10/30 00:01:22ID:TpiBHpE+もしCがおすすめじゃなけりゃそっちでやろうと思うけど。
0429名前は開発中のものです。
04/10/30 02:24:47ID:jmJkJ3weObjective-C...
0430名前は開発中のものです。
04/10/30 02:29:33ID:L0D2SnueCでやるぐらいならC++でやったほうがいろんな機能があって便利ですよ
0431名前は開発中のものです。
04/10/30 10:17:19ID:h9oxqkV0よっぽど凝った真似しなきゃ
perlやPHPの方が機能が豊富だし手間が省けていいと思うが
0432名前は開発中のものです。
04/10/30 15:19:41ID:c9wLCmIx0433名前は開発中のものです。
04/10/30 16:02:33ID:rRV+9Bv4_, ._
( ゚ Д゚)
0434名前は開発中のものです。
04/10/30 17:20:31ID:bwUmdwSWどんなゲームを作るつもりなのかわかんなければ答えづらいと思うんだが。
洋服作ろうと思うんだけど、手編みよりミシンで作ったほうがいい?
って聞いてるようなもんだ。
0435428 ◆WU311ujDWk
04/10/30 19:33:27ID:TpiBHpE+商人物語
http://callisto.00i.org/akindo/watlas/index.cgi
0436名前は開発中のものです。
04/11/01 12:27:55ID:g5m7IFic0437名前は開発中のものです。
04/11/01 12:38:43ID:g5m7IFic0438名前は開発中のものです。
04/11/01 13:46:09ID:rOjCULyJhttp://www.microsoft.com/japan/msdn/student/premium/
にはCがないのか・・・
0439名前は開発中のものです。
04/11/01 13:52:39ID:JmFZgHIDC++はCの上位互換だから無問題
■ このスレッドは過去ログ倉庫に格納されています