入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ
入門書おわた
↓
コンソールでゲーム製作
↓
DXライブラリでも使ってゲーム製作
こういう順番で段階的にやって行きたい
基本は
1.詳しい人がコンソールのゲームでお題を出す
2.初心者が作る
3.できるまで自分で調べて頑張る
4.どうしても無理ならソース晒して教えてもらう
5.完成したらソース晒して、他の製作者のものと比べてウマー
とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
探検
【入門書クリア前提】初心者用段階的ゲーム製作スレ
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2008/12/21(日) 10:01:44ID:XeH+Z5e9148名前は開発中のものです。
2008/12/30(火) 16:07:44ID:JKlPtp7s scansetでぐぐればいいんじゃないか
正規表現のサブセットみたいなの
正規表現のサブセットみたいなの
149名前は開発中のものです。
2008/12/30(火) 16:56:17ID:k/oqyFbB digits = 4だとして
sprintf(fmt,"%%%d[1-9]",digits);
で次の文字列が得られる
char fmt[]="%4[1-9]";
scanf(fmt,input);
でinputに'1'から'9'の文字を4文字だけ読み込む
他の文字や、4文字より多くの入力があると入力バッファに残るので
scanf("%*[^\n]%*c");
で読み捨てる。入力文字の最後は改行文字なので
"%*[^\n]"で改行文字まで読み捨てて、"%*c"で改行文字を読み捨てる。
入力バッファを空にすると次の入力もスムーズにおこなわれるってわけ。
wikipediaのscanfの項目によくまとまってるよ。
sprintf(fmt,"%%%d[1-9]",digits);
で次の文字列が得られる
char fmt[]="%4[1-9]";
scanf(fmt,input);
でinputに'1'から'9'の文字を4文字だけ読み込む
他の文字や、4文字より多くの入力があると入力バッファに残るので
scanf("%*[^\n]%*c");
で読み捨てる。入力文字の最後は改行文字なので
"%*[^\n]"で改行文字まで読み捨てて、"%*c"で改行文字を読み捨てる。
入力バッファを空にすると次の入力もスムーズにおこなわれるってわけ。
wikipediaのscanfの項目によくまとまってるよ。
150名前は開発中のものです。
2008/12/30(火) 17:02:39ID:+lVIynAg >>148-149 ありがとう。これで心安らかに年を越せます。
151名前は開発中のものです。
2008/12/31(水) 15:24:44ID:VYxP3E09 ゲームの画面ってどうやって作ればいいんですか??
152名前は開発中のものです。
2008/12/31(水) 15:25:43ID:VYxP3E09 オブジェクトとかを配置する画面の作り方がわかりません
ちなみにC言語です
ちなみにC言語です
153名前は開発中のものです。
2008/12/31(水) 16:45:26ID:xHQ2htSH ゲームとかツールちょこちょこ作ってるけど
ここに書き込まれているプログラムの内容とか難しく感じる
ここに書き込まれているプログラムの内容とか難しく感じる
154名前は開発中のものです。
2008/12/31(水) 16:49:09ID:nhGJ70sb >>152
もう少し詳しく聞いたほうがいいかも?
オブジェクトの配置ってことは、
それ以前の普通に画面表示するところはできてるのかな?とか。
絵的に複数のマップチップを背景画に配置するようなことなのかな?とか。
宝箱や扉のイベント用オブジェクトの作り方なのかな?とか。
手持ち品の入れ替えする時とかに別に開くような、
操作用別ウィンドウみたいのを配置するののことなのかな?とか。
>>153
ここはゲーム作りそれ自体よりも、ゲーム作りを通じて、
プログラミングの言語を理解するのが主目的みたいだね。
っていっても。まだ参加者少ないからこれから、
これからどうなるか分からないけど。こっそり勉強させてもらってます。
もう少し詳しく聞いたほうがいいかも?
オブジェクトの配置ってことは、
それ以前の普通に画面表示するところはできてるのかな?とか。
絵的に複数のマップチップを背景画に配置するようなことなのかな?とか。
宝箱や扉のイベント用オブジェクトの作り方なのかな?とか。
手持ち品の入れ替えする時とかに別に開くような、
操作用別ウィンドウみたいのを配置するののことなのかな?とか。
>>153
ここはゲーム作りそれ自体よりも、ゲーム作りを通じて、
プログラミングの言語を理解するのが主目的みたいだね。
っていっても。まだ参加者少ないからこれから、
これからどうなるか分からないけど。こっそり勉強させてもらってます。
155名前は開発中のものです。
2008/12/31(水) 17:44:21ID:VYxP3E09 いろいろなものを表現する土台としての画面です
キャラを表示したくてもどこにどのように表示するのかさえわかりません。。
入門書はゲームに無関係なC言語のものを読んでたのでまったくわかりまへん
キャラを表示したくてもどこにどのように表示するのかさえわかりません。。
入門書はゲームに無関係なC言語のものを読んでたのでまったくわかりまへん
156名前は開発中のものです。
2008/12/31(水) 18:21:06ID:MMS8KoX5157名前は開発中のものです。
2009/01/01(木) 04:39:05ID:LU3n6Iul >>127のサイトからVisual StudioっていうソフトをDLしたんですけど
そのファイルの中のサンプルプログラム実行用フォルダに入ってるファイルがほとんど開けない状態になってるんですが
どうすれば開けるようになりますか?
そのファイルの中のサンプルプログラム実行用フォルダに入ってるファイルがほとんど開けない状態になってるんですが
どうすれば開けるようになりますか?
158名前は開発中のものです。
2009/01/01(木) 10:04:51ID:MDNTZvu6 >>127のサイトは説明が不十分だ
ここ↓でDXライブラリの設定をしないと使えない
DXライブラリの使い方解説
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
ここ↓でDXライブラリの設定をしないと使えない
DXライブラリの使い方解説
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
159名前は開発中のものです。
2009/01/02(金) 14:45:45ID:2uMBMwue @VC++用DXライブラリダウンロード
↓
AVisual C++ 2008 Express Editionダウンロード
↓
BVisual C++ 2008 設定
↓
CWindowsプロジェクト(Win32プロジェクト)作成
↓
Dプロジェクトにcppファイルを追加
↓
Eプロジェクト設定
↓
Fウィンドウ作成
↓
G画像表示
流れはこんな感じ?
↓
AVisual C++ 2008 Express Editionダウンロード
↓
BVisual C++ 2008 設定
↓
CWindowsプロジェクト(Win32プロジェクト)作成
↓
Dプロジェクトにcppファイルを追加
↓
Eプロジェクト設定
↓
Fウィンドウ作成
↓
G画像表示
流れはこんな感じ?
160名前は開発中のものです。
2009/01/03(土) 01:00:46ID:cGzTJz3u VC++2008の中の2つのファイルが何度やってもインストールに失敗してしまいます・・
それとDxライブラリとかいうソフトの中のサンプルファイル実行用フォルダの中にあるDxLib_VC2008_and_2005用.slnっていうファイルが開けません・・
システムの復元とかやったり何度もやり直してみたけどだめですた
それとDxライブラリとかいうソフトの中のサンプルファイル実行用フォルダの中にあるDxLib_VC2008_and_2005用.slnっていうファイルが開けません・・
システムの復元とかやったり何度もやり直してみたけどだめですた
161名前は開発中のものです。
2009/01/03(土) 01:30:21ID:8KicIl/n slnはvcインストールしないとだめだろ
てかさ、だから何?
解決策が欲しいのか?それだとしても
>2つのファイルが
はないだろ。
てかさ、だから何?
解決策が欲しいのか?それだとしても
>2つのファイルが
はないだろ。
162名前は開発中のものです。
2009/01/03(土) 16:51:04ID:cGzTJz3u VCはあきらめてborlandでやり直しました
っていうかもうすでにborlandを過去にインストールしてたのでこれが原因でVCをインストールできなかったのかもしれないです
それで
http://homepage2.nifty.com/natupaji/DxLib/dxuse_bcc.html
の手順で”8.プロジェクトのビルド、実行”までいったんですけど実行すると6で作ったDrawPixel.cppが開けないというエラーが出ます
ちなみにDrawPixel.cppを4で作ったtestファイルから出すとエラーではなくてfatalという表示が出て
またDrawPixel.cppのところでdoes not exist - don't know how to make it
とかいう常時がでるんですがどうすればいいのかさっぱりわかりません++;
っていうかもうすでにborlandを過去にインストールしてたのでこれが原因でVCをインストールできなかったのかもしれないです
それで
http://homepage2.nifty.com/natupaji/DxLib/dxuse_bcc.html
の手順で”8.プロジェクトのビルド、実行”までいったんですけど実行すると6で作ったDrawPixel.cppが開けないというエラーが出ます
ちなみにDrawPixel.cppを4で作ったtestファイルから出すとエラーではなくてfatalという表示が出て
またDrawPixel.cppのところでdoes not exist - don't know how to make it
とかいう常時がでるんですがどうすればいいのかさっぱりわかりません++;
163名前は開発中のものです。
2009/01/03(土) 16:52:16ID:cGzTJz3u 常時 ×
表示 ○
表示 ○
164名前は開発中のものです。
2009/01/03(土) 17:39:20ID:cGzTJz3u 今プログラムからVC++2008エクスプレスエディッションとかいうのを起動してみたんですが起動できました
これはインストールできてると思っていいんですか?
でも相変わらずDxLib_VC2008_and_2005用.slnは開けません
ダブルクリックすると一瞬砂時計は見えるんですがその後何も起こらないような状態です
それとborlandに変更するときにDxLib_VCを削除しようとしたのですが他のユーザーかプログラムが使用しているので削除できませんという表示が出て削除できませんでした
何のプログラムが使ってるんですか?
これはインストールできてると思っていいんですか?
でも相変わらずDxLib_VC2008_and_2005用.slnは開けません
ダブルクリックすると一瞬砂時計は見えるんですがその後何も起こらないような状態です
それとborlandに変更するときにDxLib_VCを削除しようとしたのですが他のユーザーかプログラムが使用しているので削除できませんという表示が出て削除できませんでした
何のプログラムが使ってるんですか?
165名前は開発中のものです。
2009/01/03(土) 18:18:16ID:cGzTJz3u VC++の方の問題が解決しました
とりあえずこっちでやっていこうと思います
とりあえずこっちでやっていこうと思います
166名前は開発中のものです。
2009/01/03(土) 18:28:48ID:LXo4lpsC 入門書クリア前提と書いてあるのに、入門以前の奴がいつく不思議。
低学歴ってこういうところが図々しいんだよなぁ。
低学歴ってこういうところが図々しいんだよなぁ。
167名前は開発中のものです。
2009/01/04(日) 05:47:47ID:8iog1RSe ゲ製クオリティですね
168名前は開発中のものです。
2009/01/04(日) 08:50:13ID:je6HotHc ツール?に振り回されて全然進まないとか、よくあるパターンだなあ
本質理解せずにやり方だけ憶えたって、たいして上達しない気がする。
まるでツクールでゲームを作ってるような
本質理解せずにやり方だけ憶えたって、たいして上達しない気がする。
まるでツクールでゲームを作ってるような
169名前は開発中のものです。
2009/01/04(日) 14:27:38ID:zQBmDULY http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html
↑これの3.プロジェクトの作成のところのCにある”場所”ってどこでもいいんですか?
デフォルトでまったく関係ない場所にあるVC2008のフォルダの中のプロジェクトっていうフォルダに保存されるんですが
その後プログラムを組んでいくとDXLibのサンプルプログラム実行用フォルダに入ってる画像ファイルを表示できないのですが・・・
↑これの3.プロジェクトの作成のところのCにある”場所”ってどこでもいいんですか?
デフォルトでまったく関係ない場所にあるVC2008のフォルダの中のプロジェクトっていうフォルダに保存されるんですが
その後プログラムを組んでいくとDXLibのサンプルプログラム実行用フォルダに入ってる画像ファイルを表示できないのですが・・・
170名前は開発中のものです。
2009/01/04(日) 14:34:04ID:gz3s55od171名前は開発中のものです。
2009/01/04(日) 15:09:39ID:zQBmDULY 表示する画像をvisualstudio内のプロジェクトフォルダにあるtestフォルダに入れると画像が表示されました
これはDXlibとVC++がリンクできてないってことですか?
一応設定ガイドのとおりに進めてきたんですが唯一設定ガイドのとおりにできなかった点は
DxLib_VC2008_and_2005用.slnからVC++を開けなかったことぐらいです
なのでVC++を直接開いたんですがこれが原因だったんでしょうか・・・
これはDXlibとVC++がリンクできてないってことですか?
一応設定ガイドのとおりに進めてきたんですが唯一設定ガイドのとおりにできなかった点は
DxLib_VC2008_and_2005用.slnからVC++を開けなかったことぐらいです
なのでVC++を直接開いたんですがこれが原因だったんでしょうか・・・
172名前は開発中のものです。
2009/01/04(日) 16:38:36ID:WqEDI8cx スレタイにあるCの入門書クリア状態って
1.Cの文法を知っている状態
2.標準ライブラリを一通り知っている状態
3.APIを一通り知っている状態
4.その他、適切なライブラリを選んで使える状態
のうちのどれなんだろうか?
Java、VB、HSPなどは1〜3まで切れ目なく1冊の
入門書に書いてあるけど
Cの場合、1だけっていうのも結構あるような気がする
いずれにしても>>171は
0.PCが使いこなせる
-1.日本語わかります
の段階さえあやしいような気がするが
1.Cの文法を知っている状態
2.標準ライブラリを一通り知っている状態
3.APIを一通り知っている状態
4.その他、適切なライブラリを選んで使える状態
のうちのどれなんだろうか?
Java、VB、HSPなどは1〜3まで切れ目なく1冊の
入門書に書いてあるけど
Cの場合、1だけっていうのも結構あるような気がする
いずれにしても>>171は
0.PCが使いこなせる
-1.日本語わかります
の段階さえあやしいような気がするが
173名前は開発中のものです。
2009/01/04(日) 16:45:09ID:zQBmDULY 入門書はどの入門書を読めばいいですか?
174名前は開発中のものです。
2009/01/04(日) 16:46:17ID:zQBmDULY DxLib_VC2008_and_2005用.slnからVC++を開けない事に関しての対処法を知るにはどの入門書がお勧めですか??
175名前は開発中のものです。
2009/01/04(日) 16:47:24ID:BrM7xX/4 >>1 は「はじめてのC」を一通り読んだだけ
176名前は開発中のものです。
2009/01/04(日) 16:48:15ID:vNJyTbKi 【義務教育完了前提】初心者用段階的ゲーム製作スレ
177名前は開発中のものです。
2009/01/04(日) 16:51:04ID:zQBmDULY 横槍を入れてる人はいったい何のためにこのスレをみてるのですか?
このソフト導入のところさえパスすれば後はここで聞くこともなくなるとおもうのですが・・
このソフト導入のところさえパスすれば後はここで聞くこともなくなるとおもうのですが・・
178名前は開発中のものです。
2009/01/04(日) 17:01:26ID:vNJyTbKi > 3.できるまで自分で調べて頑張る
これが出来ないような人間に絡まれちゃった><
これが出来ないような人間に絡まれちゃった><
179名前は開発中のものです。
2009/01/04(日) 17:10:00ID:vNJyTbKi > 横槍を入れてる人はいったい何のためにこのスレをみてるのですか?
ついでに答えておこう。
ただ煽りたいだけですから^^
書かれた通りにやってここまで出来ましたが
ここからは本に書いてないので出来ません^^;
自分で考えるのも面倒です><
ついでに答えておこう。
ただ煽りたいだけですから^^
書かれた通りにやってここまで出来ましたが
ここからは本に書いてないので出来ません^^;
自分で考えるのも面倒です><
180名前は開発中のものです。
2009/01/04(日) 17:11:38ID:zQBmDULY だから書かれたとおりにできなかったので別のやり方でやったらつまったということなんですが・・
181名前は開発中のものです。
2009/01/04(日) 17:11:41ID:phKiW/kW ここは下の上ぐらいのやつが初心者を馬鹿にして自尊心を満たすスレだから気にするな
182名前は開発中のものです。
2009/01/04(日) 17:14:35ID:vNJyTbKi 自己紹介乙っす
183名前は開発中のものです。
2009/01/04(日) 17:18:38ID:vNJyTbKi つーか、場所ってどこでもいいんですか?
なんて聞いちゃうレベルの奴はDXライブラリ使う前に
コンソールでジャンケンゲームでも作ってろよ
質問したいだけなら他のスレがあんだろw
なんて聞いちゃうレベルの奴はDXライブラリ使う前に
コンソールでジャンケンゲームでも作ってろよ
質問したいだけなら他のスレがあんだろw
184名前は開発中のものです。
2009/01/04(日) 18:17:54ID:f8v2HP5/ >>169
どこでもいいです。
私は「マイドキュメント」以下に保存しておくのが望ましいと思います。
画像ファイルが表示できないとのことですが、何かエラーメッセージは表示されていませんか?
画像ファイルのファイル名の指定を変更する必要があるかもしれません。
相対パスではなく、絶対パスで指定してみてはいかがでしょうか。
どこでもいいです。
私は「マイドキュメント」以下に保存しておくのが望ましいと思います。
画像ファイルが表示できないとのことですが、何かエラーメッセージは表示されていませんか?
画像ファイルのファイル名の指定を変更する必要があるかもしれません。
相対パスではなく、絶対パスで指定してみてはいかがでしょうか。
185名前は開発中のものです。
2009/01/04(日) 18:39:20ID:c/UGKimf 「DxLib .sln」でググったらまったく同じ質問が引っかかるんだが
ちゃんと調べて試した上で質問しているのかな?
ちゃんと調べて試した上で質問しているのかな?
186名前は開発中のものです。
2009/01/04(日) 21:47:04ID:y/OXv3G4 その程度自分で解決できないようじゃこの先絶対詰まると思うな
187名前は開発中のものです。
2009/01/05(月) 03:39:55ID:+gOec/oi 初心者こそ2chじゃなくて、ぐぐる方に粘着力を発揮するべきなんだけどな
ぐぐって出て来ないのが続くと不安になっちまうのかしらねw
ぐぐって出て来ないのが続くと不安になっちまうのかしらねw
188名前は開発中のものです。
2009/01/05(月) 18:17:32ID:bFiw377J ゲームのループのところまで整えたけど何作ればいいかわからない
とりあえず画面に文字表示した
とりあえず画面に文字表示した
189名前は開発中のものです。
2009/01/05(月) 18:49:22ID:8qPbFVnr >>188
これなんてどう?
ゲーム名:ナベアツゲーム
ルール:
マウスをクリックするたびに数字が増える
3の倍数と3のつく数字の時には右クリック、それ以外は左クリックを正解とする
不正解の時には何らかのペナルティ(方法は自由)
制限時間内にできるだけ数字を増やす
課題の目的:マウス入力や時間処理の基礎を学ぶ
これなんてどう?
ゲーム名:ナベアツゲーム
ルール:
マウスをクリックするたびに数字が増える
3の倍数と3のつく数字の時には右クリック、それ以外は左クリックを正解とする
不正解の時には何らかのペナルティ(方法は自由)
制限時間内にできるだけ数字を増やす
課題の目的:マウス入力や時間処理の基礎を学ぶ
190名前は開発中のものです。
2009/01/05(月) 21:44:02ID:TTfreMdG なかなか面白そうw
191名前は開発中のものです。
2009/01/05(月) 22:28:31ID:bFiw377J そういうのってポトペタ出来るやつで作った方が明らかに効率的だよね
何か疑問抱き始めたんだけどwww
何か疑問抱き始めたんだけどwww
192名前は開発中のものです。
2009/01/05(月) 22:47:23ID:TTfreMdG ポトペタってなに?
193名前は開発中のものです。
2009/01/05(月) 23:07:11ID:07Sg+bJ8194名前は開発中のものです。
2009/01/07(水) 15:57:35ID:wOTyk9Ws195名前は開発中のものです。
2009/01/16(金) 11:49:40ID:yiTw/vGB http://dixq.net/g/#29
↑の跳ね返りの考え方1っていうところのソースを解説できる人いる??
主に
if(flag==1){
time2 = GetNowCount() ; // 現在経過時間を得る
t = (double)(time2 - time1) / 1000.000;
v0= sqrt ( 2.000 * g * y_max); //初速度を計算
for(i=0;i<j;i++) //j回跳ね返った時の初速度
v0*=e; //eは反発係数
y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max);
if(y>=0)
DrawGraph( 320 , 480-32-y , image[8] , TRUE );
else{
DrawGraph( 320 , 480-32 , image[8] , TRUE );
time1=GetNowCount();
j++;
}
}
このあたりとか意味不明すぎ
↑の跳ね返りの考え方1っていうところのソースを解説できる人いる??
主に
if(flag==1){
time2 = GetNowCount() ; // 現在経過時間を得る
t = (double)(time2 - time1) / 1000.000;
v0= sqrt ( 2.000 * g * y_max); //初速度を計算
for(i=0;i<j;i++) //j回跳ね返った時の初速度
v0*=e; //eは反発係数
y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max);
if(y>=0)
DrawGraph( 320 , 480-32-y , image[8] , TRUE );
else{
DrawGraph( 320 , 480-32 , image[8] , TRUE );
time1=GetNowCount();
j++;
}
}
このあたりとか意味不明すぎ
196名前は開発中のものです。
2009/01/16(金) 13:44:50ID:eKNbfSz5 >>195
基本的には物理でよくある問題
「初速度v0, 加速度-g, の物体のt秒後の位置を求めなさい」
を地で解いてる
if ( flag==1 ){
// 今は何秒後?
time2 = GetNowCount();
t = (double)(time2 - time1) / 1000.000;
// 初速度v0 の計算
v0= sqrt ( 2.000 * g * y_max); //(ジャンプの考え方1を参照 http://dixq.net/g/#27 )
for ( i=0; i<j; i++ ) { v0*=e; }
// 現在の高さy を計算
y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max);
if ( y>=0 ) {
// 着地してなければ、順調に落ちる
DrawGraph( 320 , 480-32-y , image[8] , TRUE );
}
else{
// 着地したなら……
DrawGraph( 320 , 480-32 , image[8] , TRUE ); // 画面下端にキャラクタを表示
time1=GetNowCount(); // 時間をリセット
j++; // 跳ね返った回数を1増やす
}
}
基本的には物理でよくある問題
「初速度v0, 加速度-g, の物体のt秒後の位置を求めなさい」
を地で解いてる
if ( flag==1 ){
// 今は何秒後?
time2 = GetNowCount();
t = (double)(time2 - time1) / 1000.000;
// 初速度v0 の計算
v0= sqrt ( 2.000 * g * y_max); //(ジャンプの考え方1を参照 http://dixq.net/g/#27 )
for ( i=0; i<j; i++ ) { v0*=e; }
// 現在の高さy を計算
y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max);
if ( y>=0 ) {
// 着地してなければ、順調に落ちる
DrawGraph( 320 , 480-32-y , image[8] , TRUE );
}
else{
// 着地したなら……
DrawGraph( 320 , 480-32 , image[8] , TRUE ); // 画面下端にキャラクタを表示
time1=GetNowCount(); // 時間をリセット
j++; // 跳ね返った回数を1増やす
}
}
197名前は開発中のものです。
2009/01/16(金) 15:05:07ID:yiTw/vGB なるほど!
v0*=e;の部分に{}がなかったからそこ以下が全部forの繰り返し処理にふくまれてるのかと思ってめちゃくちゃ複雑に考え込んでた
v0*=e;の部分に{}がなかったからそこ以下が全部forの繰り返し処理にふくまれてるのかと思ってめちゃくちゃ複雑に考え込んでた
198名前は開発中のものです。
2009/01/18(日) 12:09:23ID:CHnPFsm9 質問ですが、RPGの戦闘はif文を使っているんですか?
それだと多人数vs多人数の場合は処理を書くのがかなり大変だと思うのですが・・・
教えていただけたら幸いです。
それだと多人数vs多人数の場合は処理を書くのがかなり大変だと思うのですが・・・
教えていただけたら幸いです。
199名前は開発中のものです。
2009/01/18(日) 14:32:01ID:nMkjmCv8200名前は開発中のものです。
2009/01/18(日) 15:22:57ID:0Ylj0E2s >>198
ターン制の戦闘を想定する場合、
敵、プレイヤのデータをカードに書いて置いて、
「プレイヤのコマンド入力」→「敵のコマンド入力」→「攻撃順にカードを並べる」→
「カードの順番にカードに対応する各キャラクタが行動する」→「最初にもどる」
みたいな感じでどうよ。
敵が100人だろうと1000人だろうと問題ないね。
C++だと、カードっていうスーパークラスがあって、
プレイヤや敵はそのクラスを継承して、ポリモーフィズムを形成してうんたらかんたら
ターン制の戦闘を想定する場合、
敵、プレイヤのデータをカードに書いて置いて、
「プレイヤのコマンド入力」→「敵のコマンド入力」→「攻撃順にカードを並べる」→
「カードの順番にカードに対応する各キャラクタが行動する」→「最初にもどる」
みたいな感じでどうよ。
敵が100人だろうと1000人だろうと問題ないね。
C++だと、カードっていうスーパークラスがあって、
プレイヤや敵はそのクラスを継承して、ポリモーフィズムを形成してうんたらかんたら
201名前は開発中のものです。
2009/01/18(日) 16:19:05ID:p3BsxAdP >>198
if文を使っているか使っていないかといわれれば使っているが
当然それだけで制御しているわけじゃない
あと、人数が増えてもキャラにIDをつけてforで回せばいいので大変さは変わらない
参考(javaのRPG戦闘ソース)
ttp://www.geocities.co.jp/SiliconValley-Cupertino/9261/source/index.html
C++でもアルゴリズムは同じ
if文を使っているか使っていないかといわれれば使っているが
当然それだけで制御しているわけじゃない
あと、人数が増えてもキャラにIDをつけてforで回せばいいので大変さは変わらない
参考(javaのRPG戦闘ソース)
ttp://www.geocities.co.jp/SiliconValley-Cupertino/9261/source/index.html
C++でもアルゴリズムは同じ
202名前は開発中のものです。
2009/01/29(木) 07:20:21ID:ETfSP+cE http://dixq.net/g/#33
↑のs2. サウンドノベル風文字列表示法1にあるプログラムの
for(j=0;j<256;j++){
if(oldKey[j]==0 && Key[j]==1)
Key[j]=2;
oldKey[j]=Key[j];
}
って何を意味してるの?
↑のs2. サウンドノベル風文字列表示法1にあるプログラムの
for(j=0;j<256;j++){
if(oldKey[j]==0 && Key[j]==1)
Key[j]=2;
oldKey[j]=Key[j];
}
って何を意味してるの?
203名前は開発中のものです。
2009/01/29(木) 10:03:40ID:xirprjZ5 >>202
キー入力状態に変化があったかどうかを調べてる。
特に、「押してない状態(0)」→「押してる状態(1)」に変化しているなら、
「今押された(2)」ってことにしてる。
てかリンク先間違ってるだろそれ。
キー入力状態に変化があったかどうかを調べてる。
特に、「押してない状態(0)」→「押してる状態(1)」に変化しているなら、
「今押された(2)」ってことにしてる。
てかリンク先間違ってるだろそれ。
204名前は開発中のものです。
2009/02/19(木) 00:05:49ID:YuEFv8kY 2Dのアクションゲームを作ってるんですが、斜め方向のマップの当たり判定はどうやったらいいんでしょうか
今までマップチップ単位でキャラとマップの当たり判定をやってたんですがこれだと傾斜のあるマップに対応できないです。
マップチップとは独立してドット単位で当たり判定のデータを用意するくらいしかないでしょうか
今までマップチップ単位でキャラとマップの当たり判定をやってたんですがこれだと傾斜のあるマップに対応できないです。
マップチップとは独立してドット単位で当たり判定のデータを用意するくらいしかないでしょうか
205名前は開発中のものです。
2009/02/19(木) 09:04:49ID:CC1OIocp >>204
難しいこと考えてるなあと。
マップチップでは管理しきれないと思う。ドット単位というのも無茶な話。
キャラ(オブジェクト)単位での当たり判定になるね。
「14歳からはじめるC言語ゲームプログラミング」
http://www.rutles.net/books/217.html
この本のサンプルが、そのものずばりで解決してくれると思う。
ソース無しのサンプルゲームはDLできるので、これ見て役に立ちそうならどうぞ。
難しいこと考えてるなあと。
マップチップでは管理しきれないと思う。ドット単位というのも無茶な話。
キャラ(オブジェクト)単位での当たり判定になるね。
「14歳からはじめるC言語ゲームプログラミング」
http://www.rutles.net/books/217.html
この本のサンプルが、そのものずばりで解決してくれると思う。
ソース無しのサンプルゲームはDLできるので、これ見て役に立ちそうならどうぞ。
206名前は開発中のものです。
2009/06/22(月) 23:33:49ID:PR8N99oV 段階スレのまとめって今はどこなの?
207名前は開発中のものです。
2009/06/23(火) 01:02:00ID:dkvBYAOU gamedevは新しくなってる
ttp://wiki.game-develop.com/
ttp://wiki.game-develop.com/
208名前は開発中のものです。
2009/09/08(火) 11:21:57ID:yapzJvXF 初学者にやさしいゲームってどういう順番で作るのがいい?
○1.○×ゲーム
○2.15パズル
敵が無い、思考ルーチン考えないでいいぶん2のほうが楽かな。
○3.マインスイーパー
4.ブロック崩し
5.倉庫番
6.テトリス
:
:
○は作った。次は倉庫番かと思ってたけど、DXライブラリがバージョンアップして
描画改善に伴いマウスの反応が良くなったからブロック崩しに行こうかと。
7以降とか2.5相当とか、追加あったら応援おねがいしたい。
○1.○×ゲーム
○2.15パズル
敵が無い、思考ルーチン考えないでいいぶん2のほうが楽かな。
○3.マインスイーパー
4.ブロック崩し
5.倉庫番
6.テトリス
:
:
○は作った。次は倉庫番かと思ってたけど、DXライブラリがバージョンアップして
描画改善に伴いマウスの反応が良くなったからブロック崩しに行こうかと。
7以降とか2.5相当とか、追加あったら応援おねがいしたい。
209名前は開発中のものです。
2009/09/08(火) 11:29:49ID:6MhMNrx0 自分が作りたいゲームで作れそうなの作れば
210名前は開発中のものです。
2009/09/09(水) 12:09:38ID:eLuVrXen >>200
>C++だと、カードっていうスーパークラスがあって、
ここの所もうちょい詳しく
そういうクラスが標準で用意されてるのかと思ってググってみたんだけど、全然ヒットしないです
これは基底クラスを自前で作ってそこから派生させろという話?
>C++だと、カードっていうスーパークラスがあって、
ここの所もうちょい詳しく
そういうクラスが標準で用意されてるのかと思ってググってみたんだけど、全然ヒットしないです
これは基底クラスを自前で作ってそこから派生させろという話?
211名前は開発中のものです。
2009/09/09(水) 14:17:10ID:vKyxO6xF >>210
自分で作るんだよ。
たとえば「戦士は敵Aを攻撃」「魔法使いは呪文で全体攻撃」とか、行動の記録を構造体の配列なんかで持たせて
全部出揃ってから素早さ順なんかでソートする。
200のやり方はこのカードからプレイヤーや敵のクラスを継承させるみたいだけど
俺はキャラデータからカードを完全に分離させて、カードの仕事は行動解釈だけに絞るほうが好み。
自分で作るんだよ。
たとえば「戦士は敵Aを攻撃」「魔法使いは呪文で全体攻撃」とか、行動の記録を構造体の配列なんかで持たせて
全部出揃ってから素早さ順なんかでソートする。
200のやり方はこのカードからプレイヤーや敵のクラスを継承させるみたいだけど
俺はキャラデータからカードを完全に分離させて、カードの仕事は行動解釈だけに絞るほうが好み。
212名前は開発中のものです。
2009/09/09(水) 21:51:16ID:UMpltBwW213名前は開発中のものです。
2009/09/29(火) 05:17:35ID:kGLDkUja C言語でちょっと数値計算できる程度の実力ですがC++でゲーム制作に挑戦することにしました。
とりあえず数当てゲーム作ったけど、数字じゃなくて文字が入力された場合の例外処理がよくわからなくて棚上げ
ひとまず次頑張ってみます
とりあえず数当てゲーム作ったけど、数字じゃなくて文字が入力された場合の例外処理がよくわからなくて棚上げ
ひとまず次頑張ってみます
214名前は開発中のものです。
2009/09/29(火) 05:56:42ID:tenDfojw 標準関数のisdigit使えば何とかならん?
215名前は開発中のものです。
2009/09/29(火) 08:18:06ID:kGLDkUja aとかaaaとかは抜けれるようにできましたが1aとかがまだでした
一回寝てからもう少し頑張ります
一回寝てからもう少し頑張ります
216名前は開発中のものです。
2009/09/29(火) 13:45:22ID:/Wz8dUNK atoiの存在に今気付いた
isdigitなんか使う必要ねーじゃん
isdigitなんか使う必要ねーじゃん
217名前は開発中のものです。
2009/09/29(火) 13:59:20ID:yWA5tZHN218名前は開発中のものです。
2009/09/29(火) 16:08:36ID:ryAGnP+G ご丁寧にありがとうございます
とても参考になりました
とても参考になりました
219名前は開発中のものです。
2009/10/12(月) 09:30:46ID:fQgZRfDp C言語暦約一ヵ月半、winapi暦2週間の初心者ですが、練習のために>>7に挑戦してみました。
http://www1.axfc.net/uploader/Sc/so/44791.zip
ソースはあまりにもぐちゃぐちゃなので恥ずかしいので載せてません。
載せたほうがいいですか?
いちおうそれっぽいのはできたんですが、一点うまくいってないところがあって、敵の動きがうまくいきません。
敵位置を配列にしてるんですけど、for文で、敵[i]をまず消して、敵[i]の位置情報を変えて、敵[i]を再描画する、という順序なんですが、
敵[i-n]が移動した先が敵[i]の移動前の位置だとするじゃないですか。
すると、敵[i]の移動に伴って、敵[i-n]が消えちゃうんですよね。
かといって、まず全部敵を消してから位置情報を変えて、改めて全部の敵を表示するようにすると、こんどは敵が消えている時間帯が多く発生するので、画面がなんかちかちかするんですよ。
どうやって解決したらいいんだろう?
http://www1.axfc.net/uploader/Sc/so/44791.zip
ソースはあまりにもぐちゃぐちゃなので恥ずかしいので載せてません。
載せたほうがいいですか?
いちおうそれっぽいのはできたんですが、一点うまくいってないところがあって、敵の動きがうまくいきません。
敵位置を配列にしてるんですけど、for文で、敵[i]をまず消して、敵[i]の位置情報を変えて、敵[i]を再描画する、という順序なんですが、
敵[i-n]が移動した先が敵[i]の移動前の位置だとするじゃないですか。
すると、敵[i]の移動に伴って、敵[i-n]が消えちゃうんですよね。
かといって、まず全部敵を消してから位置情報を変えて、改めて全部の敵を表示するようにすると、こんどは敵が消えている時間帯が多く発生するので、画面がなんかちかちかするんですよ。
どうやって解決したらいいんだろう?
220名前は開発中のものです。
2009/10/12(月) 10:41:42ID:PNg7pEvy >>219
後者のやりかたの発展になるけど、裏画面に画像を用意してWM_PAINTのタイミングで入れ替える。
ホワイトボードの裏側に回って絵を描いて、合図がきたら裏返すイメージ。
ダブルバッファリングとかオフスクリーン描画とかで調べるといい。
C系のWindowsでゲーム作るなら必須の知識になる。
しかし1ヵ月半でここまでできるのはすごいな。
後者のやりかたの発展になるけど、裏画面に画像を用意してWM_PAINTのタイミングで入れ替える。
ホワイトボードの裏側に回って絵を描いて、合図がきたら裏返すイメージ。
ダブルバッファリングとかオフスクリーン描画とかで調べるといい。
C系のWindowsでゲーム作るなら必須の知識になる。
しかし1ヵ月半でここまでできるのはすごいな。
221名前は開発中のものです。
2009/10/15(木) 06:26:55ID:5kHMShZk >>220
ありがとうございます。
http://www1.axfc.net/uploader/Sc/so/45746
こうなりました。
どうでしょうかね?
もとがぐちゃぐちゃなので直すのに結構苦労しました。
ついでに、敵に当たっても移動できてしまうのを直しました。
ありがとうございます。
http://www1.axfc.net/uploader/Sc/so/45746
こうなりました。
どうでしょうかね?
もとがぐちゃぐちゃなので直すのに結構苦労しました。
ついでに、敵に当たっても移動できてしまうのを直しました。
222名前は開発中のものです。
2009/10/23(金) 09:54:20ID:r4hfvq6d カソル
223名前は開発中のものです。
2009/12/07(月) 01:50:47ID:cfqCdEHC あのさ、ActionScript3で質問なんだが、
FLASHってゲームループの概念なし?
それともEnterFrameとかタイマーイベント使ってやるのか?
イマイチピンとくる説明が検索でけんかった。
FLASHってゲームループの概念なし?
それともEnterFrameとかタイマーイベント使ってやるのか?
イマイチピンとくる説明が検索でけんかった。
224名前は開発中のものです。
2009/12/08(火) 17:07:56ID:cuTUnnQj 空気を読まずにお題を出してみる。
下記のデータ(ソース)がある。
const int max_choice_num = 3;
/* シーン */
struct Scene {
const char* const message; /* メッセージ文 */
int choice_num; /* 選択肢の数(0= 終了, 1= 強制移動, 2> 選択) */
int next[max_choice_num]; /* 次のシーンID */
};
/* シーンデータ(添え字がID) */
const Scene scene_data[] = {
{ "よくきた、勇者よ\n", 1, 1, },
{ "魔物を退治してくれんか?\n0: 任せてください\n1: いやです\n", 2, 2, 3, },
{ "では、行ってまいれ!勇者よ!\n", 0, },
{ "そんなこと言わずに・・・\n", 1, 1, },
};
下記のデータ(ソース)がある。
const int max_choice_num = 3;
/* シーン */
struct Scene {
const char* const message; /* メッセージ文 */
int choice_num; /* 選択肢の数(0= 終了, 1= 強制移動, 2> 選択) */
int next[max_choice_num]; /* 次のシーンID */
};
/* シーンデータ(添え字がID) */
const Scene scene_data[] = {
{ "よくきた、勇者よ\n", 1, 1, },
{ "魔物を退治してくれんか?\n0: 任せてください\n1: いやです\n", 2, 2, 3, },
{ "では、行ってまいれ!勇者よ!\n", 0, },
{ "そんなこと言わずに・・・\n", 1, 1, },
};
225224
2009/12/08(火) 17:09:39ID:cuTUnnQj 実行すると
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 1 <- 入力待ち
そんなこと言わずに・・・
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 0 <- 入力待ち
では、行ってまいれ!勇者よ!
となるようなプログラムを書け。
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 1 <- 入力待ち
そんなこと言わずに・・・
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 0 <- 入力待ち
では、行ってまいれ!勇者よ!
となるようなプログラムを書け。
226名前は開発中のものです。
2009/12/08(火) 21:47:41ID:dR/37Ta8 プログラムつうより普通スクリプトでやる処理だわな
227224
2009/12/08(火) 23:54:51ID:LCrDR7+W >226
これができたら、データを外部ファイルに出して処理してみるとか
ステップアップしていくと勉強になるかなと思ったんだけどね。
少しがんばればコンソールで簡単なテキストADVが作れるってのが
分かればモチベーションも上がるかなと思ったんだ…
つか過疎ってるから模範解答を出すタイミングが難しいな。
これができたら、データを外部ファイルに出して処理してみるとか
ステップアップしていくと勉強になるかなと思ったんだけどね。
少しがんばればコンソールで簡単なテキストADVが作れるってのが
分かればモチベーションも上がるかなと思ったんだ…
つか過疎ってるから模範解答を出すタイミングが難しいな。
228224
2009/12/12(土) 16:11:25ID:W7i0pvEF 模範解答。エラー処理とか一切してません。
int main() {
const Scene* active = NULL;
const Scene* next = &scene_data[0];
do {
active = next;
printf("%s", active->message);
if(active->choice_num == 1) {
next = &scene_data[active->next[0]];
}
else if(active->choice_num >= 2) {
int index;
printf("> ");
scanf("%d", &index);
next = &scene_data[active->next[index]];
}
} while(active->choice_num != 0);
return 0;
}
int main() {
const Scene* active = NULL;
const Scene* next = &scene_data[0];
do {
active = next;
printf("%s", active->message);
if(active->choice_num == 1) {
next = &scene_data[active->next[0]];
}
else if(active->choice_num >= 2) {
int index;
printf("> ");
scanf("%d", &index);
next = &scene_data[active->next[index]];
}
} while(active->choice_num != 0);
return 0;
}
229名前は開発中のものです。
2010/05/27(木) 17:19:08ID:cXVnDiqT 保守age
230練習 ◆UzmAAu.XVo
2012/09/12(水) 14:21:04.39ID:7I5dbz7q XNAでの3Dゲーム製作を目標に少しずつ勉強していきます。
余裕があればモデリングやwebの勉強等も。
新スレを立てるようなことでもないので、こちらのスレを使わせて頂きます。
余裕があればモデリングやwebの勉強等も。
新スレを立てるようなことでもないので、こちらのスレを使わせて頂きます。
231練習 ◆UzmAAu.XVo
2012/09/12(水) 14:49:34.24ID:7I5dbz7q 何もない本拠地
http://www7b.biglobe.ne.jp/~gamedev_2ch/index.html
http://www7b.biglobe.ne.jp/~gamedev_2ch/index.html
232名前は開発中のものです。
2012/09/16(日) 20:25:36.62ID:3z6vfuIt 本当に何もなかった
233名前は開発中のものです。
2013/10/09(水) 07:12:23.02ID:kPwojNB+ 段階的にタワーディフェンスでも作るか
234名前は開発中のものです。
2013/10/09(水) 12:58:31.56ID:86SiIj69 もうちっとゴールが明確というかシンプルな方がいいと思うが
235名前は開発中のものです。
2014/04/20(日) 09:17:28.53ID:mdGDETTa236名前は開発中のものです。
2014/04/20(日) 09:53:20.16ID:j9BN4KOd >>235
>>202はリンク先の例文の一部だから、>>202のレスだけみてもわからないよ。
まず>>202の正しいリンク先はここ。
C言語〜ゲームプログラミングの館〜
http://dixq.net/g/50.html
>while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
key配列はGetHitKeyStateAll関数の戻り値を格納するために使われている。
GetHitKeyStateAllとは何かググってみると、
DXライブラリ置き場 リファレンスページ
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html
>概略 キーボードのすべてのキーの押下状態を取得する
>使うにはまず char 型変数 256 個の配列を宣言します。必ず char 型で、数は 256 個でないといけません。
>そしてその配列のポインタをおもむろに GetHitKeyStateAll 関数 に渡します。
>そうすると GetHitKeyStateAll 関数は char 型配列に すべてのキーの押下状態を格納してくれます。
jはkey配列を走査するための変数。256になったら走査が終わる。
>>202はリンク先の例文の一部だから、>>202のレスだけみてもわからないよ。
まず>>202の正しいリンク先はここ。
C言語〜ゲームプログラミングの館〜
http://dixq.net/g/50.html
>while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
key配列はGetHitKeyStateAll関数の戻り値を格納するために使われている。
GetHitKeyStateAllとは何かググってみると、
DXライブラリ置き場 リファレンスページ
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html
>概略 キーボードのすべてのキーの押下状態を取得する
>使うにはまず char 型変数 256 個の配列を宣言します。必ず char 型で、数は 256 個でないといけません。
>そしてその配列のポインタをおもむろに GetHitKeyStateAll 関数 に渡します。
>そうすると GetHitKeyStateAll 関数は char 型配列に すべてのキーの押下状態を格納してくれます。
jはkey配列を走査するための変数。256になったら走査が終わる。
237名前は開発中のものです。
2014/04/20(日) 14:38:12.60ID:mdGDETTa >>236
ありがとうございます。
256の意味、わかりました。
決まっているんですね。
それから256になったら終了するのもわかりました。
最初のfor文を理解できていなかったようです。
説明が足りなかったようですみません。
プログラミングの館を見ていて、わからなかったので
ググったらこのスレを見つけて書き込んだ
という次第です。
丁寧に教えてくださってありがとうございました。
ありがとうございます。
256の意味、わかりました。
決まっているんですね。
それから256になったら終了するのもわかりました。
最初のfor文を理解できていなかったようです。
説明が足りなかったようですみません。
プログラミングの館を見ていて、わからなかったので
ググったらこのスレを見つけて書き込んだ
という次第です。
丁寧に教えてくださってありがとうございました。
238名前は開発中のものです。
2017/02/05(日) 08:29:33.10ID:Nf8rlIXS そうかそうか
239名前は開発中のものです。
2017/12/31(日) 20:30:57.08ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
9Z81E76WK7
グーグル検索⇒『来島のモノノリウエ』
9Z81E76WK7
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認 [七波羅探題★]
- 【インバウンド】中国政府、日本行き航空便の減便指示、2026年3月末まで「当面の措置」 [1ゲットロボ★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…中国の通販サイトなどからの大量輸入を懸念 [1ゲットロボ★]
- 「車を処分してください」生活保護の窓口 取材で見えた利用者の実情 [少考さん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」★3 [muffin★]
- 【実況】博衣こよりのえちえちFantasy map simulatorミニキャラ死闘編🧪★5
- 【実況】博衣こよりのえちえちFantasy map simulatorミニキャラ死闘編🧪★4
- VIPから🏡スレ潰すために来ました
- たぬかな、結婚していた [268244553]
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- 【高市悲報】理系、生成AIにより死滅へ Claude開発者「すまん、もう理系のチーズよりA Iの方が賢いねん…」 [339315852]
