【0から】C言語でゲームを作る【スタート】
■ このスレッドは過去ログ倉庫に格納されています
00011
04/08/25 08:14ID:GyrQ+1pUC言語を勉強していきたい人、など
まったく0から覚えていこうというスレです。初歩的な質問から進行状況の報告、
こんなゲームを作りたいんだ、等の夢、妄想を語ってくれてもおkです。
みんなでモチベーションを高めて挫折しないようにがんばっていきましょう。
たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。アドバイス
や質問に答えてくれる方は大歓迎です。
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の上位互換だから無問題
0440438
04/11/01 14:08:57ID:rOjCULyJ速攻レスサンクス
一つ聞きたいんだけどVC++のようにVが付くとWindows専用ってことでいいのかな?
過去レスにそんなことが書いてあったので・・・。
0441名前は開発中のものです。
04/11/01 16:59:54ID:alyGnMueVisual ほげほげ というのはマイクロソフトが作ってるWindowsの開発環境シリーズ
バージョンは最新のものが.NET2003(>438のページもVersion2003と書いてある)
一つ前が.net
その前は6
Visual Studioの中にはVisual Basic .NET Visual C++ .NET Visual C# .NET Visual J# .NET その他デバッガなどのツール類
が含まれているけど、C/C++の学習が目的なら使うのはVisual C++ .NET
Visual C++ .NETは単品でも販売されているので、質問なんかするときには
開発環境はVisualStudio.Netと書かず、VisualC++.Netと書いたほうがよい
VisualC++はVCとかVC++などと略すこともある
VCの操作についてはネットや書籍に結構あるので不自由はしないはず
ではC言語の学習がんばってください
0443名前は開発中のものです。
04/11/01 17:20:45ID:pImpuvtY0444名前は開発中のものです。
04/11/01 17:21:24ID:ut1KgkLD0445名前は開発中のものです。
04/11/01 22:34:47ID:SpJiHVfZHahahaha.
0446名前は開発中のものです。
04/11/01 22:39:33ID:O3WctKHF0447名前は開発中のものです。
04/11/01 22:46:50ID:SRtXRFiEファイルを暗号化してそれを読み込む方法を教えてください。
もしくは、詳しく説明しているサイトなどを・・・!
0448名前は開発中のものです。
04/11/01 22:54:54ID:O3WctKHF暗号化でもいろいろありますが。
0449名前は開発中のものです。
04/11/01 23:15:16ID:YQfzZh2Nワロタ
0450名前は開発中のものです。
04/11/01 23:16:28ID:mLJvEYwF0451名前は開発中のものです。
04/11/02 00:16:19ID:kcneTIyzググった?
すぐ見つかったんだけど
ttp://www.c3.club.kyutech.ac.jp/~sukiyaki/cmn/data.html
今度からせめてググってからきてください
もし「ビット演算子を使った程度のもの暗号化とは言えんわ!」だったらスマソ
0452名前は開発中のものです。
04/11/02 00:25:51ID:MduyxuRAすみません、最初そこのサイトの方法でやっていたんですけど、
なぜかDirectXでテクスチャが表示されなくて・・・。
多分これはスレ違いになりそうなので、DirectXスレで聞いてきます。
お騒がせしました。
0453名前は開発中のものです。
04/11/02 00:40:41ID:kGUpB27K懐かしいな
0454名前は開発中のものです。
04/11/04 03:44:27ID:8H3IR4jMこれから先の事を考えてVC++.netを買いました(学割なのでプロダクトキー申請中)
たまごっち風常駐アプリゲームを作ろうと思うのですが
手元にある入門書にはゲームは愚かwin用アプリの作り方なんて書いてる訳はなく
どういう風に勉強すれば実用アプリやらゲームやらを作っていけばいいか解りません。
巷にはゲームプログラミングを歌った本を見かけますけど
コテコテのゲームキャラが書かれた本を手に取ってみても
僕が使った入門書が凄く丁寧だったので、その差のせいか書いてある事が訳わからない事も有り
ゲームやアプリ作りには、どういう勉強をしていけば良いか解らなくなってしまいました。
何かお奨めの本か勉強方法(もっとポインタだけで本が一冊埋まってるような本クリアーしな!とか)
を教えてください。
0455名前は開発中のものです。
04/11/04 04:03:10ID:c9LoJ72Pポインタは貴方が思っているよりもずっと単純なものです。
まずはメモリの構造について勉強してください。
ゲームのことだけで埋めつくされている本は、私の知りうる限りでは全く
役に立ちません。
むしろEffectiveC++やEffectiveSTL、その他のアルゴリズム関係の本、
などを読んだ方がためになります。
ゲームで目立つGUIやアニメーションなどは実はそれほど複雑な処理をして
おらず、ライブラリやAPIなどの使い方に過ぎないのです。
それらの使い方を知るには単にリファレンスを読めばよろしい。
0456名前は開発中のものです。
04/11/04 11:44:12ID:UY5Wgp/3いつの間にかJavaに移転するヨカーン
0457名前は開発中のものです。
04/11/04 12:07:38ID:UY5Wgp/3ttp://www.consumptionjunction.com/downloadsnew/cj_39113.wmv
0458名前は開発中のものです。
04/11/04 12:15:41ID:pJBrnqlN0459名前は開発中のものです。
04/11/04 18:31:38ID:yX8Hyn1u初々しい厨房だな
0460454
04/11/04 20:21:46ID:8H3IR4jMレスありがとうございます。
お陰でこれから何をするかの方向が定まった感じです。
とりあえずは基礎の復習と続ですね。
Effective C++、Amazonでも随分と評判がいいみたいだし
買ってみようと思います。
ポインタって、何となく解るんですけど、説明しろよと言われたら「?」
って感じになっちゃうんですよね。
とりあえず、メモリに関しては良さそうなサイト探してみます。
0461名前は開発中のものです。
04/11/05 12:44:41ID:GvXYeBTl「アスタリスクの次にくる変数の内容を強制的にアドレスと解釈する」
という説明はわかりやすくてよかった。
0462名前は開発中のものです。
04/11/05 22:31:13ID:anGjF3Mz0463名前は開発中のものです。
04/11/06 19:55:15ID:n0irZHTZ0464名前は開発中のものです。
04/11/09 21:16:33ID:iDY/EWWX0465名前は開発中のものです。
04/11/09 23:00:59ID:O5uDXu9a0466名前は開発中のものです。
04/11/09 23:48:59ID:iDY/EWWXあれのどこが難しいのかわからんかった。
アドレスの概念だけ判ってりゃ簡単っと。
0467名前は開発中のものです。
04/11/09 23:59:31ID:e0Pcd2xC0468名前は開発中のものです。
04/11/10 08:09:31ID:aYKS2cVt0469名前は開発中のものです。
04/11/10 11:54:40ID:yqa+uH1m0470名前は開発中のものです。
04/11/10 12:02:01ID:c9BSnFTy中国人全員がトイレットペーパーなんて使い出したら大変な環境問題になる。
0471名前は開発中のものです。
04/11/11 22:51:34ID:To5gX/4d文字列の中の1文字(たとえば「あ」)を変数に格納するために
char s[256] = "abcあいう";
char buffer[3];
sprintf(buffer, "%c%c", s[3], s[4]);
ってやってるんですが、これって一般的な方法なんですか?
なんか無駄なことやっているような気がして・・・。
0472名前は開発中のものです。
04/11/11 23:08:24ID:2Hz/vHSxforループで代入すればいろいろ出来て普通に便利なんじゃないか?
0473名前は開発中のものです。
04/11/11 23:35:51ID:U7fOSr9v何が無駄なことなのかよく分からんがそれくらいならいいんじゃね。
あとは身もふたもないが
buffer[0] = s[3];
buffer[1] = s[4];
どっちにしても buffer[2] に '\0' を入れておいた方が安心な気がする。
0474471
04/11/11 23:42:41ID:To5gX/4dそうですよね。難しく考えてました。ありがとうございます。
これを判別するために、
if(buffer == "あ")
みたいなことをしたいんですけど、
どうやったらよろしいのでしょうか?
0475名前は開発中のものです。
04/11/12 00:07:59ID:/WFwL3q/0476名前は開発中のものです。
04/11/12 00:08:27ID:/WFwL3q/IDが2Hz
0477名前は開発中のものです。
04/11/12 00:11:47ID:Sv63aaJVif(strcmp(buffer, "あ"))
0478名前は開発中のものです。
04/11/12 00:19:29ID:mm6jRjgCif(strcmp(buffer, "あ") == 0){}
じゃね?
0479474
04/11/12 00:26:51ID:+H6nycKkありがとうございます。>>477の方法だと「あ」以外の文字のときに実行されたので
おかしいなと思っていました。!をいれたらできました。でも>>478の方法がよさそうですね。
0480名前は開発中のものです。
04/11/13 15:32:55ID:yBB4/n/FError: 外部シンボル'_main'が未解決 ってでるんだが
どうすればいいの?
0481名前は開発中のものです。
04/11/13 15:34:40ID:/H+xuVtR0482名前は開発中のものです。
04/11/13 15:37:10ID:Z+V/QfvImain書いた?
0483名前は開発中のものです。
04/11/13 15:42:02ID:yBB4/n/Fこれのasdってやつです
ぶっちゃけコンパイルとかそういうのではスーパー初心者なので・・・
書き換えたいのはutil.hで、
// packet filter key address
#define SENDKEY_ADDR 0x67a824
#define RECVKEY_ADDR 0x67a828
#define CRYUPD_ADDR 0x5e125b
#define CRYTABLE_ADDR 0x679864
#define INIFIL 0x3b
って書き換えればいいのですが・・・
どうか教えて下しあ。ほかで聞いてもここで聞けっていわれましたので・・・
0484名前は開発中のものです。
04/11/13 15:46:55ID:/H+xuVtR>ダウンロード可能ファイル(これ以外はアプしても落とせないから注意しろよ)
>.html .htm .gif .jpg .zip .txt .png .lzh .gz .mpg .rm
説明ぐらい嫁
0485名前は開発中のものです。
04/11/13 15:52:58ID:yBB4/n/Fasdasdです
0486名前は開発中のものです。
04/11/13 16:07:50ID:/H+xuVtRこれをコンパイルして何をしたいの?
これだけじゃ実行ファイルは作れないよ
0487名前は開発中のものです。
04/11/13 16:14:37ID:yBB4/n/F実行ファイル、つまりexeじゃなくてdllを作りたいのです。
あるゲームのパケットを見るためのdllを最新版にするために書き換えをしたいのですが・・・。
0488名前は開発中のものです。
04/11/13 16:31:55ID:yBB4/n/F0489名前は開発中のものです。
04/11/13 16:33:21ID:/H+xuVtRわかり易い参考になりそうなページを探してみたんだが
…とりあえず猫プロでお茶を濁す
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_119.htm
とりあえずここ読んで勉強汁
0490名前は開発中のものです。
04/11/13 16:40:26ID:5L6vRftKコンパイラオプションの指定忘れっぽいが…
dllは作ったことないんでシラネ
0491名前は開発中のものです。
04/11/13 17:49:41ID:yBB4/n/Fbcc32っす。
どうすれば・・・?
0492名前は開発中のものです。
04/11/13 17:51:17ID:98R+onSK「bcc32 DLL コンパイルオプション」
これをキーにググってみれ
0493名前は開発中のものです。
04/11/13 17:58:00ID:98R+onSKついでに
自分の使うコンパイルオプションくらい把握しておくべし
ここまでやってもDLL作り方さっぱりわからんなら
まだその段階に到達してないということなので
プログラムの勉強をこつこつしていけ
もし、ただのチート行為、もしくはゲーム製作に関係なかったら二度とくるな
0494名前は開発中のものです。
04/11/13 18:01:31ID:yBB4/n/F今モルモットにasdasdasdって名前であげたファイルの、
util.h
// packet filter key address
#define SENDKEY_ADDR 0x67a824
#define RECVKEY_ADDR 0x67a828
#define CRYUPD_ADDR 0x5e125b
#define CRYTABLE_ADDR 0x679864
#define INIFIL 0x3b
でラッパを作ればできるらしいのですが・・・
専用用語とかわからないのでできないのです。なんどもなんどもご迷惑かけますが
どうか教えてくださいorz
0495 ◆3bllkTNfEw
04/11/13 18:08:03ID:MY/Ph0Ky0496名前は開発中のものです。
04/11/13 18:32:56ID:cxSOhVchは?
バカ?
バイナリレベルで書き替えるつもりなの?
専門用語がわからない?
ただの#defineだろ?
一度C言語の入門書をひととおりクリアしてからでなおしてこい
板違いならもう引っ込め
0497名前は開発中のものです。
04/11/13 21:04:00ID:LMFoa5NB■ このスレッドは過去ログ倉庫に格納されています