[過去ログ]
【初心者】課題をクリアしていくスレ【講習会】 (787レス)
【初心者】課題をクリアしていくスレ【講習会】 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
177: 生徒BLUE [] 04/06/27 22:04 ID:b0jvqBNF あまりソースを貼り付けるのは荒らしっぽい?のでうぷろだにしました 今はまだ170行ですがインベーダーなら500〜1000ぐらいにたぶんなるので そろそろ切り替えようと思っていたところです キー入力はGetAsyncKeyStateを使いました 0x8000の意味とかまだよくわかりませんけれど if ((GetAsyncKeyState( VK_UP ) & 0x8000) == 0x8000) { y--; } チラチキ対策でダブルバッファを使った描画をしています 参考にしたソースをほぼそのままコピペしていますが内容は理解しています このあたりは以前、やったことがあるのでまだまだ大丈夫 課題5キー入力 http://gamdev.org/up/img/759.zip http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/177
178: 名前は開発中のものです。 [sage] 04/06/27 22:28 ID:6fdveQpW 画像だけなら簡単だが、音をつける段階で挫折しそうだ。 ダイレクトXを使わずに、WAVを複数同時に鳴らすことがどれほど大変か・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/178
179: 名前は開発中のものです。 [sage] 04/06/27 22:41 ID:PY8053hi >>178 そうだね。 「自分でPCMバッファを作成し波形を合成、リアルタイムに出力」 なんてことになると結構しんどい(面白いとも言うがw)・・・。 まあ、画像でも同じような場面(自分で管理するバッファを処理し ながらのリアルタイム出力)はあるわけだが。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/179
180: 名前は開発中のものです。 [sage] 04/06/27 22:48 ID:qWAk5Epz ほらほら、先生が仕切らないから、落ちこぼれがでちゃったぞ。 一人は突っ走ってるし。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/180
181: 名前は開発中のものです。 [sage] 04/06/27 22:58 ID:qWAk5Epz >>177 > 0x8000の意味とかまだよくわかりませんけれど 「ANDでマスクとる」とかはわかる? 定数書いちゃダメとか、staticって書くようにするとか、 拡張子がcppなのにC言語風じゃん!とか、 バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ 作成してしまった方が処理の無駄がないとか、ブラシとペンも。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/181
182: x≠先生かつx=生徒 ⇒ x=俺 [sage] 04/06/27 23:05 ID:v+n6K1pQ >>180 とりあえず突っ走ってるって俺じゃないよな? >>134 CPU使用率が70%〜80%まで行ったんだけど・・・。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/182
183: x≠先生かつx=生徒 ⇒ x=俺 [sage] 04/06/27 23:07 ID:v+n6K1pQ ( ゚д゚)ハッ!もしや、落ちこぼれが俺か! http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/183
184: 副担任 [sage] 04/06/27 23:48 ID:sIosK61q 先生が帰ってくるまで漏れが面倒みましょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/184
185: ぷち [] 04/06/28 00:10 ID:W5zBmX8i http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/185
186: 名前は開発中のものです。 [sage] 04/06/28 03:20 ID:vjeNxAuN 落ちこぼし師 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/186
187: 名前は開発中のものです。 [sage] 04/06/28 04:46 ID:AKJFcicb >>184 お願いします。 ソース貼っても、アドバイス求めても生徒ばっかりでレスなくて(´・ω・`)ショボーンです。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/187
188: 生徒A [] 04/06/28 06:10 ID:D8BhR1kS なんとか徹夜して6時間ほど粘ってキー入力まで行ったけど、限界が近い… WM_TIMERで画面の更新を行っているんですが、なんかすごくちらつくんですよ あと、DeleteObject(hBr)というのを使うと、何故か画面が白くなるんです… なので、使ってません。 http://gamdev.org/up/img/762.lzh http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/188
189: 4 ◆3VUXqvbfSY [] 04/06/28 06:20 ID:kLFrYp0l すみません皆様… ミニ死の行進してました… アプロダについて: あっても、別に構いませんが、必要無いようにします。 具体的には、トップダウンで(例えばCなら) メインを作る。 ↓ 個々に使われた関数を作る みたいに、ソースを(出来るだけ解りやすく)分割して、表示しようと企んでいます。 進行度: 自分で出来る方がドンドン進まれるのは、むしろ、喜ばしいです。ただし、課題はあくまで初心者ラインにしておきます。 だから、焦らなくて大丈夫。今の課題は、「キーで、赤い四角を動かす」です。 先生: や、やっと一人…m(_ _)mヨロシクオネガイシマス 次の課題: 当たり判定。 先ほどの、「動く赤い四角」を避けゲーに改造しましょう 敵は 敵x = rand() % 640;//rand()*640/RAND_MAX で…敵y++;のように動く単純な敵です。 当たったら終了と言う仕様で… http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/189
190: 副担任 [sage] 04/06/28 10:23 ID:HdfIcXTc 漏れは先生と考え方が違うので一応書いておきます。うざかったらクビにしてください。>先生 ・動けば正義(いい設計はできたほうがいいけどまだ求める段階ではないと思う) ・ソースは固めてどこかにアップする(バックアップ、成果としてわかりやすい) ・バイナリは付けて欲しい(開発環境を全てそろえるのは難しい) ・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい) あくまで初心者のためのライブラリとしてとらえています。 「絵を描くにはこうする」「動かすにはこうする」「…」「…」のサンプルコードの固まりにしたいです。 課題の方針には賛成なので従います。 というわけで分からんことがある人は漏れが面倒みます。勉強しながら…。orz http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/190
191: 副担任 [sage] 04/06/28 10:26 ID:HdfIcXTc 訂正すまそ。 × ・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい) ○ ・提出したソースにはよけいな機能は付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい) http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/191
192: 名前は開発中のものです。 [sage] 04/06/28 10:28 ID:Ten9Dr/x >>188 簡単だが添削。ウィンドウプロシージャだけ。 DeleteObjectの2行はWM_PAINT内でやってはダメ。 WM_PAINTは何度も呼ばれるため、最初の描画が終了した時点で、作ったペンやブラシは 無効になるため、色がつかなくなる。DeleteObjectするならWM_DESTROY内で。 ちなみにCreateしたものはちゃんと削除するのがお約束。 SelectObjectしたものに関しても、元に戻しておくのが一応の作法。 holdobj = SelectObject(hdc, hobj);// 以前のオブジェクトハンドルを保存 // 何か処理 holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す 何故か赤く塗りつぶされないというのは、ディスプレイDCに複数回描画を行っていて、それが ちらつきとして現れるから。こういう場合はオフスクリーンに描画し、最後にディスプレイDCに BitBltする。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/192
193: 名前は開発中のものです。 [sage] 04/06/28 10:30 ID:Ten9Dr/x ちと訂正・・orz ×holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す ○SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/193
194: 63 ◆xdaKt6k1XI [sage] 04/06/28 15:51 ID:W33tIq0j >>190 変な質問ですいません バイナリってなんですか? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/194
195: 生徒A [] 04/06/28 16:36 ID:D8BhR1kS >>194 190じゃないですが、もともとは2進数という意味だと思います。 だから、この場合は、1と0の組み合わせで作られた機械語データ (実行ファイル)の意味だと思います。 他にも、テキストデータ以外のファイル全てを指す事もあります。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/195
196: 生徒A [] 04/06/28 16:40 ID:D8BhR1kS >>192 ありがとうございます。 DeleteObjectのやり方は分かったのですが、 オフスクリーンのやり方がちょっとよく分からないです。 具体的には、オフスクリーンの作成方法です。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/196
197: 名前は開発中のものです。 [sage] 04/06/28 17:06 ID:cdlT0cfW CreateCompatibleBitmap http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/197
198: 副担任 [sage] 04/06/28 17:37 ID:HdfIcXTc >>194 Windowsの実行ファイルのことです。"〜.exe" ってやつ。 C言語とかはコンパイルして実行ファイルを作らないとプログラムが動きません。 HSPはインタプリタ言語なので実行ファイルは作らなくていいみたいですね。 >>195 正解です http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/198
199: Ruby@課題6当たり判定 [] 04/06/28 18:32 ID:1FRiXQWF require 'sdl' SDL.init( SDL::INIT_VIDEO ) screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE ) x=(639-32)/2 y=(479-32)/2 enemyX=rand(639-32) enemyY=0 loop do while event = SDL::Event2.poll case event when SDL::Event2::Quit exit end end SDL::Key.scan y -= 1 if SDL::Key.press?( SDL::Key::UP ) x += 1 if SDL::Key.press?( SDL::Key::RIGHT ) y += 1 if SDL::Key.press?( SDL::Key::DOWN ) x -= 1 if SDL::Key.press?( SDL::Key::LEFT ) x=0 if x<0 x=(639-32) if x>(639-32) y=0 if y<0 y=(479-32) if y>(479-32) enemyY=enemyY+1 enemyY=0 if enemyY>479 if (x-enemyX).abs<32 and (y-enemyY).abs<32 then exit end http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/199
200: Ruby@課題6当たり判定 [] 04/06/28 18:33 ID:1FRiXQWF screen.fillRect( 0, 0, 640, 480, [ 0, 0, 0 ] ) screen.fillRect( x, y, 32, 32, [ 255, 0, 0 ] ) screen.fillRect( enemyX, enemyY, 32, 32, [ 0, 255, 0 ] ) screen.updateRect( 0, 0, 0, 0 ) end 課題6当たり判定(実行ファイル付き) http://gamdev.org/up/img/764.zip 【Rubyスクリプトを実行ファイルにする方法】 http://exerb.sourceforge.jp/ からExerbををダウンロード レシピファイルを書く add_ruby_script[TAB](スクリプト名) add_extension_library[TAB](ライブラリ名)[TAB](パスを含めたライブラリ名) 例) add_ruby_script[TAB]collision.rb add_extension_library[TAB]sdl.so[TAB]sdl.so ※注意 [TAB]はTABキーで入力してください 通常のエディタだと空白と判別できませんので注意 Exerb添付ドキュメントは旧式の書き方になっているようです サンプルは新しいものだったのでそちらを参考にしました http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/200
201: 63 ◆xdaKt6k1XI [sage] 04/06/28 20:48 ID:W33tIq0j >>195 >>198 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/201
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 586 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s