VBでWinAPIを使う方法がわかってきたので 作りたくなりました。 Bitbltなど使う予定ですが、細かい技術がないので、 小出しにプログラムしようと思います。 (タマが動くだけとか、キーボードで自機を動かすだけとか) オナーニスレだけどよろしくね。
名スレの予感!
オナニでもがんばれYO!
「完成しない」に3万5000薬師丸ひろ子
この前、軽くやってみたんですが、 タマが45度以外の方向に進むのがどうやればいいのか考え中です。 三角関数使って、傾き計算するだけでいいですかね? とりあえず今からやってみます。
がんばれ。 ただ、その前に物理の勉強が必要だな。(藁
あ、ヤパーリ物理の勉強しないとダメですか。 高校の数学もろくにできてないんで、難しいです。
三角関数?簡単なブロック崩しだったらそんなの使わんぞ 壁の反射のヒントは「ビリヤード」かな?
ヒント:直角で構成された世界では、玉の角度が変化するのは動いている物体に あたった瞬間だけ。
てめぇ!拝見させていただきますゴルァ
つーか、玉の軌道をX軸で反転すれば問題なし。
>>8 ビリヤードですか…苦手です。反射がイメージできない…。
>>9 角度の変化は動いている物体にあたった瞬間だけですか。
ほおほお。
>>10 ゴルァ!よろしくお願いします。
あ、Y軸軌道であればX軸を中心に軌道反転、 X軸軌道であれば、Y軸を中心に反転だな。 誤りゴメソ
>>14 おお、すばらしい手書きの画像をありがとうございます!
そういえばそういうの習いました…。
www.geocities.co.jp/SiliconValley/2530/block01.zip
↑ちょっと埋まってしまっておかしいですが、
評価よろしくお願いします。ソース付き。
いまんとこ45度です…
まあ、ビリヤードは跳ね返り係数を考慮しないといけないけど、ブロック
崩しならいらないかな。
なので、
>>13 に加えて動いてる自機にあたったときに、どういう処理を
するかだね。
>>15 ど、どうって。もっとおっきくしよーよ。
くらいしか・・・(汗
いやーVBワカンネ(藁 しかし、頑張ってプログラム作っている1氏に漏れはカンドーした! Cが少しでもわかるなら、直線描画のソースやるけどいるか? 始点と終点入れるとライン描画する関数なんだけどさ、 ブロック崩し作るなら、この知識は絶対必要にナルヨ! Cわからんっていうなら、文章形式で説明スルヨ
>>16 跳ね返り係数ですか。あとでビリヤード系のページ探して
見てみますね。ありがとう。
>>17 たしかに小さすぎた。でかくしてみます。
>>18 おー、ありがとうございます。
実は、Cはちょこっとやってるのですが、なにぶん、DOS窓で
動くのしか作れないもので…VESAのライブラリ拾って16bit色
出してみたいと思いましたが、英語の文書が読めなくて挫折しました。
ソースいただけるならかなり嬉しいです!
「貴様ら!」と来て、「見てください」と突然丁寧になるのにワロタ
つぎはとりあえず、キーボード入力でバーを動かすプログラムかな?
>>22 いただきました。どもども。
じっくり読ませていただきます。
>>21 今がんばって製作しております。
www.geocities.co.jp/SiliconValley/2530/block02.zip 一応キーボードで動くようになりました。 しかしZキーとXキーです。 当たったときの跳ね返り処理はまだないです。
次はバーの当たり判定とバー移動の狡猾化だな。 当たり判定は、最初は難しく考えずに、ボール画像の底辺の座標とバー画像の上辺が 交わっている時に、ボール軌道を壁と同じ処理にぶち込めばいいだけだ。 ガンバレ
26 :
デフォルトの名無しさん :01/11/04 17:30
玉の速度をX成分Y成分に分ければヨシ。 考え方の詳細は物理の教科書で力学部分を参照。 跳ね返り係数はまず跳ね返り出来たときでいいんじゃない?
27 :
デフォルトの名無しさん :01/11/04 17:41
跳ね返りのとき、単に速度符号を反転するだけだと 振動しまくって壁から抜けられなくなるときがあるので注意。
www.geocities.co.jp/SiliconValley/2530/block03.zip
次、うぷしました。なんとかバーから跳ね返ることに成功。
しかしたまに失敗します…
>>25 参考にさせていただきました。
>>26 ほおほお。了解しました。
物理の教科書…あるかな。
>>27 うい~。次に実行ファイル作るとに考えてみます。
>>28 DLしてみますね。
>>29 まじですか?ありがとう。
ちょっと飯食ってきます
31 :
仕様書無しさん :01/11/04 21:07
>>1 とりあえず、「ブレセンハム」って言葉を検索してみろ。
33 :
デフォルトの名無しさん :01/11/04 21:46
ん。スレタイトルとは裏腹に良スレage
>>31 昔の元祖ブロック崩しはそんな高尚なことやってなかったと思うが、、、
>>34 それは、ただ貴方が知らなかっただけだと思われ(w
>>31 それ、全然参考にならんって。(ワラ
玉の動きは角度とスピードから計算するのがヨロシ。
x = x + speed * cos(angle)
y = y + speed * sin(angle)
floatで保存しておいて、画面に描く時にintに変換せよ。
37 :
デフォルトの名無しさん :01/11/04 22:50
>1 テメェ!早く拝見させてください
考えてるはずだ! 角度とか。 ごめん。言ってみたかった。
39 :
デフォルトの名無しさん :01/11/04 23:35
うおぉ・・・・、初めてこのスレに気づいたが、 なんだかプログラム始めたばかりの自分を思い出すぜー! アップしてあるアプリとか見ても、なんだか初々しくて感動するぜ! 俺にもこんな時代があったなぁ。 1さん頑張れよぉ。
俺もVBで肩身が狭いので、1を何気に応援したい。 キー入力について(既に知ってたらごめんね) Private Sub Form_keydown(KeyCode As Integer, Shift As Integer) Ebd Sub でキー入力イベントつかってるよね? ここで引数の KeyCode に入力されたキーが入ってて、 上下左右のキーを押した場合、 vbKeyUp vbKeyDown vbKeyLeft vbKeyRight っていう値がそれぞれ入ることになってる。 だから、 If KeyCode = vbKeyUp Then 何他羅漢多良 っていう判別式をかけば、上下左右のキーで移動処理が可能になるよ。 ほかの動作キーにもそういう値があるからヘルプで確認してみて。 ついでに俺も初心者だ。
>>31 ほお、そうですよね。XとYを同時に足したら1.414倍になりますね…。
リンク先のページ、参考にさせていただきます…が、読めるかな。
あ、ソースはCか(藁
>>32 検索してみました。
割り算使わない&整数のみで可能ですか。ゲームに向いてそうですね~。
できたら実装したいです。それにしても意外とブロック崩しって難解なんですね…。
ゲームってそういうもんでしょうか。
>>36 おお、めちゃくちゃ分かりやすいです。
ひとまず、36さんの方向で…
>>37 漏れも早く次うぷしたいんだモルァ!
>>38 計算してます。角度とか。
ブロック崩しの場合 横方向の速度は一定でよかったんじゃなかったっけか
43 :
デフォルトの名無しさん :01/11/04 23:44
ゲームとして成立させるためには、 キーボードのオートリピートの対策も絶対必要だな。
>43 メッセージキューにキー入力が残る事?
というかブロック崩しならマウスにすれば?
おいおい、意外にも名スレだな。最近珍しいぞ。
47 :
デフォルトの名無しさん :01/11/05 00:02
いやぁ、VBでやるよりC++でやるほうが手軽で簡単だと思うぞ。 一回、DirectXのライブラリ組んでしまえば、アルゴリズムは全く同じなんだから。 VBの見えないフォームにビットマップ読み込んでデバコンを指定して・・・なんてかっこ悪いからな。
スレタイトルに好感が持てタ
衝突は 点でやるなよ 線でやれ
>47 VBでDirectX使えば良いのでは?
51 :
デフォルトの名無しさん :01/11/05 00:12
ブロックは4つに分解して飛び散り、その 破片にも当たり判定つけてください。
美女を背景にしてください。
自前で用意したバッファにボールからバーまで全部 自力で描画したりして、基礎を覚えるのも良いよ。 VBやDirectXのインターフェース覚えるのを頑張ってもいいが、 こっちは一生使える知識だし。 時代錯誤か?
54 :
デフォルトの名無しさん :01/11/05 00:27
>49 俺が昔VBで作ったブロック崩しが変な動作だったのは点で判定したせいだったのか。
4人対戦できる様にしてください。 画面を正方形にして、上下左右の各辺にプレイヤーを配置する形で。
>53 連続書き込みで悪いけど、やり方教えて。 特に、自前でバッファを用意するってとこ。 VBだけで可能なの?
どうせAPIつかうんならCでやった方が良いと思うけど。 VBでやる利点無いよね?
>>51 中々面白そうなので、俺が作る事にした(w
剛体力学ブロック崩し。
>57 初心者がプログラミングを勉強しやすいのが利点。 なんてったって、インタプリタだし。
衝突は 線でもダメなら 面でやれ
あれ? 1は?
>>39 ありがとうございます。がんばります。
>>40 うい~。vbKeyLeftとかで矢印つかえるようになりました!
>>47 C++ですか…MFCというのがどうもよく分からなくて放置してました。
>>49 線で衝突というのはどうしましょう?四角く範囲区切るということですか?
>>51 難しいです…
>>52 完成したあかつきにはどっかから画像探して貼り付けます。
>>53 はーい。がんばりたいと思います。
>>55 Winsockコントロール使ったことがあるので、何とかなるかも。
最後に考えます
>>61 帰ってきました。
ネットワーク対戦可にしてください
>61 あと、タイマーコントロールを使わないで、 代わりにループさせると処理が安定して早くなる。 VBのタイマーコントロールは優先度が一番低いらしいから。 で、ループ処理のなかに DoEvents と sleep をいれると、 うまくOSにも制御が戻るから。 sleep はAPIで、使い方は sleep(100)とか。 括弧の中の数字が、アプリの実行の停止時間で、1=0.001秒だったはず。
66 :
デフォルトの名無しさん :01/11/05 01:58
背景の美女を脱がしてください。
口調が変わってるじゃねーかゴルァ!! 似たスレどこかで見ました。
バグ報告 右に移動中、右からきた玉が自機を透ける。
>>65 ほおほお。sleep入れてみました。
VBのタイマーコントロールは怪しいらしいですね。
APIのGetTickCount使うようにしました。
>>66 脱がしたいです。
>>67 おもしろかったので真似しましたゴルァ!
>>68 ありがとうございます。
なんか、あまり考えずに書いたので、右側が跳ね返るときも
左側が跳ね返るときも同じ処理を書いていたようです…鬱
04を再アップしました
>70 了解! 俺は初心者だし、お互いがんばろう。 ついでに言うと、GetTickCountの使い方がわからん(ー_ー;
>>1 スレタイトルの最初が>貴様ら<で、最後が>ください<になってるので
思わずみてしまった。
伽藍とバザール的良スレ。最後までやりとげてほしい。
このスレと結果報告を兼ねるHPで有意義な情報を公開にょ
73 :
デフォルトの名無しさん :01/11/05 09:41
1、flag_x,flag_yは不要
毎回SIN/COSを計算させずに 変数VX,VYを使う事
ball_x = ball_x + VX;
ball_y = ball_y + VY
そして、壁にあたれば VX,VYを
左右壁なら VX = -1*VX 上の壁がラケットなら VY=-1*VY と符号を変更する
その場合-1ではなく -1.0001 のようにするとだんだん速度が大きくなって面白い
2、あたり判定は ball_x/y と VX/Y を足した後の線分との距離を使う事
ラケットとなら線分の交差と点との距離を使え
交差なら 交差判定で検索しろ
点と線分の距離は
http://pc.2ch.net/test/read.cgi/tech/1003559977/3
遅レスですまんが、
>>36 角度でやると、衝突後の反射ベクトル求めるのが大変だから、
素直にxyのベクトルでやった方がいいのでは?
応用(たとえば重力とか)やろうとしたときも、角度と長さでやると
後々困難になるしー。
>>62 線での衝突判定というのは、ボールのすり抜け防止の策です。
現在の位置と次ステップの位置の二点を結ぶ直線として、目的の線分との
交差判定を行います。
こうすると、どんなに速いボールでもブロックすり抜けなどの検出エラーは
出ませんぜ。
まあ今は壁だけの段階だからまだ関係ないけどね。
頑張ってね。
>>71 GetTickCountは、Windowsが起動してからの時間をミリ秒単位で
返す関数のようです。引数は無しです。
で、10ms経った時間を計ろうと思ったら、現在時間から前に計った時間を
引いて、10を超えたら…みたいに書いたらいいみたいです。
>>72 はい、なんとかHPにまとめてみたいと思います。
有意義な意見をくださる方がイパーイいらっしゃるので、
僕の為にだけではもったいないです。
>>73 そうですよね。Sinとか毎回計算してたら遅くなりそうですしね。
んで、線分の交差を検索したところ、外積やら知らない単語が
出てきたので、それを調べようとして泥沼状態です…
>その場合-1ではなく -1.0001 のようにするとだんだん…
ほおほお、たしかに(藁 取り入れてみたいです。
>>74 そういうことでしたか。ようやく納得できました。
ありがとうございます!
普通のブロック崩しって、 バーの端っこにぶつかったら急角度で跳ね返る、 要するに物理法則を無視した動きをするけどその辺はどのように解決する? その辺をどうにかしないと、 バーやブロックや壁の垂直面・水平面が全て水平だったらボールの動く角度は 常に一定になるけど……。
スライスで軌道が変わったりすると面白そう。 アナログなコントローラでないと無理だけど。
ボールの運動量とバーの摩擦係数から、反射後のx成分を求めるの? 俺としては、物理学的なものは無視して、まずは形にすることをお勧めする。
そこらへんは作って楽しい所だから好きにやればいいんじゃないの? 単純に端に8ピクセルより近ければ 端からの距離を Dとして VY:=-VT : VX=VX*D/8 とかでもそれなり
82 :
デフォルトの名無しさん :01/11/05 13:47
>>81 それじゃボールのスピードが変わっちゃうYO!
キー入力はAPIを使うこと(GetAsyncKeyState) リアルタイムゲームでキー押下イベントを使うVBアプリは糞と呼ばれます 描画はバックバッファを使うこと 非表示のPictureコントロール(AutoRedraw=True)に全部描いてから FromにPictureコントロールの内容をコピーしよう
s/From/Form/
貴様、ShiftKeyでバーの移動速度を倍くらいにしてください(w
>>83 キーコード
カーソルキー左 37 、カーソルキー上 38、シフトキー 16
だっけ?左右逆かも。
>>85 右39だ。上は関係ないや。
逝ってくる。
キーコードはキー入力定数を使えば間違いない vbKeyLeftとかってやつな
ところで1さんはいつプログラミング始めたの?
新しいファイルがアップされてた。
http://www.geocities.co.jp/SiliconValley/2530/block05.zip ↑次のファイルうぷしました。なんか、めり込みます…
線で跳ね返る処理をコピペしたら、おかしくなりました。
タマに、斜め方向に線をいれてます。(X状に)
>>77 リンク先、参考にさせてもらいます。どもです。
>>78 そうですね~。完成が見えてきたら考えてみます。
>>79 アルカノイドのコンパネみたいなやつあったら嬉しいんですけどね(藁
>>80 うい~。形を作ることを考えます。
>>81 そうですね~。まずは好きにやってみます。
>>83 う…今回うぷした分でキー入力は修正しました。さんくす。
>>85 うい。してみました。
>>87 APIでキー入力の処理をしたので、VK_LEFTに変わってしまいました。
>>88 う~ん、どのくらいでしょう。
趣味でたまにちょくちょくするくらいで、
期間的にはだいぶ長いことやってます…。
最初はファミリーベーシックで挫折(小学生時代)
ポケコンのベーシックにはまる(中学3年~高校生)
CとVB勉強(高校~)みたいな。
>90 バグが酷いんだが、なんとかならんか? 激しく酷いぞ。
まだ次期尚早かもしれないけど、マスクパターンを使った 擬似スプライト処理をしたほうがいいね。ボールのフチが見えて萎える。 それからバックバッファを使わないと後々困ると思うよ。 いまのままだと、ボールやバーの移動量をふやすと軌跡がのこっちゃうでしょ。
それから、FormをUnloadしたときに正しく終了してないので これは今すぐ直しなさい。 Form1_Unloadイベントに一行End書くだけでしょ。 タスクマネージャ見て驚いたよ。
>>91 すいません、徐々に直していきます。
>>92 うい。了解。
前にフチを消す処理を書いたような覚えが…探してみます。
バックバッファですか。そこに書いてから実際の画面に転送ですよね。
やってみます。
>>93 ごめんなさい…ウチでもタスクマネージャ見たら溜まってたんで
焦りました。05を再アップしました。
今まで試してくださった方、大変申し訳ないです。
ちょっとおかしい部分あるけど、昨日に比べて格段に出来上がってるじゃん。 覚えるの早いねー。 ブロックの管理あたりで一騒動ありそう・・・。 何か考えてる?
なんかペースが早いな。 消化できてても吸収できてないと後々にひびく。 1が無理してなきゃいいが・・・
98 :
デフォルトの名無しさん :01/11/05 23:09
こんぐらいで消化不良起こすようじゃ・・・
>98 消化はできてるだろ。 問題は、覚えたかどうかだ。
100ゲット!
101 :
デフォルトの名無しさん :01/11/06 00:46
名スレ! このスレをヴァカ学生どものテキストに使いたいくらいじゃよ。 結局GDI描画にしたのねん。 メモリ上に仮想VRAMおったてて、スクリーンにBitBltかけるライブラリとか なら探せばいくらでもありそう。 でも、プログラム的にはGDIのBitBltと同じような処理になっちまうだがな。 まあ、ともかく1よ、テキトーにがんばってくれや。 燃え尽きんようにな。
102 :
デフォルトの名無しさん :01/11/06 01:00
あー見ている間に1に技術的に抜かれてしまった(w
>102 そうなの?
このスレはプロゲームプログラマのネタスレと見た。 ソースは全然見てねーけどな。
>>104 いや、その線はないだろう。ソースを見てみれ。
ある程度経験を積んだ奴はどんなに素人らしいコードを
書こうとしても、必ずその「痕跡」がコードに現れてくるものだ。
ただ
>>1 は、スレの育て方のコツを知っているみたいなので
もしかしたら「プロの2チャンネラー」かもしれん・・・
106 :
デフォルトの名無しさん :01/11/06 08:36
応援age
昨日言った事の1はクリアしたが2が出来ていいない 衝突判定の為にはBallMove()の先頭で next_x = ball_x + vx next_y = ball_y + vy として ball_x/y next_x/y の線分との距離判定を使いなさいと言った筈だ 1、まず、線分と線分の距離を求めるルーチンを作りなさい。 そして、 枠とラケットへの線分との距離を順に求めなさい その距離がボールの大きさより小さければその回に衝突する
おはようございます。今日もがんばろうと思います。
だんだん難しくなってきたので昨日ほどの進捗は無いかもしれませんが…。
>>96 おー、ありがとうございます。嬉しいです。
ブロックの管理ですか…配列の中に入れようと思いますが、
まだぼんやりとしか思い浮かばないので、ちょっと紙に書いて考えます。
>>97 ちょっと無理目です。でも努力をしないと技術がつかないと思うので
がんばりたいと思います。
>>101 どもです。
スクリーンにBitbltですか。ウインドウから位置を計算してその上に
乗せればいいわけですね。
学校の先生ですか?がんばってください。
先生から受ける影響(ソースの書き方とか)大きいです。
>>105 2chねらー歴は数ヶ月です(藁
何度かスレ立てて、どうやったら面白いか考えてました。
おっしゃる通り、素人でございます。
>>107 強制するのはよくないよ。
自分で考えて作るのがプログラムの楽しさだ。
メインループの書き方がどうもね… いまのままだと処理内容が増えるにつれて リニアに遅くなるよね
111 :
デフォルトの名無しさん :01/11/06 10:27
112 :
デフォルトの名無しさん :01/11/06 12:48
>>19 >動くのしか作れないもので…VESAのライブラリ拾って16bit色
漢発見!
>>111 んなこたーない
1フレームの処理Pにかかる時間をn(msec)とし、
フレーム更新間隔をm(msec)としたら、
本来1フレームはPを処理したあとに(m-n)msecを
sleepすべきである。(これを画面走査線の動作に
あわせるのが、vsyncである)
したがって、n<=mである限り1フレームの更新間隔は
nによらず一定で、その値はmである。
一方、このブロック崩しは 1フレームの更新間隔m=(10+n)msecとなることは自明。 プログラムの組み方によるが、たとえばブロック1つにつき 処理時間lを要するとすれば、ブロック数kに対しn=a+l*kである つまり、m=(a'+l*k)となり、変数kによってmが線形的に変化する こととなる。 これは、「ブロックが大量にあるスタート時とブロック残り数が 少ない最後のほうでフレーム更新間隔が異なる」ことを意味する。 フレーム更新間隔の変化は、パドルの動作、ボールや演出の動作にも 影響を与え、ゲームとしての品質を低下させる。
>>114 ブロックとの衝突判定をどうするのかまだ決まっていない状態で
議論しても始まらんだろ。
とりあえずぱっと思い付いた(つーか、ありがちな)方法だが、
普通ブロックって奴を画面に配置する時は縦横きれいに整列されているので、
その構造を利用するだけでも
線1本との交差判定にかかる処理時間
縦方向に配置するブロックの最大数を r
横方向に配置するブロックの最大数を c
とした場合、その衝突判定にかかる処理時間は(生存しているブロックの
数に関わらず)
l * r * c
で済むんではないの?
(ついでに線との衝突判定を律義に1本ずつ計算せずに
「どの線とぶつかる可能性があるか」を計算で拾い出せば
もっと速いけどな)
あ、悪りぃ。細かい事だけど、 >線1本との交差判定にかかる処理時間 を >線1本との交差判定にかかる処理時間を l に読み替えてくれ。
やっぱ07おかしいかも…いったん削除。
再アップしました。
1はホントにヒッキーなの?
>>116 別に今回のブロック崩しでどういう処理をするかは論じてない
あくまでゲームループ一般の話題であり、ブロック衝突に
かかる計算量は、あくまで一例としたまでで
気に食わないなら「ボールが複数に分裂した場合」でも
「敵が複数出現する場合」でもかまわない
それよりあれだけの情報で新しいリリースではちゃんと修正している
>>1 はかなり理解力が高いと思う
ソース見たけど、いわゆる「処理落ち」まできちんと考慮してるみたいだ
初心者は初心者なんだろうけど、頭はかなりよさそうだね
なんでこのスレsage進行してるの?ageてもいいんじゃ・・・
まだ、ボールがパドルにめり込んでスタックするというバグが残ってるよね 反射の処理が冗長な割に正確じゃないのよね。思い切って書き直したほうがいいと思う if パドルの上端(上半分)に接触 then vy=-abs(vy) if パドルの下端(下半分)に接触 then vy=abs(vy) ってなふうにad hocに書いたほうが妙なバグに悩まされずに済むよ
125 :
デフォルトの名無しさん :01/11/06 17:46
>>124 おお、待ち望んでいたものが。ワショーイ
126 :
デフォルトの名無しさん :01/11/06 18:08
ブロポンみたいにしようよ・・
>>124 ってことは、これは板違いにつき終了ってことね。
>127 まだインフラ整備されてないようだから、それまではいいんじゃない?
とりあえずこのスレは使い切って欲しい
移転するならアドレスかいてくれYO!
132 :
デフォルトの名無しさん :01/11/07 20:03
珍しく良スレだな。 こういうのがゲ術板でも出てくるといいのだが。
133 :
デフォルトの名無しさん :01/11/07 20:27
ゲ術板、PCのカテゴリに移動したね。 厨房減ればいいけど。
136 :
デフォルトの名無しさん :01/11/07 23:13
>1 もっとスピード早くして。
>>1 いまんとこ定数ごっちゃになってないけど、
大丈夫か?きちんと見た目わかりやすく定義した方がよくないか?
そんなこという俺もいっつも適当だけど、鬱
ついでに変数もint~~などと書いてほしい などと言ってみるテスト。
>>139 210点でクリアー.
1はいい調子だね.
142 :
デフォルトの名無しさん :01/11/08 10:31
>>139 いいね、いいね。シンプルだけど遊べるよ。
ただ、「この角度でボールに当たったら、こうは動かんだろ~」という
ストレスが多少ありますね~。
143 :
デフォルトの名無しさん :01/11/08 10:59
まじで名スレ (・∀・)ガンバレ! 実は、リリース版まで上がってて小出しにしてるのかとか 一瞬疑ってしまったよ モチベーションって大切だよな、うんうん
漏れはプログラム始めたばかりでAPIサパーリだが、応援させてもらうぞゴラァ
>>1 !頑張ってください
漏れもうれしいぞ。
148 :
デフォルトの名無しさん :01/11/09 09:17
なんかいい雰囲気だな。オレもむかし、MSXでブロック崩し作った。 昔のブロック崩しは、ブロックの横からの判定がなくて当たり前で、 衝突判定はかなり単純なものだったなあ。 ボールの角度も、エポック社の取説では、ラケットに当たった位置に よって、4方向(!)ぐらいだけだったような。 そのレベルはとっくに超えてて、いいぞゴルァ!
1さんの作品が完成したら、プログラミング始めたばかりの人たちによる、 「貴様ら!○○作るので見てください」をシリーズ化キボン。
>>149 ただし「貴様ら!HelloWorld作るので見てください」は却下な。
>>149 それちょっと考えてみた。
しかし、現時点でかなり1に遅れをとっている状態であり、
怖くて立てる勇気がない。
>>151 660点でクリア.
1,成長早いね.exeのアイコン変わってるし.
途中で1回玉がブロックの下素通りしたよ.
玉はもうちょっと早くてもきもちいいなぁ.
ステージのデータをファイルから読み込むようにして欲しいなァ。 効果音とかあると気持ちいいかも。
157 :
デフォルトの名無しさん :01/11/09 20:10
158 :
デフォルトの名無しさん :01/11/09 20:14
>>157 ゲームとは限らないの方向で一つ。
「貴様ら!コンパイラ作るので見て下さい」とか
159 :
デフォルトの名無しさん :01/11/09 21:35
>>158 「貴様ら!ゲームライブラリ作るので見てください」だったら萎え
「貴様ら!コドモ作るので見て下さい」キボーン
そこの女!オナニーするので見ていてください
163 :
デフォルトの名無しさん :01/11/09 22:12
貴様ら!物理法則のシミュレーションを教科書の最初から順にやっていくので見てください!
164 :
デフォルトの名無しさん :01/11/09 22:18
165 :
デフォルトの名無しさん :01/11/09 22:22
なんかコメントとかしっかりしてるけど。
>>1 は何か他の言語の経験者?
>>165 COBOLとForthとアセンブラやったことあります。
167 :
デフォルトの名無しさん :01/11/09 22:33
>>166 で?そのレスのどこで笑え・・・・・と?
>>165 細々とやってたらしいよ。
基礎は身に付けてるみたい。
169 :
デフォルトの名無しさん :01/11/09 23:04
最初はヘタレてても、ちょっとアドバイスするとそれ以上のものを 作ってくる1は、正直すごい。 さて、ステージデータのファイル形式、どんなのを作ってくるかな? ステージエディタなんかも作ってみては?
170 :
デフォルトの名無しさん :01/11/09 23:13
>>168 そうなんだ。誰かコメントつけなさいってアドバイスしたのかと思った。
(すまんスレ全部読んでない)プログラマとしての素養は備えているね。
俺はだめだ。もうやーめたっと。
171 :
デフォルトの名無しさん :01/11/09 23:17
>>167 うるへーばか('Д´)お前はそこでかわいてゆけ
174 :
デフォルトの名無しさん :01/11/09 23:33
>169 えへへ・・・お前・・・優しいなぁ・・・
176 :
デフォルトの名無しさん :01/11/10 00:40
魔○シュ○ティ○グのときは、こんなに温かくなかったなあ(藁
これをHSPで作ってたら、 また違った展開になっていたと思われ。
ってか、うしとらに反応あって嬉しい。
>>161 動かしてみたよ.いいじゃん.音.
動きも速くなってていいね.
あとは,玉とラケットが接触するとき,
ラケットと玉との相対スピードで飛ぶ方向変えれると,
もっとはまるね.
181 :
デフォルトの名無しさん :01/11/10 06:37
>>1 にはシューティングとか作ってもらったほうがいいかも。
ちょっと期待しちゃう。
183 :
デフォルトの名無しさん :01/11/10 12:29
>>182 のような物もいいかも知れないけど、
VBを卒業してLinuxでもいれてCを勉強したほうが1の為に良いだろう。
1は素質があるようなのでオープンソースの場で活躍が期待できそう。
そんなわけで期待age
>>4 はこのスレの参加者全員に薬師丸ひろ子を配ること
ワラタ
186 :
デフォルトの名無しさん :01/11/10 16:45
>>1 VCでやったほうがいい
VBは所詮厨が使うもの
>>186 1をM$依存症にする気か?
1の明るい未来のためにCのほうがいいと思われ。
つーか、あなたは既にM$依存章のようですが?(藁
/. jp 的アンチ MS 主義者ですか? Windows 使っている限り MS の掌の上なんだから諦めも肝心。 それはそれとして opensource 活動もするのが大人のやり方。
Windowsなど使っていませんが何か?
http://www.geocities.co.jp/SiliconValley/2530/ ↑16個目UPしました。
ステージエディットできるようにしました。
あと、毎秒100フレームは計算しすぎかと思って、50フレームにしました。
>>180 一応、ラケットの進む向きで角度を変えられるようにはしてあります。
でも、物理法則に反してるかもしれません(藁
コマンドラインオプションで、/dをつけて起動してみてください。
>>181 リンク先、見てみます。
>>182 シューティングつくりたいです。怒首領蜂みたいなやつ。
>>183 Linuxですか…ちょっと敷居が高いです。
インストールしたことはあるんですけどね…
>>186 VC、いじってみようかと思います。
>>187 僕もすでにVBいじってる時点でM$依存症かも…
ちょっと疲れ気味です。
>>4 さんから送られてくる予定の薬師丸ひろこでなごみたいと思います。
191 :
デフォルトの名無しさん :01/11/10 18:41
192 :
デフォルトの名無しさん :01/11/10 19:33
>>190 > ちょっと疲れ気味です。
>
>>4 さんから送られてくる予定の薬師丸ひろこでなごみたいと思います。
ウマイ!!!
で、ちゃんと休憩しているか?
>>187 グラフィックスやサウンド絡んだら、いずれにせよ Generic な C/C++ の範囲外だから、環境依存に
なるのは仕方ないと思われ。
まぁ SDL あたりのライブラリを使うって手もあるけどさ。
>>189 で、結局のところ何を言いたいの?
ゲームなんか作ってないで、C 勉強して Linux の開発やれって意見なら大きなお世話だし、Win32
ではなく Linux にターゲットを移そうという提案にしても、ゲーム開発に限れば Win32 + GDI と比較
して Linux + svgalib, Linux + X11 で特にメリットがあるとは思えないけど。
Win32 は
- マルチメディア関連の API が標準化されている
- 情報も豊富
- 開発環境も整っている
- 利用者が多い
という点で、趣味のゲーム開発者にとっては、これを選択する十分な理由があるよ。
>>1 とりあえず VB + GDI でしばらくやってみて、限界を感じたら VB + DirectX なり VC に移れば良い
と思う。趣味でやってることなんだし、プラットホームや言語はなんでも良くて、ゲーム作って本人も
周囲も楽しむのが最優先でしょ :D
196 :
デフォルトの名無しさん :01/11/10 23:39
>>1 ( ´ゝ`) < MacOSXの世界に来ないかい?
VB+DirectXなんてできるの?
どうでもいいが。
>>196 なんのメリットが?
199 :
デフォルトの名無しさん :01/11/11 00:09
>>197 ( ´ゝ`) < 偏見パレードかもしれないけどね
・ProjectBuilderだと、VB並てかそれ以上の操作性+各オブジェクトの
関係の理解がし易くなる
・Appleだけあって、メディアが作り易い
・C言語の拡張であるObjectiveCとJavaが使える
・
http://www.big.or.jp/~crane/cocoa/ ←ここでほとんど理解できる。
( ´ゝ`) < いじょーだよ。
( ´ゝ`) < あくまでも偏見だからね。
( ´ゝ`) < でもProjectBuilderはマヂに生産効率アップできるよ。
( ´ゝ`) < 日本語が以上に変。鬱蛇志之右
>>各位
それぞれの信念理念を元にした野外での議論は必要無いのではとおもわれ
>>1 いろんな意見があるが最終的には1自身できめてください。
少し休憩して、ロールプレイング的な感覚を楽しませてください。
応援してますぞ
203 :
デフォルトの名無しさん :01/11/11 10:15
>>1 なんか知らんが、こう言うスレの中では、
ここの
>>1 がすき。
応援しとるぞ、折れも。
hp.vector.co.jp/authors/VA019204/programming/
↑ここのページ見てちょっと凹みました。
中学生でもこんなにすごい人がいるとは。
ちなみに僕はコンピュータ系専門学校に逝っていましたが
あまりに酷いので逝かなくなりました。親に悪いことをした…
>>199 Macでプログラムってあんまり考えなかったです。
いろいろソフトがあるんですね。ほおほお。検索してみようと思います。
>>201 電車のゲームですか?
Direct3D使ってるんですねー。すごい。
>>202 うい~。応援どうもです。
今日は休憩しました。またがんばろうと思います。
>>203 ケコーンしましょう。
一覧から消えたのであげ
>>204 オランダあたりじゃないと、結婚できないな、
>>1 さんは男みたいだし。
206 :
デフォルトの名無しさん :01/11/11 22:43
>204 本にいくらでも書いてあるんだから、そんなHPでへこむな。 やってないだけで、やればできるだろ。
207 :
リア厨 ◆3JQchEFY :01/11/11 22:55
>>204 前に見たときはスゴイって思ってたけど、
「プログラムは何故動くのか」とかいう本みたら
「たいしたことないじゃん。」って思えたよ。
つまり、206に激しく同意
208 :
デフォルトの名無しさん :01/11/11 22:57
というか、やろうという意思、モチベーションを
維持しつづけられる若さと情熱にあふれた
>>1 が
何よりも眩しく、羨ましい。
209 :
141=153=180 :01/11/12 00:00
>>195 1360点でクリア.
1,ほんとえらいよ.言語とかどうでもいいから,とにかく
このゲームををひとつしあげてほしい.
思ったこと.
玉が加速して面白いね.そのせいか,
そろそろShift2倍速もつらくなってきたね.
アナログコントローラじゃない壁をどうやっておもしろく取っ払おう?
圧縮ファイルの作り方は,16個目のより17個目のほうが好き.
いちおうこわいからソース調べてからVBでコンパイルして遊んでるので,
別フォルダになってないほうが手間がすくなくてうれしい.
あとさ,こまかいことだけどさ,ボールの影の形四角っての
そろそろやめない?
とにかく1,楽しみにしてるからがんばれ.
210 :
デフォルトの名無しさん :01/11/12 00:03
>四角 関数変えるだけだと思うので1行書き換えておK
211 :
ヒッキー@プログラミング :01/11/12 00:47
>>205 スイマセン、男です(藁
>>206 >>207 そうですねー。そういう分野の本も読めばいいんですね。
ちょっと救われました。
>>208 ありがとうございます。
ヒッキーなので、日々の生活で精神が乱されることがないので
継続できているんだと思います。学校に通ってた時は苦悩の日々
でした。
>>209 毎度、ありがとうございます。
ボールの影、ウチの環境(Win2000)では出ていなくて、
今までわかりませんでした…。
ちょっとBitbltの引数を考えたいと思います。
それから、これからは17個目のような形式であぷします。
212 :
ヒッキー@プログラミング :01/11/12 20:17
213 :
デフォルトの名無しさん :01/11/12 20:21
これから試してみますね。age!!!
214 :
デフォルト :01/11/12 20:54
重なったブロックにボールが当たると、ボールが当たったほうは 消えますが、当たってない方が欠けてしまいます。
215 :
ヒッキー@プログラミング :01/11/12 21:03
>>213 ういー。どもです。
>>214 あー、たしかにそういう風に書いてしまいました…
見直します。サンクス!
216 :
ヒッキー@プログラミング :01/11/12 23:08
217 :
デフォルト :01/11/13 01:04
自機にボールが食い込んじゃう。
218 :
デフォルトの名無しさん :01/11/13 01:22
点数の増加についてですが、1ブロック10点固定ではなく自機を離れてから 連続してブロックを壊した場合、コンボ点を導入するってのはどうですか? 1個 - 10点 2個 - 20点 3個 - 40点 4個 - 80点 5個 - 160点・・・
ブロックを崩すだけでなく、自分が崩される機能というのはどうですか?
それだとブロック崩し崩されになってしまいますが。
座右の銘 ブロック崩し崩され
あのー、移動しながら玉を跳ね返すときに、 機体にボールが吸い付いて振動してしまうのですが、 僕だけでしょうか?
>204 彼の成長と君の成長は直接に関係があるわけじゃないよ。 君がもっと成長したあと、そのページを見直してみたとき、 「なんだ、大げさにいうほどのことじゃなかったな」 と思える日が来るかも知れないんだし。
225 :
141=153=180=209 :01/11/13 22:26
>>216 やってみたよ.
>>223 が言うように,ボールが機体にくっつくね.
特にボールのスピードがおそいときに,そうなるね.
おいらもWin2Kだけど,影は消えました.
ブロックを打ち返す,ってとこさ,このゲームの要だから,
ちゃらいところに凝るのもいいけど基本的なところで「味がある」
操作系にできないかなぁと思うんだけど.
ってことで1がんばれ.
初めて覗いたけど、すごいよ・・・
自分がヘタレだと改めて感じました・・・
>>1 さん、頑張ってください
227 :
ヒッキー@プログラミング :01/11/14 17:48
いいねいいね
わずか10日でこの成長っぷり
>>4 から35,000薬師丸ひろ子がもらえる日は近いね
Stage_Data.basはもうちょっと書き方があるだろう。
>'ここにループを書くとウインドウ描画前に始まってしまうので、 >'タイマー使用 show doevents のコンボをform1_loadに書いておけば その時点でwindowが表示されるよ
>>229 もっともな指摘だがさすがに1もこれを放置する気はないだろう
それよりファイルナンバーの直指定はやめるべき
使用可能なファイルナンバーはFreeFileで取得しよう
232 :
ヒッキー@プログラミング :01/11/15 02:04
233 :
デフォルトの名無しさん :01/11/15 02:54
気合がびしびし
ブロックの下に、おねーチャンのヌードってどうですか? 実装無茶苦茶簡単で、熱中度異常にアップします。 コストパフォーマンス最高です。 重要な部分?のブロックは、頑丈だとよいです。
235 :
デフォルトの名無しさん :01/11/15 03:58
結構作りが丁寧でちょと感動 やっぱ同じ作るにしても 他人に見られることを意識して作ると違うね~
貴様ら!はどうかと思うが、ほのぼのマターリとした進行で感動した! というわけで、漏れもスレに参加。 sin,cosを毎回計算するなって言ってる人いるけど、そんなの今の段階で言うべき 事じゃないと思うよ。だいたい今時のマシンで1フレームに1回程度のsin,cosの 計算なんか全く負担にならないし。むしろ、意味の無い最適化でソースが複雑に なることの弊害の方が大きいかと。あ、VBって知らないんで、VBのsin,cosが死ぬ ほど重かったらゴメソ。 パドルとボールの当たり判定だけど、ボールが画面下に動いているときだけ処理 するといいよ。そうすればめり込んだり、打ち返すまでに2回跳ねかえるような 事が無くなって良い感じ。 あと、壊れないブロックを作ると球が永遠に落ちてこなくなる事があるので注意。 ■■■■■ ■□ ■ ■ ■ ■ ■ ■■■ ■ こんな地形で(■は壊れないブロック。□は壊れるブロック)□の右側に45度で 当たるように打ち込むと無限ループ突入。 単純なブロック崩しなら、たまーにランダムで反射する方向が微妙にズレるように して回避するのが吉。名作アルカノイドでは敵キャラが無限ループ防止の役になっ てた(ランダムでズレる手法も使われてた気がするが)。
おもいっきりズレてて恥ずかしい。 操作系に関しては色々あるが、最近2chで流行りのワンキーにしちゃうってどお? ボタン押してると右に移動して、離してると左に移動。 少し慣性を加えておくのがミソ。
あと、タイトルを「貴様ら!ブロックを崩してください」にしたらどうかな?
いや、sin/cosを使わない事で DDAアリゴリズムになってていいよ たとえば、 1) y方向の速度vyを常に非常に小さな量加算する -->まるで重力があるかのように 2) vx = vx-vx*vx*vx/10000 みたいにすると空気抵抗に 3)特定のブロックに引力や反力を導入する とかね
引力の例 Private Sub gravitation(x0, y0, g) Dim L2 As Double Dim dx, dy As Long dy = ball_y - y0 dx = ball_x - x0 L2 = g / (dx * dx + dy * dy) vx = vx - dx * L2 vy = vy - dy * L2 End Sub 呼び出しは BallMove 手続き内で gravitation 100, 70, 0.3 みたいに
241 :
デフォルトの名無しさん :01/11/15 09:56
sub main のiniファイルにデフォルトのステージデータファイル名を 書き込むコード、あれも綺麗に書き直そう 連番ファイル名以外にも対応したいならば、リソースに ストリングテーブルとして書いておき、それを読み出す形にすべきだろう それにしてもこのへん、丁寧な設計思想で好感が持てる
242 :
ヒッキー@プログラミング :01/11/15 16:39
http://www.geocities.co.jp/SiliconValley/2530/ ↑次うぷしました。変更点は、
・画面効果の追加
です。
>>233 うおー。がんばります。
>>234 僕も考えているんですが、ネットに落ちてる画像勝手に使ったりしたら
まずくないかなーと思って考え中です。→
>>52 (藁
>>235 ありがとうございます。
やっぱ、一人で作ってるとあんまり見た目考えないですねー。
プログラム板のかたに見て頂けてうれしいです。
>>236 おぉ、ご意見ありがとうございます。
Sin・Cos関数を使う部分は1つにしてみてます。なんかVBの標準機能って
どうも遅い気がするので…。
2回跳ね返るとどうも動きに違和感がありますね。画面内の方向に
跳ね返るようにしました。
壊れないブロックって、そういう事も考えられるんですね。
そういえばアルカノイドって敵いてましたね。敵キャラがそんな役目も
果たしているとは…。ちゃんと考えられてるんですね。
ワンキーにしたら、熱中しそうですね(藁
考えてみます。
タイトルを「貴様ら!ブロックを崩してください」にしてみました。
>>239 おお、実用的な例をありがとうございます。
ボールに動きが出て面白そうですねー。
(ところでDDAとは何でしょうか…検索してみます。)
>>240 具体的なソースまで挙げて頂いて、ありがとうございます。
頭でイメージするのが難しいので、一回実験してみたいと思います。
>>241 そうですねー。あのままだと何かあるたびにiniファイルに書くコードを
考え直さないといけない気がします。
そういえばストリングテーブルってありましたね。調べてみます。
243 :
233-242だけ読んだ :01/11/15 17:11
スコアのつけ方をもう少し何とかしてほしい。 連続してブロック壊したらポイントが2倍とか ブロック壊せなかったら5ポイント減らすとか ずっと同じポイントだったら、意欲がうせる?
DDA=デジタル微分解析 で検索すると日本語サイトがヒットするよ・・・きっと・・たぶん
245 :
ヒッキー@プログラミング :01/11/15 22:54
246 :
ヒッキー@プログラミング :01/11/15 22:56
あ…バグありました。 直します…
直しました。 ゲームをストップさせてもコンボのカウントが動いてました。
最近見たどの映画よりもこのスレッドに感動しました。 私はこのスレを応援します。
> ball_x = ball_x + vx * (90 - Angle) / 90 > ball_y = ball_y + vy * Angle Angle という変数は何? このAngleさえなければ このball移動はDDAなのに惜しいね 進行方向の角度だけを変えたい場合は、 s= sin(PI()*Angle/180) c= cos(PI()*Angle/180) として wk=vx*c-vy*s vy=vy*c+vx*s vx=wk のようにするんだよ。 DDAなら色々とボールの動きに面白い加工が可能だから ぜひ修正してみるといいよ
>>249 それってDDAって言うの?
ただのベクトル演算にしか見えないが。
251 :
デフォルトの名無しさん :01/11/16 15:55
ね。DDA直線発生とはゼンゼン違う。
DDA使うと1単位の直線移動距離が傾きによって変わるので
素人にはお勧めできない、てゆかフレーム単位に描画する
リアルタイムゲームではお勧めできない。
この程度のプログラムで小数点演算を忌避する理由も特にないことだし
存分にベクトル演算してくれ。
それに
>>249 の書き方だと移動量は変わっても角度変数angleは変わらない。
2回目以降の反射のときはどうするんだろうか。
252 :
デフォルトの名無しさん :01/11/16 19:51
コピペ許可ねがいます
>>1 >>1 ----------------------------------
そんな事より4よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
昨日、近所の2ちゃん見に言ったんです。2ちゃん。
そしたらなんか人がめちゃくちゃいっぱいで座れないんです。
で、よく見たらなんか垂れ幕下がってて、「完成しない」に3万5000薬師丸ひろ子、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、「完成しない」如きで普段来てない2ちゃんに来てんじゃねーよ、ボケが。
「完成しない」だよ、「完成しない」。
なんか親子連れとかもいるし。一家4人で2ちゃんか。おめでてーな。
よーしパパ,完成しない
>>1 を煽っちゃうぞ~、とか言ってるの。もう見てらんない。
お前らな、うまいぼうやるから3万5000薬師丸ひろ子、調達しろと。
2ちゃんってのはな、もっと殺伐としてるべきなんだよ。
3万5000薬師丸ひろ子 をほしそうに見つめている奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。
女子どもは(除:3万5000薬師丸ひろ子)すっこんでろ。
で、やっと3万5000薬師丸ひろ子もらえたかと思ったら、隣の奴が、金玉なめて、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、「金玉なめて」なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、金玉なめて、だ。
お前は本当に金玉なめてもらいたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、金玉なめてって言いたいだけちゃうんかと。
2ちゃん通の俺から言わせてもらえば今、2ちゃん通の間での最新流行はやっぱり、
チンコはみらせる、これだね。
横ちんはみって勃起中。これが通の頼み方。
チンコはみらせるってのはパンツのよこからからチンコがもろに出ている。
そん代わり ウェイトレスが最高裁に訴えてくる(ニュー速に前スレたってた)。これ。
で、それに横ちん勃起中。これ最強。
しかしこれを頼むと次から3万5000薬師丸ひろ子にマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、自分のちんこをなめてなさいってこった。
(
http://8931.com/yosinoya.php3 で作成)
>それってDDAって言うの?
前半とは別の発言のつもり・・・
>>249 Angleを小さくして毎サンプルかければカーブを描けるけど
それならDDAかな
>>251 直線発生だけじゃなくても、浮動小数点演算でも
差分方程式ならDDAって言うと思うけどなあ・・・
254 :
デフォルトの名無しさん :01/11/16 19:57
>>252 面白かった。リンク先でいろいろやってみたり(藁
ニュー速たってたのはしってるけど、スレ倉庫にもないって。
9月ごろのスレだし、、、
1のレスが面白そう。
>吉野家コピペジェネレータ 作るなこんなもん~(爆笑) なんだかもう。
そんな事より
>>252 よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
昨日、近所の漏れのスレ覗いたんです。漏れのスレ。
そしたらなんか人がめちゃくちゃいっぱいで座れないんです。
で、よく見たらなんか吉野家コピペとか張ってあるんです。
もうね、アホかと。馬鹿かと。
お前らな、吉野家コピペ如きで普段来てない漏れのスレに来てんじゃねーよ、ボケが。
吉野家コピペだよ、吉野家コピペ。
なんか親子連れとかもいるし。一家4人で漏れのスレか。おめでてーな。
よーしパパもコピペ作っちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、ブロック崩しのソースやるからコピペやめろと。
漏れのスレってのはな、もっと殺伐としてるべきなんだよ。
熟練プログラマな奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと落ち着いたかと思ったら、隣の奴が、薬師丸ひろ子もらった、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、薬師丸ひろ子もらったなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、薬師丸ひろ子もらった、だ。
お前は本当に薬師丸ひろ子もらいたかったのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、薬師丸ひろ子もらったって言いたいだけちゃうんかと。
漏れのスレ通の俺から言わせてもらえば今、漏れのスレ通の間での最新流行はやっぱり、
Win32API、これだね。
VB、Win32API。これが通の頼み方。
Win32APIってのはWindows依存。そん代わり使いこなすとGUIバリバリ。これ。
で、それにVB、。これ最強。
しかしこれを頼むと次から熟練プログラマにマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、HTMLでも書いてなさいってこった。
257 :
デフォルトの名無しさん :01/11/16 20:32
>>256 普段からこのスレには来てたり<252
まぁ、行数が多いから面倒なんだよな。読むのも。
なんか俺って荒らしみたいだな。何行も貼りつけて。
なんとなく「ちゆ」見に行ったんです。
そしたら、>吉野家コピペジェネレータ
があったんですね。実験に使ってみたり(藁
1さん、頑張れ!俺もなんか作ってみるよ、最近疲れ気味だが
ひまだ氏。
258 :
デフォルトの名無しさん :01/11/16 20:34
>>256 あと今 HTML と CSS , JavaScript かいてた。
どうせド素人だから……ブツブツ
#ギコぺダウソしたてでちょっとウキウキ(藁
259 :
デフォルトの名無しさん :01/11/16 20:35
おめでとう0xff君! で、薬師丸ヒロミが・・・なにか?
>>257 ごめんなさい、煽るつもりはなかったんです。
吉野家コピペジェネレータが面白かったので…。
何か作られたらUPしてみせてください。
いや、長いのは読まない主義だったのに 読んで得したスレだ。いや、筆舌っぽいんでドーモ
>それに
>>249 の書き方だと移動量は変わっても角度変数angleは変わらない。
>2回目以降の反射のときはどうするんだろうか。
angleはソースを見た所、単にラケットの動きのバリエーションをつける為だから
反射した後に微調整したいだけだけじゃない?
VBにはAtnしかなくて C/Delphiにあるatan2が無いのでvx/vyから進行方向角度
に変換するのがメンドクサイんだけど
反射は既にやってるように vx,vyの符号を反転するだけでいいんだし
なお、angleを使わなくても ラケットの移動でコスレル雰囲気を出すなら
1)vxをラケットの進行方向に一定値加える
2) ラケットにぶつかったらw=±0.1 程度にして
if abs(w)>0.01 then
ax=vy*w
ay=vx*w
vx=vx-ax
vy=vy+ay
w=w*0.99
endif
みたいにするともっと簡単
ふつー、vx,vyから角度なんて求めないけどね。 角度を10度変えたいなら、直接vx,vyを10度回転させる。
ガノッサという264は、カノッサを間違えて覚えているに東京ドーム2杯分。
ステージデータをテキスト形式にして2chとかに貼り付けて 交換できるようにして欲しいに、4ガノッサ。
>>253 >直線発生だけじゃなくても、浮動小数点演算でも
>差分方程式ならDDAって言うと思うけどなあ・・・
DDAの最初のDが何を意味するか?
DDAがどういう要求から生まれたものか?
を考えれば、DDAは「実数演算を用いない」ことが
定義に含まれていると考えるのが自然
でなきゃ単なる微分解析じゃん
DDAは考え方としては、実数を分数で扱うような感じだな。 正直言うと、いまどきそんな考え方は必要無い。 (ラスタライザとか書くなら別だが)
なんとなくageとこう。
DDAは Bresenham の アルゴリズムで線・円描画で有名だけど
考え方としての応用範囲は広いよ。 差分解析だよね。
整数演算だけで実現出来るけど、無理に整数に拘る必要はないと思うよ
でもデジタル微分とか差分とか難しく考える必要はないよ
説明は x=f(t) を x=∫f'(t)t として f('t) を積分するだけ
tの多項式なら何度かこの変換をすれば定数になる
また2変数の多くは相互に参照すればt項が消せる
・・・・というのが理屈だけど、ゲームなんかだと理屈関係
なく自然に使ってるよね。
というか px,pyにvx,vyを毎回足すという処理が既にDDAだから
難しいというより 既に使ってるよ
>>270
ソース見た所、まだAngleを変な感じに使ってるね・・・反射が難しいのかな 反射 は 回転(カーブ)に似てるけど壁の角度をAngle 水平 Angle=0度 垂直 Angle=90度 とすると vx,vyに対して Private Sub reflect(Angle) Dim s, c s = Sin(PI * 2 * Angle) c = Cos(PI * 2 * Angle) x = vx: y = vy vx = c * x + s * y vy = -c * y + s * x End Sub となる 0度の時は c=1,s=0 になるから yだけ符号が反転 90度なら c=-1,s=0で xだけ符号反転 というのは既に使ってるよね。 これを一般化したのが上の式 だからラケット位置や動きの効果を反射で表現したいなら 水平との反射=0度でなく±45度の範囲で反射させればいい ラケットの左右のスミの場合は、スミ座標とボール中央と90度 の方向に反射させればいい
上で使ってる PI は 3.1415/180 という定義になってるからそれを使ってる でもPIは3.1415にして PiDegみたいな変数名の方がいいと思うな
ラケットのスミでの反射はatnを使って角度を求めてもいいけど スミ座標と玉の中心座標の差 dx,dyを使って直接s,cを求めてもいい 1、正規化 c=dx/sqr(dx*dx+dy*dy) : s=dy/sqr(dx*dx+dy*dy) 2、90度反転 これは s,cを入れ替えて片方の符号を反対に 3、2倍角 c'=c*c-s*s s'=2s*c と3つの手順で求まる でも、幸い ボールは上からしか来ないから dyは0にならないはずとして atn(dx/dy)*180/3.14 で角度求めた方が判り易くいていいと思うけどね
うーむむ 三角関数が判らないと というより行列がわからないとゲームも作れない雰囲気だな
うむ。吾輩などはむりやり型が好みだな。
でも、まあ、三角関数と行列ベクトルが判る程度に勉強はするべし
さらに微積分も必要かもな
いや、別にゲームだから中でどんな処理しようが動いてるなら問題ない と俺も思うよ。 でも、1はソースを公開してるし、習得も早いからさ、 つい、スタンダードというか普通はこうするってのを教えたくなったのさ 基本的なアイテムの動かし方を身に付けた方がいいだろって余計なお世話かもしれんけどな
数学関係の参考テキストも少しこのスレであげといた方が( ・∀・)イイ
283 :
デフォルトの名無しさん :01/11/17 14:05
なんかさ、ずーっとボールが同じ速度にするのではなくて 壁に当たったら少しずつ速度がUPみたいなほうが おもしろいとおもう。 実際、テトリヌなんか、ブロックの落ちる速度が速くなったりするしね。 # あんまりテストプレイさせてもらっていないから分からないけど…
制作中の人間に、あまり同ジャンルのゲームは見せないほうがいいと思うぞ。
287 :
デフォルトの名無しさん :01/11/17 15:06
>>286 スマソ。
パクリだ!なんて騒がれたら、1がかわいそう。
1さん、オリジナル な要素を含めてね(♥
ブロック崩し自体、既にパクリなので大丈夫です。
/* ここからコメント
>>260 煽るつもりはって言われても、
こっちもわざと書いてみたりしただけだし(藁 カメレススマソ
完成したらどっかにうぷしておきます。ただしURIは公開しません(藁
# なんとなく今暇だからアプリ作りつつ例の吉野家コピペ
# 作成ScriptをJavaScriptでかいてたり。
重力もいいね。なにかボールと反発するようなブロックとかも追加きぼん!
ボールが風か何かで吹き飛ばされるみたいなのとか。
みんながアイデア出すから、結構ゲームの発想の手間が省けてたり
してるんじゃないかと。
厨房のとき発想力の無さからあきらめたんだよね。折れ。
だからこそ応援しているぞ1!
ここまでコメント */
>>284 アルカノイドのつもりで敵にパドルぶつけたら、パドルが破壊された(笑
同ジャンルのゲームを見た方がいいかは微妙だね。
パクり以前にモチベーション下がるか上がるか・・・それは本人次第だけど。
俺なんかは、自分のアイディアが既出だったりすると萎えるタイプ。
最初このスレ見たとき俺もブロック崩し作ろうかと思ったけど、1が萎えそう
だからやめたよ。
292 :
デフォルトの名無しさん :01/11/17 23:54
けっこう面白いじゃん。みんな何点くらいいったよ? おれは7314点が最高。三面がクリアできない。。。
記録更新。5面までで16,258点
>>292 それは何?
インターネットランキングに対応しろと言うことかい・・・?(笑)
わざわざ落としてまでやる気無し
あれ?ステージエディタはテキスト化されてないの? 作って公開しようと思ったんだけど。
ときどきブルブルいいながらブロックにくっついて移動するね
age
299 :
デフォルトの名無しさん :01/11/18 18:35
ステージクリアした時の、ご褒美エロCGキボンヌ (´Д`;)ハアハア
いろいろみんな1を応援してるようだけど、 ソースまで載せて手ほどきするのはどうかと思うよ。 最初の頃のようにキーワードや概要だけを載せてあげたほうが、 1も試行錯誤するだろうし結果的に身に付けるスピードも速くなると思う。 まあ1が鵜呑みにせず自分なりに解釈して作り出すタイプ(根っからのプログラマ気質?) なら全然構わないんだけどさ。 頑張って欲しいね。
301 :
デフォルトの名無しさん :01/11/18 19:23
>>299 ステージクリアまで待てないよ・・・
ステージの背景に描いて頂戴!
302 :
デフォルトの名無しさん :01/11/18 20:09
>>300 そうは言っても、衝突や反射をちゃんと解説してるサイトってある?
26180てん!わ~い
つまんね~。ちょうくそげーじゃん。 もっとましなの作れよ。
http://www.geocities.co.jp/SiliconValley/2530/ ↑つぎうぷしました。変更点は
・マウスモードの追加
・残機を3に変更
・難易度の調整
です。
>>272 ほお、そうなんですか?既に使っていたとは(藁
理屈的にはムズカシそうですねー。ちゃんと理解できるようにします…。
>>273 ちょ、ちょっとまってください…理解するのに紙に書いてみないと
難しいです…正規化とはなんでしょう?ヘイホウコン使うんでしょうか。
もうちょっと頭使います。
>>277 お、ちょっと安心しました(w
ラケットがあたる位置で判定してたりするんですねー。
>>279 了解。頭に刻んでおきます。
>>280 ビブンセキですか。できるかな…。
>>281 おー、ありがとうございます。そういう意図があったんですね。感謝します。
>>283 一応、書いてはいたんですが、上がり方がしょぼかったようです。
難易度調整しました。
>>284 やってみました。ShockWaveって結構すごいですねー。
まだまだ負けてる…。敵っておもしろいので考えてみたいです。
>>289 ありがとうございます。1ガノッサ頂きます…ってガノッサって
おっさんだったんですね。
>>290 ご意見ありがとうございます。風とか吹いてもおもしろそうですね。
結局重力は今回、いれれませんでした…
更新age
>>291 自分のアイデアが既出だったらちょっと悲しいと思います。
ブロック崩し、2chの人も結構作ってるみたいで、ヒッキー崩しというのを
発見したんですが、(鬱打のページ)それもコンボ点とかありました…
VBでDirectXつかってるし。鬱氏
>>292 おぉ、感謝感謝。やってくださる人がいてると嬉しいです。
>>294 完成したらインターネットランキング作ってみたいと思います。
>>295 う…
>>296 一応テキスト化したんですが、拡張子がSTGになっています。
>>297 そうですねー。壊れないブロックにあたるとぶるぶるします。
今回は修正できませんでした…
>>299 エロ画像描いてくれる人キボンヌ
>>300 がんばりますー。
ソースは参考にさせていただいてます。…が、ちょっと難しいです(藁
>>303 僕は最高15000点くらいです。26000点…すごい。
>>304 ちゃんとゲームとして認識されるようになっただけでも嬉しいです。
最初はゲームどころではなかったので(w
308 :
デフォルトの名無しさん :01/11/19 09:58
ええと、やっぱりベクトル・行列を勉強した方がいいよ といっても、 ベクトルは単に複数の数をまとめて扱うというだけ 行例は、数式の係数をまとめて扱うというだけという理解でとりあえずスタート たとえば、玉の動きは x = x + speed * cos(angle) y = y + speed * sin(angle) これは正しい でも ball_x = ball_x + vx * (90 - Angle) ball_y = ball_y + vy * Angle こではダメっての説明してみるね。 前者は回転だけど、後者は、伸張になってしまう。 ○回転というのは vx*cos(w) - vy*sin(w) vx*sin(w) + vy*cos(w) という形になっている。これはひとつのスタイルだから覚える。 そして、掛算してるのは vx,vyと4つの係数だからそれぞれ |vx| |cos ,-sin| |vy| | sin , cos| と分離して考える。 左がベクトルで右側が行列だ で、元の格好に直す規則は・・・判るよね? ここまでいい? とにかく2つの数がこういう格好に並んでいれば回転だって事で ○反射は既にやってるように vx=vx vy=-vy という格好になっている これも分離すると |vx| | 1 , 0| |vy| | 0 ,-1| となる。 上の回転では角度がどうであれこの格好にならないの判るよね? 任意の角度で反射させるには回転を組み合わせればいい。 ただ、反射する時は反射面に対して倍角で反射するというのに注意 で、組み合わせる時は この反射を掛算した結果のベクトルは | vx| |-vy| となるなら、上の回転の vyを単に-vyにするだけでいい ○伸張 y軸が斜面で、斜めにあるのを上から見る場合は | 1 , 0| | 0 , a | というようになるよね? これが伸張さらに裏から見たら 上にある反射になる ○拡大/縮小 これは簡単で全体に | a , 0| | 0 , a | とaを掛算すればいい
>>309 気持ちはうれしいけど、その説明は
ちゃんと数学の本を手にして読まないと
わけわからんかと。
演算子法的立場からの解説って奴だね 遅延演算子も導入してさ 一挙に微積分飛び越してフーリエ・ラプラス変換の世界にご招待ってのは?
314 :
デフォルトの名無しさん :01/11/19 14:49
どうせ回転くらいにしか使わないなら、行列は回転後の座標系の単位ベクトルを 組み合わせたものと教えるのが一番分かりやすくていいんじゃないか? もっとも、ブロック崩しごときで行列を持ち出す必要ないと思うけど。 方向変えるなら、vxを適当にいじったあとに、√(vx*vx+vy*vy)がvxをいじる 前と同じになるようにするだけでも十分だよ。 例えばC言語で書くと v = sqrt(vx*vx+vy*vy); vx1 = vx / v; vy1 = vy / v; vx1 += (適当な値。例えばパドルのX座標-ボールのX座標など); v1 = sqrt(vx1*vx1+vy1*vy1); vx = (vx1 / v1) * v; vy = (vy1 / v1) * v; この程度で十分かと。
>>315 そりゃそれで、十分といえば十分。
だいたい、今のAnglleで傾斜させる方式でもゲームが今の状態で完成だとすれば十分。
実現方法は面白さとは何の関係もないしね
>>309 |vx| |cos ,-sin|
|vy| | sin , cos|
じゃなく
|cos ,-sin| . |vx|
| sin , cos| |vy|
てかいてよ
ブロックを全部壊した後、自機で球を受け止めてクリアにしてはどうだろうか。
Block00,9,000,032#Block01,9,016,016#Block02,9,032,000#Block03,9,216,032
Block04,9,200,016#Block05,9,184,000#Block06,9,024,008#Block07,9,008,024
Block08,9,192,008#Block09,9,208,024#Block10,9,048,080#Block11,9,056,088
Block12,9,064,096#Block13,9,072,104#Block14,9,168,080#Block15,9,160,088
Block16,9,152,096#Block17,9,144,104#Block18,3,088,040#Block19,3,128,040
Block20,3,128,056#Block21,3,088,056#Block22,3,088,072#Block23,3,128,072
Block24,3,088,024#Block25,3,128,024#Block26,9,096,136#Block27,9,120,136
Block28,3,192,128#Block29,3,024,128
-----
>>1 これでプレイしてみて。"#"は改行に置き換えて。
ブロックにくっつくバグが置きやすいよ。
要望ばかりでゴメン。 ステージファイルをパラメータに与えて起動するとそのステージだけ プレイできるとステージのテストプレイがやりやすいなぁと。
なぜ?
>>318 なんだそりゃ
マッピーで盗品全部集めた後に
開けたドアを全部閉めたらクリア
って言ってるのと同じだぞそれ
Block00,9,104,184#Block01,2,024,120#Block02,9,184,152#Block03,2,024,096
Block04,9,024,152#Block05,2,080,096#Block06,2,080,120#Block07,2,128,120
Block08,2,128,096#Block09,2,184,096#Block10,2,184,120#Block11,1,128,072
Block12,1,128,048#Block13,1,080,072#Block14,1,080,048#Block15,1,184,072
Block16,1,184,048#Block17,1,024,072#Block18,1,024,048#Block19,3,080,024
Block20,3,080,000#Block21,3,128,024#Block22,3,128,000#Block23,3,184,024
Block24,3,184,000#Block25,3,024,024#Block26,3,024,000#Block27,1,024,184
Block28,1,184,184#Block29,1,104,152
------
かなりバグります。球の速度に制限を設けた方がいいかもしれませんね。
>>321 なんとなく。ゲーム性があがらないかな?
>>323 マッピー知らんです。ゲームはあまりやらないもんでして。
要望は出すけど、組み込むかは
>>1 が判断してね。当たり前だけど。
とりあえず、ゲームのバランス調節等のアドバイス 基本は、難しいことをしたら見返りがあって、簡単なことをしたらペナルティ。 見返りってのはボーナス点が貰えるとか、ブロック崩しなら速度が遅くなるとか。 ペナルティはその逆。 とは言っても、必ずしもこれに従う必要は無いよ。 例えば同等の難易度の2種類の行為について、片方だけ点を高くしておくと 点を稼ぐにはそれだけを狙う必要があって、結果的に難易度の向上に繋がる。 クリアだけなら簡単、稼ごうとすると難しくなるようにようにするのが俺流。
>>320 iniファイルのステージファイル名を書き換えるのがいいと思われ
328 :
初心者さん :01/11/20 12:48
漏れも超級素人なんで見てておもしろい。
がんばってね。
>>1
329 :
コーダーさん :01/11/20 15:25
今更発見したが、いいスレだ。
>>1 俺は始めて作ったゲームっぽい作品はBio100%の戦艦シューティングもどき
だった。なつかしい。
最後までがむばれYO!
コンボボーナスの点数がカウントされないことがあるみたいだよ。 水平に近い弾道でブロック壊したら、 2Hitsって出たけど、ポイントが0から増えなかった。 うまく再現できないんで、もう少し試してみる。
なんか、自機の真中心で跳ね返したらブロックを突き抜けて
壊すみたいのがいいなぁ。
要望ばっかだが、
>>330 の 問題をぼくも確認してみます。
>>332 コメントかい。(誰かのレスにそんなかんじのが…パクリ?)
しかもコメントとじれてないし。
それより
>>1 のヒッキー@(略)
やってみたけど、結構おもしろかった。
ず~っと前のヴァより断然面白くなってるよ。
コンボ点&角度変化&玉の速度アップで。
vectorにでも、こういうゲームはうようよあるから、
頑張れ!
ごめんな。俺には1794点しか取れないよ(;´Д`)
>>308 ほお、高専の教科書ですかー。穴場的ですね。
普通の本屋で注文できるのかな…
>>309 おー、とてもよくわかりました。
回転の式はCGの本に載ってたので、1回画像の回転のプログラムを作るときに
使ったことがあります。そのときは行列の意味がよくわからなかったんですが(藁
反射は単に符号を反転させるだけで良いというのは分かるのですが、
ボールが早すぎる時に、反転しても画面に戻ってこなくなる事があったので、
ifをいれて、画面内の方向のみを向くようにしました。
伸張は…(y軸が斜面で、斜めにあるのを上から見る場合は)というのが
よく分かりません…。
>>312 高校の方のページ、なんか読めそうです。
分からないところ、全部読んでみようと思います。
>>313 わざわざいくつも探して頂いて申し訳ないです…
あとで、ウチのページでまとめて紹介したいと思います。
>>314 あの…エロ画像ならHDDにも入っています(w
でも、やっぱ使ったらまずいかなぁと
>>318 はは。そうですねー。おもしろいかも。
今の段階では、受け止めてクリアの表示を出してる間、
ボールが自機に埋まる or 変な位置にあるような気が
するので、ちょっと考えてみます。
>>319 やってみました。
うまりますね…。残像残ってるし。埋まらないように考えたいと思います。
わざわざ上げていただいて、サンクスです。
>>320 あー、たしかに。
いじってみようと思います。
>>324 今、実験的に速度の制限つけてみました。
直るかどうかはもうちょっと試験運転しないとわからないですが。
>>326 あー、そういうのおもしろいですねー。
ゲーセンでシューティングゲームやってると、そういう設定のが
結構ありますね。名作ほど微調整が細かかったり。
>>328 ういー。がんばりますよー。もうちょっと完成度あげたいです。
>>329 この前、Bio100%のページいきました。
戦艦のゲーム、以前にどっかでやった事あるような…(藁
>>330 実は水平に近いほど点が入らないようにしてあります。
テストしてると、10度くらいの角度にしたら、簡単にクリアできるし、
点もかなり入ってしまったので。
>>331 おぉ、そういう設定の仕方もあるんですねー。参考になります。
>>332 服がだんだん欠けていくゲームがイパーイありますね。
全部同じ様に見えるのは気のせいでしょうか。
>>333 どもども。ありがとうございます。
vectorですかー。一回、ゲームのところ覗いてみます。
>>334 今回のUPしたやつは前より難しいです。
僕もそんなに点が取れなくなりました…
この前、この板のスレ「シューティングゲームを作りたい!!」
http://pc.2ch.net/test/read.cgi/tech/990219336/ を読みました。
作ってみないと気付かないような所にワナがいっぱい潜んでるんですねー。
(3Dシューティングで、リプレイのデータが浮動小数点で
管理してるとずれてくるなど)
あと、雷電のレーザーはどうやって実現してるのか気になりました…。
それから、ひとつ疑問なんですが、ローカル変数とグローバル変数は
どういうときに使い分けたらいいんでしょう。全てグローバルでも
よさそうに感じるのですが…。
ローカルだと関数呼び出すたびにメモリを確保しないといけないと思うし、
関数に引数を使うときも、スタックに積んだりしてたら余計に遅くなったり
しないかなぁと、ふと疑問に思いました。
あぁ何か日本語がおかしかった。
>>337 グローバル変数はなるべく使わない方がいいよ。
理由は色々あるけど、一番恐いのはどこで変数の内容が破壊されるか分からない事。
以前、全てグローバル変数で組んでて原因不明のバグで悩んでる人の相談にのった
ときは、ループ用のカウンタをグローバル変数にしていて、ループの中で別の関数
を呼んでいるんだけど、その呼ばれた先でも同じ変数を使ってループしていた。
その関数呼ぶとループ用の変数が書き換えられるから、それが原因で無限ループに。
まぁ、この辺はグローバル変数でトラブってみないとピンとこないかもしれないが。
昔のBASICはグローバル変数しか無かったから苦労した。
ちなみに速度で言えば、ローカル変数の方が速いよ。
ローカル変数が使うメモリ領域ってのはスタックメモリって呼ばれていて、あら
かじめ決められたサイズで最初に確保してあるの。だから、メモリ確保に関する
コストはほとんど0に等しい。
(ちなみに通常のメモリはヒープと呼ばれていて、グローバル変数はヒープに
確保される)
ローカル変数の方が速い根拠だけど、1つはコンパイラの最適化がかかりやすいこと。
ローカル変数ってのはその関数を抜けたら消えてなくなるものだからメモリに値を
保存しておく必要が無いので、実際にはメモリを確保せずにCPUのレジスタを割り
当てる場合がある。レジスタはPCの中で最も高速にアクセスできるメモリ。
もう1つは、ローカル変数は関数に入った時点で順番に確保されるから、関数内で
使う変数がメモリの中で近い位置に確保されること。CPUのキャッシュは32バイト
単位でキャッシュしてるから、1つの変数にアクセスした際に他の変数もキャッシュ
に入る可能性が高くなる。
ローカル変数とグローバル変数に関しては、構造化プログラミングを勉強してみると
いいかも。いまどき構造化プログラミングなんて参考書無さそうだけど。
ちなみに、スタックメモリはコンパイル時にサイズが決まっていて、通常はあまり
大きくないのでローカル変数で巨大な配列とか使うとエラーが出るので注意。
グローバル変数ならヒープに確保されるので、20MBくらい使っても平気。
こういう事を疑問に思って、質問してみるってのは良い傾向だと思うよ。 (大事なのは聞いてみることより、むしろ疑問に思うこと)
せっかく VBには構造体があるから まず ボールを構造体にしよう ball_xとか vx とかを一つの構造体にまとめたら 関数呼び出しが楽だし ボールを2つにするのも簡単になる
>>339 >グローバル変数ならヒープに確保される
…ん?
>>342 間違っていないと思うけど。グローバル変数はプログラムの
開始から終了までずっと残っているものなので、ヒープ領域
に確保されると習った。
あと、ローカル変数でも static 宣言した変数はその関数が
終了しても値が残っていて、これもヒープに確保されると
習った。
間違っている?
初期値があるやつはdataセクションに入ると思われ。
>>346 いずれにせよ、ヒープに確保されるのは間違いって話では?
C の規格ではメモリの分類に関しては何も言ってないが、一般には
text プログラムのコード (サイズ固定)
bss 初期化されない変数 (サイズ固定)
data 初期化された変数 (サイズ固定)
stack 自動変数 (サイズ可変)
heap 動的に確保/解放されるメモリ (サイズ可変)
ぐらいに分けて管理してることが多いと思われ。Win32 だとヒープもプロセスヒープ以外に、プライベート
ヒープとか複数持てたり、スレッドが絡むとスタックも並行して複数存在することになるから、いろいろと
話がややこしいけど。
>>347 習ったって話なので一般論を習っただけでわ?
bss やら data ってのは環境依存というより実装依存だと思われ
>>348 とりあえずこういう用語は一般的に使われるし
覚えておいて損は無いでしょ。
得も無いかもしれんけどな。
>>347 漏れがC覚えたのZ80だったから、スタックとヒープしか無いような状態だったよ。
なんでそう言い張るんだ! ヒープはヒープ! alloc系の操作で確保する領域 普通の変数はそれとは別のセクションに取られる 領域は大まかにコード用の領域、グローバル/staticデータの領域、ヒープ用、スタック用と 4つに分割される。 一般的にはスタック用とヒープ用の領域は重なっていて、 スタックは下から ヒープは上から確保される 基本はZ80用でも構成は殆ど同じ 違いはROM用に定数用の領域があったりする程度
>>351 > スタックは下から ヒープは上から確保される
他は知らんが x86 は逆だな。
私のために、喧嘩はやめて~!
1がついて来れないから、そろそろやめにしないか?
下というのが 番地nからn+1,n+2と向かっていくのか 番地nからn-1、n-2と向かっていくのか分かりづらいですな。 上位って一般的に番地0のこと?
太陽のあるほうが上。 地面のあるほうが下。
big endianでは0番地が上 little endianでは0番地が下
ソース見てないけど、反射してボールの進路が変わったときに、その新しい進路で
当たり判定してる?
>>1
ほおほお、みなさん、ご意見ありがとうございます。
ヒープやBSSという単語を知らなかったので、勉強になりました。
メモリについて検索していたら、とても興味深い内容のページをハケーンしました↓
http://www-6.ibm.com/jp/developerworks/security/000721/j_smash.html メモリとはどういうものかというイメージが以前よりつかみやすくなりました。
>>339 グローバル変数は他のところで書き換えられる可能性があるんですねー。
そこまで頭が回りませんでした。ありがとうございます。
そういえばコンパイラが最適化してくれるような事がどこかに書いてありました。
registerってキーワードいれたら自分で調整する事もできるんですね。
(といってもどれをレジスタに入れたら早くなるのか検討がつきませんが…)
こういうのVBではどうなっているんだろう…
>>341 してみました。
でも、関数の割り振り方の問題からか、ボールを2個にするのが難しいです…
>>347 text、stackは想像がつくんですが、dataやbssの違いがよくわかりません。
>>354 検索してたら頭が割れそうになりました。
>>359 うーん、どういうことなのでしょうか。
2回目の判定ということですか?
このスレ見てたらVB始めたくなりました。
プログラムは初心者レベルなので初心者本買って
勉強してみたいと思いました。
頑張ってください
>>1 さん
超なにげにDeveloperWorksのリンクを引いてくるあたり、
やはり
>>1 はプロかセミプロで、このスレは壮大なネタなのではとか…思ってみたり…
ソースのコメントのつけ方とか………
Googleに「ヒープ BSS」を尋ねて見たら2個目にあったよ。 ネタでも実際ゲームが出来てるので、それを楽しんでます。 仕事の合間にちょうどいい。 最新版いい感じになったね。まだたまにすり抜けるけど。 前よりとても良くなった感じ。個人的には球が速すぎるけど。
366 :
デフォルトの名無しさん :01/11/22 17:10
>>364 VBが初めてであって、C++とか結構やってるんでしょう。
>ヒッキー
パドル?にあたる場所で反射角度を変えてほしい。
端にあたると鋭角に反射で、もう一回あたると鈍角に戻るとか。
367 :
デフォルトの名無しさん :01/11/22 17:22
つーか、まん丸いパドルにチャレンジキボーンヌ
http://www.geocities.co.jp/SiliconValley/2530/lifegame.zip ↑なんか、ライフゲームなるものをハケーンしたので、VBで作ってみました。
なんだかよく分からないけど、セルオートマトンらしいです。
>>362 おー、がんばってください。
なんか、嬉しいです。僕もがんばります。
>>363 ほおほお。他のファイルも見てみようと思います。
>>364 素人ですよ。
プロならもっと保守に便利なソースを組まれるんではないかと
妄想してみたり。僕のは設計も何もしてないのでぐちゃぐちゃです(藁
>>365 どもども。
自分でも球速すぎるんでは…と思います。でもクリアできない
くらいがいいかなぁと。
>>366 う~ん、それなんですけど、なんとなく取り入れてません。
球が当たる瞬間に、パドルが動いてる方向によってちょっとずつ
変える方式にしてます。
>>367 まん丸いあたり判定…どうしましょう。
シューティングのスレでは8角形で近似するとかいう意見が
書いてありましたねー。…といってもそれすらどうしたらいいのやら。
>>367 ほとんどのゲームは「コレ」じゃないから、
プログラム組むのは難しいけど、
おもしろいかと。
なぜ1さんはいつもさげるんだろう?
丸の方が簡単だよ
それぞれの中心座標と半径から (x0-x1)^2+(y0-y1)^2 < r0^2+r1^2
だけで衝突が判定出来るし
反発は
>>273 を atn( (x0-x1)/(y0-y1)) *180/3.1415 と角度を求めて呼び出せばいい
× (x0-x1)^2+(y0-y1)^2 < r0^2+r1^2 ○ (x0-x1)^2+(y0-y1)^2 < (r0+r1)^2 ○ sqr((x0-x1)^2+(y0-y1)^2) < (r0+r1)
反射したときに新しい進路で当たり判定するっていうのは、例えばボールが
左上に進んでいるとして
■■
■
このちょうど角の部分にボールが当たったときに、左か上のどちらかで反射の
処理をするよね?左のブロックで処理をしたとすると進路は右上になる。
この右上に進路が変わったときにもう一度判定をしないと、既に上のブロック
にも当たっているのに反射の処理をしないから、1回分だけ判定が遅れてブロッ
クの中にめり込む。もし上のブロックが壊れないブロックだった場合は、球が
ブロックの中に入ってしまうよ。
>>371 atnは使わない方がいいと思うよ。
反射後の速度はV'=V-2N(N・V)。
(Vは反射前の速度ベクトル、Nは正規化された球の法線ベクトル)
374 :
デフォルトの名無しさん :01/11/23 00:01
コントロールの変数名にはプレフィックスをつけるとよりソースが見やすくなるよ。 プレフィックスというのは変数の命名規約みたいなもので、 例えば、コマンドボタンなら必ず変数名の先頭にcmdをつけるとかそんな感じです MSDNのキーワードに "プレフィックス, コントロールの名前" と 入力すればM$が推奨しているプレフィックス名の一覧が出てくるはず。 1さんのソースで言えば、check1にはchkMouseModeとか、 timer1にはtmrCallMainLoopっていう感じかな。 check1とかcommand1とかは極力さけて、意味のある名前をつけた方がいいよ。
間違えてageチャタヨ... 激しく鬱駄。 内容も偉そうだし。すんまそん。
>>376 | |
| |
| |
| |
| \
| ∧_∧
// ( ´Д`)\ 1さん、もらった!
/ / | |
/ / / /
| | / /
\\((( )))/ / ガシッ
U( ;´Д`)U Σ
⊂ ._つ
人 Y
し'(_)
,-- 、 / ヽ . |:: | . |:: | . |:: | . |:: | . |:: | . |:: | . |:: | . |:: | ∧ ∧ |:::: | / ヽ ./ .ヽ |:: | / | / | | / `、 / ヽ |:: | / ̄ ̄| ̄ ̄ ./ ̄ ̄| ̄ ̄ | /:::  ̄ ̄ ̄ \ ノ: | . __|__ __|__ | l::::::::: .l / 丿 / | | | |:::::::::: -=・=- -=・=- | / / / .| | .|:::::::::::::: | ̄ ̄| | / / _/ ゝ─'  ̄ ̄ ̄ ̄ ̄ ・ ヽ:::::::::::: /__ヽ ノ / / 丶:::::::: ノ/ / /:::::::: / 捕まりました。 /::::::::: / /:::::::::: / /:::::::::: 丿 /::::::::::: | /:::::::: / | |:::: ∥ | |:: ∥ | | | | | | | | | ._ | | | |
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
||
>>1 を 。 Λ_Λ いいですね。
|| 捕まえなさい\ (゚ー゚*)
||________⊂⊂ |
∧ ∧ ∧ ∧ ∧ ∧ | ̄ ̄ ̄ ̄|
( ∧ ∧ ( ∧ ∧ ( ∧ ∧ | |
~(_( ∧ ∧ __( ∧ ∧__( ∧ ∧ ̄ ̄ ̄
~(_( ∧ ∧_( ∧ ∧_( ∧ ∧ は~い、先生。
~(_( ,,)~(_( ,,)~(_( ,,)
~(___ノ ~(___ノ ~(___ノ
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ | VB使いの1はダメ人間よ! | | 人のCを見てC言語信者になるの! | \______ _________/ ∨ ____ ___,――――一´ ̄ ̄ ̄ 7 | | ̄ ̄ 月 | | C言語以外は全て敵 31 | | 皆はお前のソースを笑ってる 日 | | ∧∧ 。 (月) | | (゚ー゚* )/ 日直 | |__ し∀つ ギ し|  ̄ ̄ ̄|ψ|――、____ コ ぃ| /____|  ̄ ̄ ̄ ̄ ∪∪
__________
______
|||| |||| ||||
||||/| |∧|||| / ̄ ̄ ̄ ̄ ̄ ̄
||Φ|(゚|-|゚;)|Φ|| < ぐすん。。。
|||| |||| |||| \______
 ̄ ̄ ̄ ̄ ̄ ̄
__________
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
(゚Д゚;)ノ <
>>1 さん、しぃを監禁しましたっ!
(| | \_______
~| |
∪∪
383 :
デフォルトの名無しさん :01/11/23 18:54
あげ。
おれあんまりVBは強くないけど、がんばってくる。
>>1 しーってどんなキャラかわからんかったから、
適当に編集しちゃった。しぃファンの方、スマソ。
このスレいい!
なあおい、アイコンを自由に変更できるツールおくれ。。。
386 :
デフォルトの名無しさん :01/11/24 01:53
>>386 まさかWINDOWSのアイコンじゃないだろうな?
>>386 そうだけど、開発はBCC32だから、
作成のしかたでも教えておくれ。
おそらく、どっからどこまでをアイコンデータとして登録してるのか
しらないから。
リソースファイル作るだけじゃないの?
ここは質問スレではありません。
>>391 でた、ゴミ出す曜日以外の日に、ゴミ出し監視おばちゃん!
>>392 でた、朝起きれねえで部屋ゴミだらけなやつ!
どっちも他のスレでやってくれ。
>>1 に迷惑かけるな。
パドルと玉の摩擦で玉にスピンがかかるようにして スピンがかかっているとカーブだ!ブロックに当たって 反射するときも変化するぞ! ・・・・・・・・・・とか パドルを高速に移動させると ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡ ズザーーーーーッ のアニメーションに変化だ! ・・・・・・・・・・とか ごめん、逝ってきます
397 :
デフォルトの名無しさん :01/11/24 08:48
スピンとか重力とか空気抵抗やるなら とにかくまず Angle の変な使い方を止めろ
399 :
デフォルトの名無しさん :01/11/24 10:51
スピンはいいかもしれないけど、ボールの速さとか考えると、 逝って良し難易度だな。
重力いれたらブロック崩しじゃないよ。サーカス。 サーカスのリメイクはタイトーのプランプポップが良かったな。
>>400 MS-DOS(98)の名作。
ぶろっくでぽん♪も忘れないでほしい。
昨日は体調悪くて死んでおりました。 ティムの右上辺りが腫れているので脱腸かもしれません(w しばらくしたらレスします…。
404 :
デフォルトの名無しさん :01/11/24 14:00
___________...∩ _______──────────
───────────[二]─────── ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ̄/
| | _ / /
___/三三)____ \\ / ./
__/ _ヽ. \\ /
/′ === ((_) 丶─┬───────" \\ /
/ ̄// ̄ ̄| | ̄ ̄ ̄ ̄|________| モナー救急 ○<
イ // ||[ ̄ ̄] | | γ──────ヽ \\
/ 人_/|ヽ──| .|  ̄ ̄ | __ _|./ \ \\
( - | / |____| (__\ ./ ̄ ̄  ̄ ̄ \\
ゝ_  ̄ ̄ ___/  ̄
 ̄ ̄ヽ ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄||
ヽ二二二二二二二二二二二二二
Λ_Λ
( ;´∀`) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( つ <
>>1 さん、病院へ……
| | | \___________
(__)_)
>>377 =
>>379-381 =
>>382 =
>>404
⑩ ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 ミ彡 (⊃)))) ミ彡 \\ ミ彡 ヽヽ ミ彡 ∧∧ | | < 1さん待ってて~! ミ彡 (´Д`)丿丿 今うまい棒買ってくるから~ ミ彡 /⌒ ( _ミ彡_∠/⌒ヽ ① ヽ / ミ彡 \ \ 命 ) / ミ彡 /\_) ) /\ \/つ < 全財産ダスヨ~ ¥940 ///// // \ ノ し'し'し'し’ ( ( し 3 3 3
406 :
デフォルトの名無しさん :01/11/24 14:06
|| >
|| ∧ ∧ <
|| ~′ ̄ ̄( ゚Д゚) > / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|| UU ̄ ̄ U U < >・) <
>>405 のお金にぶつかってヘリ落ちたモナー
|| > ( 彡 \__________________
|| < √ ゞ((○
|厂 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|| |
>>1 を救助するモナー |
|| |____ ___|
|| \/
|| Λ_Λ
|| ( ´∀`)
~~~~~~ || ~~~~~~~~~~~( つ~~~~~~~~~~~
~~~~~~ || ~~~~~~~~~~~| | | ~~~~~~~~~~~~
~______□____________(__)_)___~~~~~~~~~~
~〇 | \ )~~~~~~~~~~
~\〇 ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄)~~~~~~~~~~
~~\〇 ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄)~~~~~~~~~~
~~~\〇 ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)~~~~~~~~~~
~~~~\〇 ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)~~~~~~~~~~
~~~~~\〇 ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)~~~~~~~~~~
~~~~~~( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)~~~~~~~~~~
~~~~~  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`~~~~~~~~
>>377 =
>>379-381 =
>>382 =
>>404 =
>>406
408 :
デフォルトの名無しさん :01/11/24 14:07
AAばっかだ・・・鬱だ。 1よ元気になれ。俺はおまえは有望だとみこんだ(藁 寄付金だ↓ ┏━━━━━━━━━━━┓ ┃100モナ / ̄\ Λ冂Λ .┃ ┃ | |( ´∀` )o ┃ ┃ \_/ (∪ φ) ┃ ┗━━━━━━━━━━━┛
俺の予想。
ギコぺを使っていると見られる。
だってギコぺデータ使いすぎ。
>>377
Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ゚∀`) < 看病に来ました~。 ┌∪┐ )つ \________ └─┘ ヽ 〃(__人__ノ
1はタマ取って田中の仲間入りですか?
なんかネタスレみたいになってきたけど、、、 1はPCのやりすぎだったりしてな。
414 :
デフォルトの名無しさん :01/11/24 19:41
402 名前: ヒッキー@プログラミング sage投稿日:01/11/24 11:17 昨日は体調悪くて死んでおりました。 ティムの右上辺りが腫れているので脱腸かもしれません(w ティムの ティムの ティムの ティムの ティムの ティムの ティムの!!!!
415 :
デフォルトの名無しさん :01/11/25 03:53
■■■■■ ■ □ ■ ■ ■ ■ ■ ■■■■■
416 :
デフォルトの名無しさん :01/11/25 13:58
417 :
デフォルトの名無しさん :01/11/25 13:58
1さぁぁぁあん♥(藁
419 :
デフォルトの名無しさん :01/11/25 15:07
>>1 体気ぃつけぃやぁ。
さっそく、ソース覗いてみるは(藁
>>371 う~ん…ムズカシイです…。
atnって、タンジェントの逆の計算なんですね。
ってまだ難しくて理解できません…。なぜそうなるんだろう。
>>373 角、ちゃんと上も横も判定するようにしました。
elseifでかいていたので、どちらかになっていたみたいです。
正規化と法線ベクトルとは…?調べてみます。
>>374 そうですねー。
VBの本見てみたら書いてありました。ちゃんと名前付けたほうがいいですよね。
>>382 AA、なごませていただきました(藁
実はリアルモナーも八頭身も好きです。美の追求とか。
バグハッケソ、よろしくお願いしますー。
>>385 既存のファイルのアイコンを変更できるツールでしょうか。
うーん、リソースってどうやって入れ替えるんだろう…。
>>396 う…難しい…(w
でも、おもしろそうです。斬新なアイデアですねー。
>>398 直してみました…。
>>399 たしかに。ゲームとして難しくなるかも。
>>400 サーカスですかー。どんなゲームでしょうか。
サーカスチャーリーとかいうやつとは別物?
>>401 98ですかー。数年前にエロゲーをよくやりました。
>>377 =
>>379-381 =
>>382 =
>>404 =
>>406 はは。AA(・∀・)イイ
>>408 どもです。
100モナって…円じゃないのかー。
>>411 どもども。すんまそん
>>412 ,――、 ,――、
/ ヽ |
| _.ム ノ
\/ ̄  ̄ ̄\
/ ,-―――-ヽ
/ / / \ |
| / ,(・) (・) |
| | __ ● __ |
| | =__= | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ヽ /__// < んなわけねーだろ
/| \ /\ \______________
>>413 やりすぎかも…。
肩がこってしまいました。
>>417 ぐはぁ
>>419 おー、ありがとうございます。
だんだん読みにくくなってきました…。
ちゃんと設計しないとダメですね。
423 :
デフォルトの名無しさん :01/11/26 19:56
スレの成長が止まってきたね・・・ …あっ!レポート提出期限明日だったっ、
424 :
デフォルトの名無しさん :01/11/26 21:44
1ってセンス良すぎ。 いや、プログラミングもなんだけど、 このレスがなんとも・・・
425 :
デフォルトの名無しさん :01/11/26 21:57
>>424 なぁ。
結構初気の頃からここいるけど、1センスいいよなぁ。
>>420 今迄出来るだけ見てたけど、 さすがに限界。
というかVBだとこの規模になってくると 見るのが限界になるんだよね。
ノートパットで編集出来る付近がさ
そろそろオブジェクト指向な言語に移ってみたらどう?
手近な所でDelphiとかさ
Delphiやるくらいなら、Javaのほうがいいかと。
428 :
デフォルトの名無しさん :01/11/26 23:06
>>427 > Delphiやるくらいなら、Javaのほうがいいかと。
Java って使ったことないけど、ゲーム中に GC かかっても大丈夫 ?
>>428 そもそも Win32 みたいなマルチタスク OS 使ってる時点で、
- メモリ管理(スワッピング/ページング)
- タスク管理(他のタスクとの CPU 時間共有)
などを行ってるわけだし。Java に移行したからといって、大差ないよ。
ただ Java だと描画が遅いから、ゲームには向かんと思う。
>>1 は Win32 API 使い始めたところ
に見えるから、ここで C か C++ に行っても良いんじゃないの。Win32 API プログラミングは本気
でやると面倒だけど、ゲームなら
- バックバッファに全部書いて、WM_PAINT を投げる
- WM_PAINT を受け取ったら、バックバッファをウィンドウにコピー
程度のフレームワークで十分だから、それほど覚えることは多くない。
>>430 丸いね・・・下の、なんていうだ、あれが。
うむ
頑張ってるねぇ
>>1 とりあえず、僕もC++でブロック崩し 作ってみようかな。
とか思っちゃったよ。
低レベルなのでも作ったら 欲しい?
あー、JavaのGCは大丈夫じゃないです。 挙動が予測可能な通常のマルチタスクOSのメモリ管理やタスク管理とは まったく訳がちがいます。 Java 1.2から1.3、1.3から1.4に入れ替えただけで 今までに作ったほとんどのゲームのGC引っかかりポイントが変わったのには もうぶち切れ。
自分でときどき都合いいときにgcを呼んどけばいいんじゃない?
なんでもいいから やってみたら? 今くらいのレベルまで行ったら次の言語に移るの繰り返せば 本人の勉強にもなるし 見てる方も面白いからさ
別に言語を移る必要はないと思うが。 まだまだ全然VBの限界って訳じゃないし、現時点で重いわけでもないし。
>>437 VB を「限界」まで使うのは、個人的にはお奨めしないけど。(ねぇ)
コードを読んでみたけど、まだ VB でも行ける範囲だとは思う。ただ、そろそろ行き当たりばったりでソースを
拡張するのは辛くなってきてるのは確かだな。
いや、VBの限界ってのじゃなくて、 ギャラリー側からは気軽に見るのがツライサイズって事ね 作者側からはまだ頑張れるサイズだと思うよ。 それに、目標は本人のスキルアップにあると思うから 他の言語も触ってみるのも大事かと VBonlyでこれ以上慣れると弊害もあるだろうし 個人的には VBからならDelphiを経由してJava そしてC/C++ というふうなステップがいい感じじゃないかと思うんだけど、どう?
DelphiとJavaは経由しなくていいと思うけど。 Cでプログラムの低レベルな部分を学んだほうがいいと思う。 DelphiとJavaはその後でいいんでないの? 低レベルな部分を知らないで、DelphiやったってVBを続けるの とほぼ一緒だろうし。Javaは別の利点があるけどね。
VB 1はもう入門段階は卒業証書を発行してあげていいレベル Delphi 少し厳し目の文法でVBでユルユルになった感覚を正す またオブジェクト指向的スタイルへの誘いにふれ ボールやアイテムをコンポーネント化してみよう Java Freeしなくていい気楽さと Cスタイルの気楽さを楽しみながら ポトペタじゃないスタイルへの入門 C/C++ Windowsのメッセージ駆動な仕掛けに苦しみながらも ローレベル処理をシコシコ書く楽しみに触れる
俺はプログラマとして最低のレベルってのが、思った物は何でも作れることだと 思うが、1はまだそこまで行ってないかと。 だから他の言語を覚えるのはそこまで達してからの方がいいかと。 新しい言語を覚えるにはまず文法を覚えなきゃいかんが、文法ってのはいくら 覚えてもプログラミング技術は全く進歩しないから、文法を覚えるまでの期間は プログラマとしての進歩は無いよ。 大学や専門学校での初等教育では文法を覚える事=上達のような教え方だが、 正直言って文法を覚えた時点でやっとスタートラインに立てたという程度。 プログラミングの本質はアルゴリズムとデータ構造で、プログラミング言語って のはそれを具現化する道具でしかない。 もちろん文法の制限によって学ぶことが不可能または著しく困難な概念もあるが、 新しい概念を学ぶよりも制限された機能の中で目的を達成する考え方を学ぶ方が 重要だと思うよ。 とりあえず1はそろそろ、ボールを2つ以上動かすことを考えてみては? あと、どうしたらソースが見やすくなるかを考えてみるといいかと。 他の人のソースがあれば、それを見てみるのもいいかも。
他の言語に移るのは
>>1 の判断でよいでしょ。
>>1 がVBに限界を感じたら移れば良いだけ。
限界を感じなければ
>>1 はその程度の器ってこと。
まぁ、仕事なら適材適所で言語を選ぶんだけど、趣味だからあま
り外野がアドバイス以上の口出しをしてはいけないな・・・。
>>1 参考程度にな。
8等身。とりあえず
>>1 が発言しやすいように
いったんお茶を濁してくれ。
/ ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
./ / |
>>1 さん
/ / \ / ̄ ̄ ̄
/ /  ̄|/ ̄ ̄ ̄ ̄| ご自愛を
./ /_Λ , -つ \
/ / ´Д`) ./__ノ  ̄∨ ̄ ̄ ̄ ̄
/ \ / / ⊂_ヽ、
.| へ/ / .\\ Λ_Λ
| レ' /、二つ \ ( ´Д`)
| /. . > ⌒ヽ
/ / / へ \
/ / / / \\
/ / レ ノ ヽ_つ
/ ノ / /
_/ / / /|
ノ / ( ( 、
⊂ -' | |、 \
. | / \ ⌒l
| | ) /
ノ ) し'
(_/
446 :
コーダーさん :01/11/28 11:21
>>1 ブロック崩し、イイ感じになってきたねぇ。
ちなみにおいらの言語歴、参考になればシアワセ。
QBasic
PC-DOS6.2に付属のやつでシコシコ入門編。ワイヤーフレームの3D迷路
を作る。インベーダーゲームとか。
VisualBasic1.0
Windows3.1でプログラミング開始。ラウンチャーを作る。サンプルに
付属のBitBltのスプライトに夢中になる。
Delphi3.0
BASIC系に無い言語仕様にビックリする。とりあえずAPIとか勉強する。
Bio100%の戦艦ゲームもどきを作る。ちなみにグラフィックはドット打ち
したプリンスオブペルシャの王子様。
VisualC++5.0
MFCのブラックボックスが嫌いでSDKで始める。DIBの存在を認知、そして
夢中になる。
以後○○コーダーになる。今考えればDelphiはすっとばしてもよかった
かな。
>>442 個人的には「思ったものは何でも作れる」ってのはプログラマとしてのゴール(頂点)だと思うんだが…
ゴール?それはピザよりも美味しいのかい?
>>446 ○○コーダーっつって、どうせデモコーダーって言うんだろ。
デモコーダー=妄想上級者
このスレは現実主義。よって君はスレ違い。さよなら。
>>435 やってみりゃ分かるけど、System.gc()はまったく解決策になりません。
オナニスレはわかるがオナニレスはやめれ。
ちょっとVC始めてみました。
MFCが相変わらずよくわかりません…。
CStringクラスとCTimeクラスというものをハケーンしました。
んで、MessageBoxで時間を出したりしました…。ムナシイ。
やっぱ自分でウインドウ作るところからやろうかなー。
VBで、ウインドウをグラフィカルに設計できるツールつくろうかと。
…ってそれを極めていったら一人MFCになるのか…鬱氏
>>423 リファレンスを読んだりしてたら、
ブロック崩しを作ることがおろそかになってきました。
>>424-425 ありがとうございます。
よくマニアックな人を呼び寄せるオーラがあると自分で感じます。
>>426 そうですねー。
もうちょっと見やすさについて模索してみたいと思います。
Delphiは…新たに文法を覚えるのに時間がかかりそうです。
>>427 Java、やってみようと思うんですが、WinXPでサポートされなく
なったりすると聞いたんで、考え中です。
>>429 ほおほお。参考になります。
WM_PAINTとか、メッセージ(?)がイパーイありますねー…
覚えきれるのだろうか。
>>430 やりました。
ものすごいですね。感動。3Dオブジェクトが(・∀・)イイ
>>432 おー、欲しいです。
できればソースも…。
MFCはまだ早くねえかい? 俺はWindowsAPIを学んだ方がとっつき易いと思う。
>>433 やってみました。
付属のGBエミュがなんとも味があってよかったです。
ハードの限界をうまく生かしたつくりというか、
率直に言えば、視点がすごいですね。
>>434 GCについて検索してみました。
バージョンによって採用するアルゴリズムを変えているんでしょうか。
低レベル的な処理をあまり知らない僕的には、GC使わなくても、
毎回開放するソースを書いた方がいいんじゃないかと思うんですが。
うーん、そうするとJavaっぽさが減るのかな。
>>436 ういー。いろいろ手を出そうとしています。
昨日、Wave鳴らす処理書いてるときに、自分で波形作りたいなーと
思いまして、WaveOutOpenなどしてみようと思ったんですが、
なぜかうまくいきませんでした(藁
>>437 開発環境、Pen3なのですが、MMX200のノーパソでやったところ、
ガクガクしてました。早くしてみたいなぁという欲求はあります。
>>438 たしかにソースの拡張がしんどくなってきました。
ちゃんとした設計というのをやったことがないので、どのような
仕様書があれば混乱せずにまとめられるのかが分かりません…。
次は自分で理解できる範囲で文書化してから作ろうかと。
>>439 Delphiで書かれたものをよく見かけるし、興味があります。
でもJavaならCっぽいし、そちら方面へ行こうかと。
>>440 Cはポインタあたりで詰まりそうになりましたが、(藁
情報処理2種受ける時に勉強したので読むことはできます。
本を見ながら、リスト・木構造など作りましたが、
頭が割れそうになりました。
>>441 ほおほお。参考になります。
やっぱC使いたいなぁ…。C++は分かりにくいので好きじゃないですが。
>>442 たしかに。
なんでも作れるという気構えが無いと、もし仕事するなら、
やっていけないでしょうしね。
プログラムはアルゴリズムの方が重要だというのを最近理解できました。
今までは文法覚えた(というか、マニュアルが引けるようになった)だけで
いい気になってました。
ボール2個にするときに、今までのソースを壊してしまうんではないかと
ちょっと戸惑っているところがあります。zipで保存してるから
大丈夫なんですけど、自分で具体的に想像できない部分は弱気になります…。
>>443 今は趣味でプログラムをしていますが、何かの分野で、実用的なソースが
書けるようになったら、プログラムをしている方々に貢献できたらいいなぁと
思っています。
>>444 どもども。
>>445 八頭身…動きが…(藁
ご自愛が多すぎるので困っています。
>>446 あー、QBasicってWin95に入ってましたねー。
といってもUSモード専用でしたっけ?
VB1.0…なんか1.0っていうとものすごく古く感じます。
そういえばDIBって普通のBitmapと違いがあるんでしょうか。早いとか?
プリンスオブペルシャって…シビアな設定のやつですか?
>>447 思ったものを何でも作れるようになりたいです。
すぐに作れる、というより、何でも作ってしまえる自信を付けろ
ということを、おっしゃってるんではないかと勝手に解釈しています。
>>448 NHKの外国のホームドラマを思い出しました。場外から笑い声が…
>>449 デモってメガデモっていうやつですか?
>>451 あっぁっぁっぁ…
>>453 がんばってAPIを使いこなせるようになります。
まず、プロセス・スレッド・パイプなど謎の単語を理解しようと思います…。
あー、コンピュータ用語はムズカシイ。
>>1 って今気がついたんだけど、ほんとにヒッキーなんだね・・・
15時に書きこむって…
# 折れもだけど、テスト2日前だから、結構早く帰ってこれる(藁
いきなりMFCは止めておいた方が良いと思う。 WinAPIなら「猫でもわかるプログラミング」あたりがお勧め。 折れもヒッキーなので応援してます(藁
そろそろ、ベタベタにグローバル変数を使うのをやめて、少しデータをまとめないか? 今のままだと、 コードを増やすにつれてメンテナンスが厳しくなる。 それと tmp1 とか Form1 みたいな名前は、真面目に付け直したほうがいい。良いソースコードという のは、詳細を追わなくても字面を見るだけで処理内容が分かるぐらいに、名前の選び方に注意を払っ てるよ。
ボールを2個以上にするなら、ボールの変数を構造体の配列にまとめて、ボールが 生きてるか死んでるかのフラグを構造体に追加。 ボールの処理しているところをループにして、全ての生きているボールに対して 処理するようにする。 これが一番簡単だと思うよ。ミスの判定は、生きているボールの数を表す変数を 用意するか、ボールを落としたときに全てのボールが死んでるかをチェック等。 何をしたらボールが増えるかってのはゲーム性に関わってくるので簡単には決め れないが、システム的に一番簡単なのはいつでも次のボールを打てるようにして しまうのかな。いつでも左クリックで球発射。でも残機が減るとか。その代わり 得点2倍みたいな。
いつでも自由に発射できるようにした場合は、以前あった案のキャッチして 面クリアが良さそうだね。キャッチできなかった球はロスト。
>>457 本当にヒッキーですよ。
寝て起きてプログラム書いて本読んでの繰り返しです。
大学生ですか?
>>458 MFC、やめようと思ってきました(藁
APIは、本のマニュアルがあるのでなんとかなりそうです。
「猫でもわかるプログラミング」ですかー。ちょっと探してみます。
>>459 ほおほお。なんか硬派っぽい本ですねー。
本屋に逝った時に探してみようと思います。
>>460 自分でもちょっと感じてきてました…。
とりあえず、コントロールの名前をちゃんとつけました。
どの変数をローカルにしたらいいか考え中です。
グローバルのままの方が楽に感じるので、選別が難しいです。
>>461-462 おー、そういう処理の仕方があるんですね。参考になります。
フラグもたせれば処理しやすいですね。
2個以上が同時に出るとなると、ゲーム的には最後にキャッチ
する方がたしかに楽しいかも。
ゲーム性についても、いろいろ考えるようにします。
>>455 > ご自愛が多すぎるので困っています。
ご自愛は週に3度までにしとけ。
465 :
デフォルトの名無しさん :01/11/29 15:51
>>463 >大学生?
じゃないよ、そんなにおとなじゃない(藁。
中坊だから。いまちょこっとずつ僕も勉強中(プログラムとテスト勉強)
最近、ちょっと悩んでいる事があります。
あんまり考えるべきことではないかも知れませんが、
どの程度まで内部を把握してプログラムすべきかということです。
VBでも、速さを犠牲にする事を覚悟で、ある程度のCPU以上のもの
限定で作れば、物事を実現する為には簡単だと思うんです。
たとえコンピュータ内部を把握しなくても、実現できればいいんでは
ないかと。(僕は内部をつきつめたい方ですが。)
マクロメディアのディレクターとかでも、言語的は非常に限られていて、
凝ったアプリケーションを表現するには難しいかもしれませんが、
目的はもっと簡単に実現できると思うんです。
何が言いたいかといいますと、どこのレベルで自分で満足を得れるか
という事と、仕事としてはコンピュータをどの程度、低レベルな段階にまで
知ればいいのかということです。
C++にハマって、オブジェクトを組み立てるような感覚でプログラムする
のは非常にプログラムをするユーザとしてはありがたいですが、
機械語レベルでのオーバヘッドは勉強しないとわかりません。
また、機械語まで分解しないと気がすまない性分の人もいらっしゃるかと
思います。
僕は今はC++がわかればそれで満足を得られそうですが、もし、C++をマスター
する段階までいけたら、機械語を勉強せねば…とか思うかもしれないです。
それって、
>>442 さんのおっしゃる通り、アルゴリズムとは全く関係ない気が
するんですね。新たな言語を勉強していくだけで一生が終ってしまうような…。
ひとつの物事に執着して、殻にこもるのはカッコ悪いと感じますが、
言語をひとつに決めないとアルゴリズムを勉強できないのではないかと。
それからVBのような環境依存言語は、言語を覚えるという手間をヒトに
かけさせる時点でダメなような気がします。
あとCも、環境によって関数の名前が変わったり、(ライブラリを作る人が
違うというか、そのヒトが関数名に著作権的なものを感じさせているというか)
結局どれをやればいいのか思いつきません。
結論としては、僕的にはコンピュータを内部まで知らなくても、1回ソースを
書いたら全ての環境で全く同じソースがコンパイルできるようになったら
いいなと思います。
新たな言語に自分の環境をあわせる事に対する姿勢はどのような感じで
いけばいいのでしょうか。また、今までどうされて来ましたか?
仕事が今までどうりにこなせない不満などあると思うのですが。
せっかく書いたのでage
なんかフリと結論が違うような書き方になってしまった…鬱駄
>>464 もっとしてるかも(藁
>>465 おー、中学生ですか。2chに来てると病みますよ。
テストは、数学をきっちりマスターするまで勉強した方がいいと思います。
他の勉強も、ゲームなどプログラムするときの糧となりますので、
おろそかにせずに、適当にかじる事をお勧めします。
やー、そんな早くからやってるとは。恐れ入ります。
>>466 > ひとつの物事に執着して、殻にこもるのはカッコ悪いと感じますが、
> 言語をひとつに決めないとアルゴリズムを勉強できないのではないかと。
大丈夫。最初の言語を覚えるのは苦労するけど、二番目は楽、三番目はもっと楽になるから。
469 :
デフォルトの名無しさん :01/11/29 16:01
>>467 かじってるていわれてもまだまだ(汗
三角関数とか独学で勉強中。
1さんって高校?大学?それ以上?
ひそかにマターリスレ?
MFCはAPIを理解してないと混乱する事請け合いです。
と言うより、ウィンドウメッセージ関連でしょうか。
クラスですから、C++も解っていた方がより楽ですし。
「猫でもわかる~」はC/C++の入門にも良いです。
ここのおかげで本が不要(藁
http://www.kumei.ne.jp/c_lang/
473 :
デフォルトの名無しさん :01/11/29 16:58
matlab教えて
474 :
デフォルトの名無しさん :01/11/29 18:10
>>470 三角比は外国は中学校でちょこっとやるらしい。
VBが案だけできたらCも余裕でいけるんじゃない?
>>468 >大丈夫。最初の言語を覚えるのは苦労するけど、二番目は楽、三番目はもっと楽になるから。
そうだね。リュウを使えるようになるのに凄く苦労したけど春麗、ダルシムと加速度的に覚える
のが早くなり、一通り全キャラやった後にリュウに戻ると勝手にうまくなってるものだよね
板違いな上に時代錯誤な発言ですまん
>>475 俺もそう思う。俺の場合は最初はケンだったけどな。
それでザンギエフとか使ってて、またケンに戻ってくると
通常技の使い方とかが上手になってるんだよ。
┏━━━━━━報告書━━━━━┓ ┃ ┃ >1haヒッキーのため ┃ 15:00前後に良く書きこむようです。 ┃ ┗━━━━━━━━━━━━━━┛
あのぅ、ヒッキーさんは C++ を覚えようとしてはるみたいですけど、 C++ はいろんなもの隠蔽しちゃってて、全然低レベルじゃないと思いますよ。 ましてや MFC なんて、裏で何やってんだかわかろうとするだけ無駄です。 やるなら高級アセンブラ C。
481 :
デフォルト素人さん :01/11/30 00:38
GCって何ですか?
>>480 > C++ はいろんなもの隠蔽しちゃってて、全然低レベルじゃないと思いますよ。
気のせい気のせい。C++ はソースを読んで(最適化前の)アセンブリコードが予想
できる代物で、その意味では C と同様に「高級アセンブラ」です。
ただ、ゲームを書くなら MFC はあまり嬉しくないとは思う。Win32 の基本的なフレー
ムワークは
メッセージを使った処理
なんだけど、ゲームの場合にはこれを無視してしまった方が書きやすい(PeekMessage
でメッセージを見て、なかったらゲームを進行させるように書く)。MFC はそういうコードを
書くことは想定していないので、いろいろ面倒です。
もし C++ で書くなら、WTL の CWindowImpl あたりを使うか、もしくは素直に自分でウィン
ドウプロシージャを書くのが良いかと。
>>482 CWindowImpl は WTL じゃなくて ATL だな。ごめん。
>>481 ガベージコレクション、で google 検索。
C++でthrowしたのオブジェクトを参照でcatchしたときとか アセンブリコードが予想できたら結構すごい。
C++=MFCと決めつけるのはよくないかと。 漏れはC++使ってるけど、MFCなんて使ってないよ。
>>466 > どの程度まで内部を把握してプログラムすべきかということです。
その前に、
グローバル変数とローカル変数の使い分けっつーか、
モジュール化とか意識するようになったほうが良いと思われ。
順番として。
シロウト考えなんで、プロのかたの意見を優先に参考にしてください。
>>472 猫でもわかるプログラミング、読みふけってしまいました。
間に猫の絵があって、なんとなく読みやすいです。
MFCって、APIの後でやっと分かるものなんですね…
でかでかと売り文句が書いてあるので、それをマスターしないと
いけないのかと、誤解しました。
>>473 検索してみましたが、MATLABってすごくムズカシそうですね(藁
Cで3Dの表示をするより簡単に記述できるんでしょうか。
ソースのC化機能とかついてるみたいですね。
>>474 外国は教育のカリキュラムが違うでしょうしね。
VBはたいした言語ではないので、Cに移ると苦労します。
>>475-477 あー、そうですねー。最初は必殺技のコマンドを入力するだけで
苦労するけど、後から違うキャラの技を覚えるのが楽になったり
しましたね。僕はガイルを最初に使ったので、ブランカだけ楽でしたが(w
>>480 低レベルな処理を知りたいとは思いますが、C++で楽ちんな考え方を
してプログラムしたいというのもあります。
※それにしてもなぜC++をやろうとしたらみんな煙たがるのか…。
>>482 ほおほお。MFCって、ゲームを作るときには使わない方が
いいんですか。たしかにメッセージ処理は関係ないかも。
キーの処理とか決まった位置で自分で書きますしね。
CWindowImpl、検索してみます。ありがとうございます。
>>486 C++って、LINUXにWINのソースを移植するとき、WinAPIを使ってる
所を全部消さないといけないんでしょうか?
MFCを使ってたらさらに移植が難しいですね…。
>>487 そうですね…。たしかに考えが飛躍していたように思います。
僕的には、目標がはっきりしていた方が勉強しやすいので、
悩みを解消したいのもあって、意見を書いてみました。
煙たいっていうか、基礎を勉強するならCの方が良くねえかい?ってことだ。 今は、アルゴリズムとデータ構造を徹底的に叩き込むべきだと思う。 その後で、効率よくプログラミングするためにはオブジェクト指向で設計した方がいいかもしんない、 って自然に思うようになるから。オブジェクト指向の勉強はそこからでも遅くはない。 「C++って既存のライブラリがいっぱいあるでしょ?そっち使った方が楽じゃん」という考えは プログラミング初心者はしないほうが良いです。じゃないとスキルは伸びないと思う。 Cでインタプリタを作ってみたら? 基礎的なアルゴリズムを一通り学べるし、ある程度動くようになったら、オブジェクト指向で メインコードを簡略化したくなるよ。あ、できるだけ文法はCに近いものがいいかも。
>>489 ご意見ありがとうございます。
たしかに、既存のライブラリに頼って、それを呼び出すだけの
プログラムを書いたところで、自分の技量には何の関係も無いですね。
やはり、経験を積まれた方の意見は重みがあります…。
インタプリタって文を分解して、1行ずつ実行するというアレの事ですか?
うーん、どうやって実装したらいいのでしょう。
文を、中間的なバイナリコードに変換してそれを逐次、実行するような
感じでしょうか。文の内容をそのまま実行して逝ったらいいんでしょうか。
いろいろ考えてみようと思います。
Cに逝くか、他に逝くか逝かないかは自由だからね。 ただCをお勧めする。
>>491 ちょっと待ちいや。いきなりインタプリタは酷やろ。
ヒッキー、迷路や迷路。迷路作成プログラム作ってみ。結構奥深いで。
494 :
デフォルトの名無しさん :01/11/30 15:12
>>493 激同。迷路は奥が深い。
折れも昔作ったなぁ。
# 「活字」の関西弁は気持ち悪い(藁
# 一応関西人ですが(私
495 :
デフォルトの名無しさん :01/11/30 15:12
3D迷路とか。
>>494 まぁええがな(w
>>495 それは単なる表示上の応用やな。基本的には二次元でええやろ
そや、2ちゃんにもカキコできるようにテキスト迷路なんてどや?50x50ぐらいのん。
498 :
デフォルトの名無しさん :01/11/30 15:21
>ヒッキー@プログラミング氏
どんどん挑戦する事が大切!ですね。
>>493 氏の提案している迷路なんてどや(藁
# でも騙りも出ずにってすごいなぁ(藁
挑戦することが大切か…最近その心意気を忘れてる気がするよ。 俺もここで何かやってみるかな。しかし受験もあるし。 鬱堕詩嚢
>>500 get !! (藁
挑戦すること…ですね。
折れも受験だしなぁ。来年、ガンバロ~っと。
受験を来年頑張れ♥
>>501 受験を来年って浪…(自粛)…じゃん(藁
それはそうと、電子投票ほうが成立したね。
┓(´д`)―y。o(どうなるんだろ?)
http://www.geocities.co.jp/SiliconValley/2530/ ↑次うぷしました。変更点は
・ソースの部分的なモジュール化
・NativeCodeコンパイルに変更
です。見た目と動きはほぼ変わりません…。
>>491 ほおほお。中間コードを吐く方法でよかったですか。
自分で変なこと言ってたらどうしようとか心配してました。
スレ、読んでみます。ありがとうございます。
>>492 了解。Cの方向で。
>>493 やっぱインタプリタは難しいですか…。
迷路でも、ちゃんと完成させるのがムズカシそうだ。
一回、作ってみようと思います。
>>494 いくつもゴールへのルートがあると難しそうですねー。
僕も関西人です。
>>495 3D…がんばれゴエモンみたいなやつですか。
>>496 あー、2chにカキコできるサイズのものだったら面白いですね。
>>497 どういうゲームなんでしょうか(w
最良スレの定義がわからない…
>>498 ういー。どんどん挑戦してみようと思います。
体力が続く限りやります。
>>499 受験生ですかー。たいへんですね。
プログラムはいつでもできるので、まっとうな道を進む事をお勧めします。
僕みたいになると、先が見えないので大変です。
>>500 おぉ、受験生多いなぁ。
やっぱ数学してないと大変です。数学がんばってください。
>>502 電子投票ってどんなんでしょ?
選挙でつかうんでしょうか。
これも道の一つだと思ってる自分は、終わってるんでしょうか(藁 しかも受験は受験でも高校受験だったりして。 ってスレとは完全に関係ないのでsage
言語の違いを学ぶより、アルゴリズムとデータ構造の方が大事だろ。
>>1 インタプリタの見本っぽいの作ったけどいるか?構文解析の参考になると思う。
インタプリタっつーか、式を入力してそれを計算して結果を表示するだけだけど。
例えば、
>3*(2 + (a - 2) % 3)
と入力すると、
a =
となるので、aに値を入力。
すると答えが表示される。
ただし、入力できる式は、リテラル整数は1桁のみ、変数はa-zA-Zの52種類。
演算子は、+-%*/の5種類。
# ろくな字句解析してないのに4時間もかかった・・・。コード的には300行弱。
あ、なんか否定されてた(´Д`;) インタプリタと言ってもピンきりだよ。 add 1 1 とかを解析・実行して結果を2と表示するものとかなら簡単でしょ? そういうとこから始めたらいいよ。
>>507 どうでもいいけど、それってインタプリタじゃなくて電卓って言わない?
>>509 いちおう構文解析が入る(演算子の優先順位を考慮に入れる必要がある)から
単なる電卓とは違うけど、そこから言語処理系への道はかなり遠いよな。
>>511 再帰下降解析すれば、そう遠くないよ。
言語処理系として難しいのは最適化あたりじゃないか?
あと、エラー処理かな。エラーが起きたら中断するだけなら簡単だけど。
最適化まではやったことないから知らんけど。
中間コードを生成して、それを解釈実行するところまではそう難しくないって。
そこまでは別に難しいアルゴリズムなんてないし。
あ、第28段がうぷされてる。ただいま階拝見中... おっ、名前付けをちゃんとしたんだね、なかなかみやすくなったんじゃないかな? おおぅ、ブロックをモジュール化したんですね。 よく見てないんですが、いいんじゃないですか。 気になった点をいくつか、Form_Initializeの 'ここにループを書くとウインドウ描画前に始まってしまうので、 'タイマー使用 TmrCallMain.Enabled = True は画面が表示されずにMainLoopに入ってしまうんでやってるんだと思うんだけど その場合は、Initializeでフォームを Show して DoEvents かませば大丈夫です。 Me.Show DoEvents MainLoop とこんな感じで書けばいけると思う。 あとは重複して書いてるところが多い。 With tmpRect .Bottom = 220 .Left = 250 .Right = 310 .Top = 140 End With これはいっぱいあるんで、 tmpRect = MakeRect( 220,250,310,140 ) とこんな感じのRECTを作る関数を作った方が良いです。 小さい物でもいっぱいあると曲者です。 後はある特定のボタンが押されているときの速度を 変える処理はこんな風に書けばよいです。 Dim MoveSpeed As Long MovdSpeed = 2 '通常移動速度 If Press.Shift Then MoveSpeed = MoveSpeed * 2 'SHIFTが押されているときは2倍 ElseIf Press.Ctrl Then MoveSpeed = MoveSpeed * 3 'CTRL が押されているときは3倍 If Press.Left Then Paddle.X = Paddle.X - MovdSpeed 'この辺を変数に変えてみた If Paddle.X < 0 Then Paddle.X = 0 ElseIf Press.Right Then Paddle.X = Paddle.X + MovdSpeed 'この辺を変数に変えてみた If Paddle.X + Paddle_width >= Game_area Then Paddle.X = Game_area - Paddle_width End If 重複する処理は書いてはいけない、修正や変更が大変になります。 ちょっとづつ値が違うような処理は変数をうまく使えばひとつにまとめられます。 似たような構文が続くものは必ずうまく書く方法があるのでそこに注意してみてください。 あと、実行させると自機が自動で左に移動します。 カーソルきかないっす。仕様ですか(笑。
>>504 挑戦する事を忘れるのはまだ早いですよ(藁
高校受験ですかー。たいへんですね…。
その頃、今まで生きてきた中で一番勉強してた時期のような気がします。
吸収が良い時期なので、なんでも勉強した方がいいかもしれませんね。
>>505 Delphiは…VBと同じような位置付けに感じるので、やっぱやめとこうかと
思っています。他のOSでもDelphiが使えたら考えるかも。
あ、パスカル言語という風に考えたら検索したら見つかるかもしれないですね。
>>506 はい。アルゴリズムを覚える方をかんばります。
>>507-508 おぉ、ありがとうございます。
見せて頂けるなら欲しいです。
いきなりインタープリタと考えると難しいけど、一個一個解決して
いけばいいんですね。
>>511 うーん、やっぱインタープリタの道は険しいのか…
>>512 最適化って、どの変数にレジスタを割り振るかとか、
ややこしそうな処理のことでしょうか…。
>>中間コードを生成して、それを解釈実行するところまではそう難しくないって。
ほおほお。なんか安心しました(w
>>513 おー、具体的な例を挙げて、教えてくださってありがとうございます。
たしかに重複する箇所が多かったと思います。
RECTのところ、おっしゃる通りに変更してみたら、読みやすくなりました。
他の所も修正しようと思います。
あ、あとForm_initializeのところ、書き直したらいけました。
なぜか前にやったときはうまく逝かなかったんだけどなぁ…うーん。
あー、そういえば左に動くのは、JoyStickに対応しようとしたから でした…。joyStickの関数がちゃんと値を返してくれないような…。 もしくわ僕の書き方が悪いのかもしれません。 とりあえず、一時的に消します。
あ、
>>516 のコードは中間コード生成してないから。
>>516 > ファイルへの直接リンク(アップローダのページからクリックすれば、見れます)
と言われて拾えないんだけど。2:00 以降になれば OK?
>>512 > 再帰下降解析すれば、そう遠くないよ。
ま、数式の解析から言語処理系への過程が遠いか遠くないかは、実物を見て本人
が判断すりゃ良いやね。(俺は遠いと思うけど)
前に勉強がてら書いた Pascal ライクな処理系のコード置いときます。中間コードの
生成と、コンパイル時に 1 + 1 を事前に 2 と置き換える程度の簡単な最適化が入っ
てます。
http://members.tripod.co.jp/lambda_func/pc.zip #TRY - CATCH とかはお遊びで書いてるので、真似しないようにね。
JoyStickに!? すごいなぁ。どんどんやってください。 二十歳の実務経験なしでここまでできるとは驚きです。 ソース見てると、欲しいところにうまくコメントを書いているし、 いろいろ調べ物もうまいみたいだし、成長も速いし、 いいなぁ欲しい人材です。ウチの新人もこうであれば...。 あと、インタプリタやらなにやら話があがっていますが、 あなたの好きなところからプログラムをやっていくことがいいと思います。 好きなことをやってると成長は速いです。 APIに興味があるようなのでそちらで何かやってみては?
>>518 俺はHSP程度なら数式解析とたいした差はないと思ってる。
というか、やってみたら意外と簡単だったっていうのが正直な感想。
# それまですごく難しいものだと思ってた。
もちろん言語処理は奥が深いからピンキリだね。
>>518 の"遠い"と言うのはそういうことかな?だったら激しく同意。
実は俺はまだ言語処理系触れ始めと言っていいくらい。
yaccとかlexは使わないで1からゴリゴリ書いてるけど、再帰下降解析
はほとんど差が無く感じるな。管理するデータが多くなったくらいで・・・。
あ、ソース頂きました。
>>519 ま、結局は
>>1 次第だね。
でも言語処理ってゲームで生かせると思う。
俺も20歳なんだけど、どう?(笑)
仕事中に2chに出入りしてる人間はダメ?
# いちいち長いな(´Д`;)
>>519 やっぱ現段階でそこそこできるやつよりも、
1氏のように頭のきれる人のほうがいいですよね・・・
>>1 あなたの情熱がうらやましいです。がんばってください。
今日は一日中寝ていました。
>>516 どもども。いただきました。
これから拝見させていただきます。
>>518 おー、すんませんです。
いただきました。参考にさせていただきます。
>>1 + 1 を事前に 2 と置き換える
あー、定数の演算の場合、すでに計算しておくっていう方法もあるんですね。
>>519 ありがとうございます。嬉しいです。
あんまり誉められると頭に乗ってしまいます…。
>>あと、インタプリタやらなにやら話があがっていますが、
>>あなたの好きなところからプログラムをやっていくことがいいと思います。
了解しました。
インタープリタは、HSPを知ったときに、ちょっと作ってみたいなぁと
感じていたので、興味はあります。
とりあえず今はもうちょっと簡単な事からやってみようかと…。
APIでウインドウを作って、メモ帳のようなものでも作ろうと思います。
>>520 おー、ハタチなんですか?すごいですね…。
僕もいつか追いつきたいと思います。
>>521 ありがとうございます。
引きこもってると楽なので、勉強がしやすいです。
なぜか学校逝ってる時は勉強の時間に勉強しないんだけど…(藁
社会に出ると、できるかどうかわかりません。
精神的に追い詰められやすい性格なので…。
>>522 いやいや、いらないと思うよりは、できると仮定して
能力を伸ばしていく事の方が大事じゃないですか?
いらないと決めて、いらない人間になってしまったら
本当に社会にとって良くないと思います。
どのような人であれ、同じような量の食事やらをするわけですから。
マジレススマソ。
確かに僻んでる。羨ましいもん。 でもなーんにもしてない、ってわけじゃないよん。 つーか激しく板違いなので消えます。
恐らくblock28.zipが最新版だと思うのですが、 3面から出てくる金のブロックを壊した時に、画面の左上の隅に毎回黄色のブロックが出現します。 ソースを見てないけど自分の推測では恐らく金のブロックは2回当てると壊せるブロックで、 1回当てると黄色のブロックに変化させるつもりが、位置を設定してないため毎回(0,0)の 位置に誤って出現しているのだと思います。 通常じゃ配置されそうにない位置に出現するのと、他のブロックと画像が重なることがあることからそう判断しました。 けどバグじゃなくても直してほしいです。このブロックのせいで4面がいつまでたってもクリアできない… あとバーが左端にあった時だったと思いますが、真横からボールが当たった時バーが少し壁にめり込みました。 しかしこれは別にゲームに支障がないのでバグとはいえないかな? あと非常に面白いです。コンボで一気に点が入るところが。
>>514 >Delphiは…VBと同じような位置付けに感じるので、やっぱやめとこうかと
>思っています。他のOSでもDelphiが使えたら考えるかも
同じといえば同じだけど・・・・・まあいいか・・・
もしC++で躓くようならDelphiを経由するといいよって感じでね
んー、どの言語でも最終的に機械語として実行されるのと同じぐらい どのWindowsアプリも最終的にAPI呼び出しで実行されるんだから、 CでAPIを叩くのはいい勉強になると思う。 API呼び出しだけでプログラミングするとなるとDelphiよりCのほうが素直 だと思うし。 そのあとC++にいくかDelphiにいくかVBに戻るかVB.netに行っちゃうかは 趣味の問題だと思うけど。
>>527 API呼び出しってのが 猫でものように、SDKレベルのメッセージループを直に書く
ことだとするならDelphiでも素直に書けるよ。
ただし、Cの方がオフィシャルな参考書があるという事が大きいね
Cの文法も判らないと勉強出来ない。だから必須という事なら賛成するよ。
個人的には VB->C->Delphi->Java->C++の順に学ぶのが王道だと思ってるんだけどね
530 :
クロスボウとやら :01/12/03 17:33
おいら的には VB->Delphi->C->Java->C++ が良いと思われ。
すすめるのは結構だがRADとそうでないので区別した方がいいと思うが。 漏れはVB->C++でいいと思う。 っていうか、移る前にVB使いこなせっつーの。 VBでDirectX。これが通の頼み方。
>>531 そうか? 俺は色々な面で勉強になったよ。
今でも自作ツール作る時はDelphiだ。
http://www.geocities.co.jp/SiliconValley/2530/ ↑次UPしました。変更点は
・ボールを3つ同時に出せるように変更
・ボールを全て回収したらステージクリア
です。最後に回収しないといけないようにしました。
>>524 がんばっていらっしゃるなら、前向きになられる事をお勧めします。
後ろ向いて勉強したら自分にとって負担になると思います。
>>525 どうもすみません…変な位置にブロックが移動する現象、直しました。
バーの横からボールに当たったとき、ちょっと動いてしまうような
ソースを書いているのですが、自分でもちょっと変だと思っています…。
直そうかな。
>あと非常に面白いです。コンボで一気に点が入るところが
ありがとうございます。
お褒めの言葉を頂くと、何より励みになります。
>>526 ちょっとC++は敷居が高くて困っていました…。
うーん、Delphiも触ってみようかな。
>>527 そうですねー。CからAPIを呼び出すほうが簡単に感じます。
Delphiは触った事ないけど…。
>>528 あ、Delphiでも素直に書けるんですね。
だんだん揺らいできた(w
>>529 どういうことでしょう?
>>530 ほおほお。やっぱそういう順路もありなんですね。
>>532 ごめんなさい…。
VBでDirectXですかー。うーん、DirectX使うんだったら
なんとなくC覚えたいなぁ。
>>533 ツールを作るときのような手軽さはやっぱC++にはなさそうですね…。
>>1 早速、やってみたよ。バグじゃないけど報告
ゲームバランスの調整になるかもしれないが
玉が3つゲーム画面上にあると極端に自機の動きが重くなり
玉のスピードについていけない感じがします。
>>536 ご報告ありがとうございます。
ウチの環境では遅くならないのでわかりませんでした…。
やっぱ知恵を使わないとだんだん重くなりますよね。
ソースを見直します。
29やってみました。 ボールが同時に出るようになったんですね。素晴らしい。 個人的にはボール同士が衝突してほしいです。 Delphi Personalは無料ですし試してみるといいかもしれません。
もう買われてしまったVCがかわいそう(´Д`;)
背景を縦スクロールさせたり ブロックが動いたり ブロックからミサイルが飛んできたり このままシューティングにシフトしていったら面白いシューティングができるかも。
>>535 > VBでDirectXですかー。うーん、DirectX使うんだったら
> なんとなくC覚えたいなぁ。
マジレス
DirectX 使うなら C ではなく C++。DirectX は COM コンポーネントとして提供
されてるから C++ 使わないと記法が鬱陶しい(設計をオブジェクト指向でやる
必要はないけどさ)。
おおっ、ボール3つ同時は面白い。 でも、そのおかげでオヂサンには、 1面すらクリアできなくなりました。(最高2面。鬱... ブロック壊すとアイテムが落ちてくるなんてのは面白いかもね。 1アップとかボールが下でも跳ね返る(落ちなくなる)ようになるとか
>>538 ボーランドのソフト、無償でいろいろ提供されてますね。ビクーリ。
ボールの衝突ですかー。書いてみようと思います。
>>539 実はVisualStudioを買ってしまいました(藁
>>540 スクロールしたら見た目が大幅に変わりそうでいいですねー。
ブロックからミサイル…完全にシューティング化ですね(w
>>541 ほおほお。やっぱC++ですね。
オブジェクト作るときのnewとかどうやってCで書くのかわからない…。
うーん、勉強します。
>>542 僕もクリアできなくなりました…。
アイテム出てくるともっと良くなりそうですね。
まだまだ改良の余地がありそう。
今回のバージョンってブロック壊した後にボール受け止めなくちゃいけないんだね。 次の面に行った瞬間死んじゃったりしたよ。キツイなぁ。これって前のままじゃだめなの? あとボールが3つに増えると自機が遅くなるバグだけど、 ウチの環境ではマウスで動かしているとそうなったよ。キーボードだと普通に遊べる。 あとアイテムのことだけど、ブロック崩しはもともとバランスのいいゲームだと思うから出し過ぎは危険だと思うよ。 棒が長くなったりボールが分裂したりはいいけど(むしろちょっと歓迎)、間違ってもミサイルでブロックを壊せるなんてものは登場してほしくないなぁ。 最後に口調がちょっと生意気気味ですいません。
>>544 >あとアイテムのことだけど、ブロック崩しはもともとバランスのいいゲームだと思うから出し過ぎは危険だと思うよ。
その考え方のほうが危険じゃないか?発想力が乏しくなりそう。
個人の好みだけど、そういう考え方は好きではないな。
「ブロック崩しはこういうもの」とかいう定義は勉強中のプログラマにはして欲しくないな。
それはゲームを"するだけの人間"に任せておけばいいだろう。
仮に「ミサイルでブロックを壊す」という機能を実装して、ゲーム性が損なわれたとしたら、
それを補うアイデアを考えればよい。時間は十分にあるんだから。
趣味でやってるんだから、気に入ったアイデアがあったらとりあえず実装してみれ。
>>545 それはそうなんですけどね。
ただ今回のバージョンアップ版をやってみてゲームバランスが崩れかかってるかなと思ったんですよ。
前のバージョンの方がよかったなって。
なんか今回のバージョンになってブロック崩し本来の面白さが欠けたような気がする。(そうはいってもボール分裂は見たい…)
けどミサイルなんて物はブロック崩し本来の面白さを完全にぶち壊してしまうような気がする。
そして一度その方向に進んでしまうと、もう二度と本来の面白さを生かすような方向には転換しない気がする。
まぁそれを1さんが見事に面白くしてくれればいうことなしなんだけど。
1のスキルアップの為に作ってるんだから、今はゲーム性よりもプログラム的な 発展を評価すべきだよ。 ちなみにボールを増やすのを指示したのは俺だけど、1の今の技量でいきなりアイ テムを出すのはキツいと思ったから暫定的に今のシステムを提案しただけだよ。 もしこの先アイテムを出すとして、ボールが分裂するアイテムが出たとしても、 今の状態からなら新しいボール発生の条件を変えるだけで済むし。 今のシステムを生かすなら、得点システムを変えてコンボボーナスを無くして 変わりに飛ばしてるボールの数によって2倍、4倍の点が入るようにするのが いいかな。あとは、ボールが2個以上飛んでる場合は右クリックしながら受けると キャッチできるとか。 ミサイルでブロックを破壊はブロック崩しとしては常識外れだけど、それでも闇雲 に否定するのもどうかと思うよ。例えば、ミサイルで攻撃する対象はブロックでは なくてボールにして、ボールの動きに干渉できるようにするとか、いくらでも考え ようはあるかと。
>>531 「習うより慣れろ」 これ大抵の技術の一番の習得方法
そりゃ横に誰かいて手取り足取り教えてくれるなら別だけど、
独習なら手軽に試せて結果も満足いくDelphiを 間に挟むのは良い事だと思うよ
Delphi勧める人多いですね。 better VBって感じですか?
いや、Delphiだと無料だから 他のヒッキーも参加し易いんだろ
551 :
デフォルトの名無しさん :01/12/04 13:50
マウスのホイール対応キボンヌ やっぱブロック崩しはローラーでそうさせねば。
ここのスレだと、「Delphi=楽、C++=キツい」みたいな話が多いけど、C++だって BCBがあるのをお忘れずに。DirectXまで考えるとBorland製品は絶対に奨められ ないが。 ただ、RAD環境ってのは、ツールみたいな標準GUI主体のソフトには便利だが、 リアルタイムゲームみたいなプログラムにはほとんど何も助けにならないよ。 それと1よ、みんなの意見を取り入れるのはいいが、自分で思いついたアイディア も積極的に入れていった方がいいと思うよ。実装は難しそうでもここに書いてくれ れば、実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
>>552 俺も DirectX 使う場合には、RAD はそれほど「便利」ではないと思うけどね。
DirectX プログラミングは GDI に比べると、ちと難易度が上がる。たとえば GDI だと
バックバッファへの描画は BitBlt() を呼び出せばいいだけだが、DirectX だとこれが
タイミングによっては「失敗」することを考慮する必要がある。
#GDIでも BitBlt() が失敗する可能性はあるんだが、殆どの場合は気にしなくて大
#丈夫。
たとえば DirectDraw を使う場合、IDirectDraw7, IDirectDrawSurface7 関連のメソッド
は、すべて
1. 失敗したら
2. 再描画 (RestoreAllSurfaces()) もしくは IDirectDraw7 の再初期化
3. 失敗した処理のやり直し
ってロジックを埋めておく必要がある。
今のブロック崩しのコードのようにベタにコード中に処理を記述する形式だと確実に破
綻するので、処理を同期的に行わず一旦キューにため、エラー発生を前提にキューに
ある処理を順次処理、みたいな一段高度なアーキテクチャを要求されるよ。(DirectX
は初期化だけでも、最初は面倒だろうし)
>>553 > 2. 再描画 (RestoreAllSurfaces()) もしくは IDirectDraw7 の再初期化
じゃなくて
2. サーフェイスの復元 (RestoreAllSurfaces()) もしくはIDirectDraw7 の最初期化
+再描画
だな。
>>552 BCBはあれはコンパイルが遅いから 変更即RUNで試すというサイクルで出来ない。
RADでもDelphiの場合は自分でコンポを容易に作れるから 画面作りの効率化
はもちろん、キャラの設定なんかもキャラをコンポ化すればRAD環境で可能
必要なら、スクリプトをプロパティに設定し設計時からキャラを動き回ったりさせることだって出来る
そういうふうにコンポーネント化してゆく事でどんどん効率的になってゆく体験は大事だと思う。
>>555 それはコードを書く側の問題。
VBでもCでもC++でもコードの再利用をしやすいように組む事はできる。
っていうか話し聞いてると、Delphiに浸ってたら脱初心者は無理のような気がしてくる。
もっとプログラミングそのものに浸ってから最後にDelphiでいいと思われ。
とりあえず、プログラミング入門編としてのRAD系は卒業した方がいいのでは?
>>552 >それと1よ、みんなの意見を取り入れるのはいいが、
>自分で思いついたアイディアも積極的に入れていった方がいいと思うよ。
>実装は難しそうでもここに書いてくれれば、
>実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
552さんの提案は、非常に有益だと考えます。
プログラム学習者にとってもこのスレがこういう方向に
進むことを期待します。
VBでも Cでも 確かに再利用し易いように組む事は出来る。 でも、それは独習で身につくのだろうか? 指導者がついているか、適性があり経験を重ねて身につくものだと思う 言い切っちゃうとさ、管理者居なくて独習で経験を重ねてるだけじゃ VB/Cだと悪い癖しか付かないよ それは実際の現場見りゃ判るでしょ? 経験xx年のプログラマの作るコードがどんなものかさ なお、Delphiでコンポを作る場面はRADじゃない。 でもその作業がスグにRADに反映してゆくから、 少しの苦労で見入りが大きい。 そういう点から学習効率がいいと思うんだ。 まあ本人の問題だから本人が決めればいいことだけどさ
>>558 > VBでも Cでも 確かに再利用し易いように組む事は出来る。
> でも、それは独習で身につくのだろうか?
はい。
ソフトウェアコンストラクションに関しては、管理者がいようが仕事でやろうが、本人
が勉強してコード書いて頭と身体で覚えないとダメです。RAD や周囲の環境は補助
にはなるけど、それだけで自動的にコンストラクション能力が上がるものではない。
これだけだとなんなんで、推薦図書を。推薦図書スレにも書いたので重複になるけ
ど、今の
>>1 に合いそうなものを抜粋ね。
コードコンプリート―完全なプログラミングを目指して
マコネル,スティーブ ;石川 勝
アスキー (1994)ISBN:4756102107
ライティングソリッドコード―バグのないプログラミングを目指して
Steve Maguire
アスキー ISBN:4756103642
プログラミング作法
Brian Kernighan, Rob Pike
アスキー ISBN:4756136494
>>1 が思いついたアイデアをココに書いて欲しいナァ。
561 :
デフォルトの名無しさん :01/12/04 22:17
そういえば、このグロック崩しで 効果音がなった時、一瞬だけ描画が止まるというか カクッとなるの、俺だけ?
斜めに傾いたブロックってどうよ? / 反射のバリエーションが増えるよ。名付けてリフレクターブロック(でいいのかな?)! あと自機を \__/ の形にするってのはどうよ。傾く角度も変わったりして。
10 CONSOLE 0,25,0,1:WIDTH 40,25:DEFINT A-Z 15 DIM BK(40,25) 20 LOCATE 10,10:PRINT"BLOCK 崩し" 30 LOCATE 10,11:PRINT"HIT ANY KEY!" 40 IF INKEY$="" THEN GOTO 30 50 FOR I=1 TO 25:FOR J=1 TO 40:BK(J,I)=0:NEXT:NEXT 60 FOR I=3 TO 7:FOR J=2 TO 38:BK(J,I)=1:NEXT:NEXT 70 X=20:Y=23:BX=5:BY=10:BH=1:BJ=1 80 A$=INKEY$ 90 LOCATE X,Y:PRINT" " 100 X=X+(A$="J" AND X>0)-(A$="L" AND X<35) 110 LOCATE BX,BY:PRINT" " 115 IF BH+BY<1 THEN BH=-BH 116 IF BJ+BX<1 OR BJ+BX>38 THEN BJ=-BJ 117 IF BK(BX+BJ,BY+BH)=1 THEN BEEP 1:BK(BX+BJ,BY+BH)=0:BH=-BH:BEEP 0 SC=SC+1:LOCATE 30,1:PRINT SC END IF 120 BX=BX+BJ:BY=BY+BH 125 IF BY+BH>23 THEN END 126 IF BY=Y AND ( BX=X OR BX=X+1 OR BX=X+2) THEN BEEP 1 BH=-BH ENDIF 130 LOCATE X,Y:PRINT"---" 140 GOTO 80 はぁ、疲れた、
>>562 そもそも「ブロック」であることに拘らなくてもいいのでは?
#でもそうすると「ブロック」崩しではなくなるか(w
あと、時機も「パドル」であることに拘らなくてもいいのでは?
などなどと、考えていると面白いアイデアも出てくるのでは?
例えば…
・ブロックでなくてインベーダーだとか
・時機はパドルでなくてバット(昔の野球盤風)
なんてのは?面ごとにそんな趣向を凝らしても面白いかもね。
>>544 なんか面クリアと見せかけてゲームオーバーになったりしますね…。書き直します。
前のままにすると、なんか足らない気がして、最後に受けた方がいいかなぁと。
ウチでも、マウスで動かすと遅くなりました…。気付かなかった。鬱氏
ミサイルで壊すっていうのは結構いろんなブロック崩しで出てきますねー。
僕もちょっと違和感を感じます。アイテムは何かしら出したいとは思っています。
>>545 そうですね。そういう考え方もできるのか…。ご意見ありがとうございます。
なんか、人の意見を尊重しようとするあまり、自分の意思が欠けてたような
気がします。
>>546 やっぱゲームっていうジャンル上、プログラムの実装の仕方なんて、
ユーザには何も関係ないですもんね…。
面白いものを目指す事を忘れないようにしたいです。
>>547 おー、ボールの分裂の意見をくださったかたですか。
同時に飛んでいるボールの数によって点を変えるようにしたほうが
良いかもしれないですね。必然的にユーザは
ボールをいくつも出す→危険な事に挑戦するという感じで、
面白さに繋がるかもしれませんね。
ミサイルにボールが当たると動きが変わるというシステムは斬新ですねー。
参考にさせていただきます。
背景に裸の女の子
>>548 手軽に試せるという風に考えると、C++に逝くよりはDelphiの方が
よさそうですね。ついでに無料みたいだし…惹かれてみたり
>>549 うーん、そうなんですかね?どうなんでしょう。
やっぱお勧めになるという事は、それなりのワケがあるんだと思います。
>>550 そういう事だったのか(藁
>>551 あー、そういえばホイールついてましたね。
関係ないけど、目の付け所がシャープですね。
>>552 やっぱウインドウ作ったりボタン作ったりってゲームにはあまり
関係ない要素ですよね。作り始めてやっと気付きましたが(w
>>実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
ありがとうございます。
僕も何か考えて、まずここで発表してから実装に移ろうかと思います。
>>553 >>DirectX だとこれがタイミングによっては「失敗」することを考慮する必要がある。
なんかむずかしそうだ…。
キューに処理を貯めて、それを実行するって複雑そうですねー。
何の機能も無い、キューの構造を作るだけでひぃひぃ言いそうなんですが(藁
>>554 サーフェイスって、メモリ上のビットマップのことでしょうか?
>>555 コンパイルする時間ってなんかドキドキします。
たいがい、凡ミスエラーだらけなんですが…。
うーん、なんかプログラムを楽しんでできそうですねー。Delphi。
>>556 いつまでもヌルい環境に浸っていたらダメかもしれないですね。
最初、ウインドウをAPIで作ったとき、驚愕しました。
>>557 僕にとっても非常にありがたいです(藁
>>558 再利用しやすいコードって、非常に難しいです。
汎用的に書いてるつもりでも、実は他のプログラムにコピペしたら
穴だらけみたいなソースをいつも書いています…。
※なんか、全てのパターンを満たすほど意見があって、自分で取捨選択
するのが難しいんですが…。
>>559 おー、本で勉強すれば自分でもスバラシいコードが書けるように
なるもんですか。本の名前まで挙げていただいて、ありがとうございます。
>>560 思いついたら書こうと思います。
>>561 APIの呼び出し方が間違っているのか、ウチでも、ノートPCでやると
カクカクします…。
>>562 プログラム的に非常に勉強になりそうですねー。
やってみたいけれど、ちょっとまだ難しいかも…。勉強します。
>>563 何の機種用のBASICなんでしょうか(藁
BEEP 1ってどっかで見たような…
>>564 PC98をおもむろに起動するとか…
>>565 自機がバットって…ワラタ。
殻をぶち破る勢いのある発想ですねー。参考になります。
>>567 そうしたいと思ってはいるんですよ。
>>565 つーか、そもそもインベーダーゲームってのはそういう発想で生まれたはず。
572 :
デフォルトの名無しさん :01/12/05 06:43
ちょいとシツモンです。 Javaってよくオワッテル言語と聞くのですが 皆さんはなぜ勧めるの?
>>572 オワッテル人たちが言っているに過ぎないため。
死に絶えそうな言語にこそ、新しい血が必要なのです。 メンバー集めないと廃部になるJava倶楽部。
575 :
:デフォルトの名無しさん :01/12/05 07:33
これはすげぇよ。初レスだが、すげぇよ。 徐々に成長していって、面白かったよ。 これからも頑張れよ。まじで
Javaは結局、Sunがトドメを刺してしまった気がする。
>>574 Java倶楽部が廃部になったら、どこ行きます?
>>572 自分だけ被害者になるのが嫌なので
初心者も巻き添えにしてやろうってことです。
うへ・・・・
Javaをたたくのが流行だからです。
>>577 今までずっと囲碁をやって来て、囲碁部がつぶれたから、
じゃあ将棋部へなんて無理だろ
って、俺は574じゃないが
>>581 だから、ずっと囲碁やってて囲碁部がつぶれたらどこ行くの?
やべ・・・・ 喧嘩はしないで―
JAVAプログラマは諸国漫遊ですか?
かくさんと すけさんを わすれずにね
Javaトークで盛り上がってますね(藁
>>571 そうなんですか?ほおほお。
>>575 ういー。がんばります。
仕事なら来る仕事の勉強をすればよい 趣味ならその時好きなことをすればよい 趣味は酔狂なほどたのしい
だから初心者には N88BASIC を勧めてる
ハイスコアキボン
CとC++の違いを誰か語ってください。 というか今主流の言語を語れる人って居るのかな。 このスレならゲームに使われてるものか・・・・ 実際このゲームはこうで・・・・とか。 ハーフライフとかKohanて奴がModに対応してるとか聞いたんですが。 そのModってなんなんですか? 3D系ならともかくKohanてゲームはリアルタイムストラテジーなんですが 何となくは解るんですが、実際Mod作ったりしてるプログラマって いるんですかね?日本に。 CSとかとてもアマチュアが作ったとは思えない出来なんだけれど。
>>593 スレ違い。googleでも行くがよろし。
VB APIも直接叩ける、ネイテブコンパイラでもあるが、非常に遅い。 ゲーム作りにはそれが障害になりうる。また文法が緩く、入門者 は早期に移動しないと悪癖が見に付き易い。 DLLの利用は出来るが、一般的なDLLは作れない。 Delphi APIも直接叩ける、インラインアセンブラも使える。 DLLも作成出来 COM/ActiveXも作成出来る。 Linux用にはKylixもある。 文法は厳しく、制御構造もVBより少ない。 またbegin/endのような 書き方が冗長に見えるが、それが逆に冗長でないコードの書き方を 促進しているともいえる。 ポインタと配列も完全に区別されており、 初心者の入門言語としては良い。 さらにコンポーネント志向とも言 えるその設計スタイルは上級者になっても利用出来、かつ他言語 でも応用可能な身に付けてよいスタイルである。 ただし、多くのSDKがCスタイルで提供されており、最新技術を利用 したい場合は両方に通じていなければならない。 その移植の手間 もDIYとなるのが苦痛な面もある。 Java 基本的にはハードは直接叩けない=制限が多い (MSのは別にして) しかし、ブロック崩し程度なら障害にはならない。 開発環境としてRADもあるが、 VB/Delphiに比べると貧弱 RADでない環境の足がかりとして良い C/C++ windowsでは多くのSDKはほぼ C/C++ 特にVCで提供されており 最低読めなければならない必須言語である。 しかし入門時からどっぷり漬かると、 配列とポインタの混同に始まり、豊富なサンプルコードの為に逆に コードコピペの癖やアルゴリズムのSTL依存病、などの症状にも かかりやすい
596 :
デフォルトの名無しさん :01/12/06 10:26
正直、このスレの
>>1 にチョト感動した。
ガムバレ
>>595 妙にDelphiびいきだなぁ(笑
漏れは別にSTL依存は全く問題無いと思うけど。むしろSTLを使いこなせたら
ちょっと尊敬しちゃう。漏れはコンテナクラスくらいしか使う気しない。
Direct3D使うようになると、DelphiどころかVC++/IC++以外のコンパイラは
たとえC/C++であっても却下なんだよなぁ。
Borlandもさっさと妥協してオブジェクトファイルのフォーマットをMSに合わ
せれば良いのだが。
>>597 > Direct3D使うようになると、DelphiどころかVC++/IC++以外のコンパイラは
> たとえC/C++であっても却下なんだよなぁ。
なんで? 詳細キボンヌ
Delphiびいきの人って多いよね。 言語というより一つの処理系にすぎないと思うんだけど。
初心者がコンポーネントを再利用しまくりで開発するクセがついたらどうするの? っていうか、VBにもユーザコントロールって無かった?
確かにDephiの場合は コンポーネント検索病にかかるな そこで成長が止まるか コンポ自作側に回るかが分岐点かもな UserControl はActiveXを手軽に作れるのがメリットで、便利とは 思うけど、あくまでもコントロール。 コンポーネントはコントロールも作れるけど、クラスの一種。 コンポーネントにしたからといってオーバーヘッドはクラス化と同じ 程度。(実行時型情報を動的に使えば多少のオーバヘッドは出るけど) またコンポーネントを作る事でクラス作成の訓練にもなるのがイイ感じ
>>601 それってC++でも一緒じゃないの?
参考書片手に勉強すればいい話かと。
結局本人次第としか言いようがない・・・。
C++ってそんなに敷居が高いかな。
C++は簡単だよね。 問題はまあ クラス設計とかが難しいって話かもしれないけど 趣味で作るなら 何回か作れば最適なのが見つかるし。
ガイシュツ?
>>1 =ヒッキー@プログラミング
例のブロック崩しですが(この話題ってもうおわったの?)、
ブロックをすべて崩した後に、ボールをキャッチせず、残りのボールを0にすると
「ゲームクリア」となるのはいいのですか?
しかもその後面が変わって即「ゲームオーバー」となってしまう。
ださい と思うんやけど。
ソース見てくるわ
# VBは経験ないので、直感で読みます(藁
# C言語を勉強中
http://www.kumei.ne.jp/c_lang/で 。
# ポインタってのがよく分からないのが、つらい。
>>589 的を射たご意見、ありがとうございます。
ちょっとやる気がでました。
>>590 そういえばN88Basic互換のフリーソフトがVectorにありましたね。
サンプルがう○この描画でしたが(藁
>>592 ハイスコア、ネット上で集計するにあたって、何が必要でしょう?
アプリケーション上から自動で処理するには、CGIにPOSTメッセージ
を送ればいいんでしょうか。
>>593 Modって、音楽のModですか?
>>595 Delphiってインラインアセンブラ使えるんですか?
おー、結構すごそうですねー。
KylixってDelphiと互換の開発環境だったんですねー。
参考になります。
>>596 ありがとうございます。ガムバリます。
>>597 STLとは何でしょう?検索してみます。
やっぱWindowsで開発する以上、MSのツール使った方がいいのかなぁ…。
>>600 なんか、OCXというのを作る機能がありましたね。
一回、Web上に張りましたが、ウイルスぽい警告を出されるので
萎えました(藁
>>601 Delphiって、実行ファイルにコンポーネントを埋め込めるんでしょうか。
…としたら、探しまくるようになりそうですね。
僕は人が作ったクラスは内部で何をやってるのか見えないので、
あまり好きではないです。手軽に作りたい方が先行してたら
既にあるものを使わせて頂いた方が楽ですが。
>>602 うーん、いろいろ考え方がありますねー。
やっぱプログラムを勉強する人次第なんでしょうか。
>>603 なんか、開発環境デフォルトでついてる、謎のクラスやらを
覚えるのが大変で、どこに手を付けていいやら分からなくなります。
>>604 クラス、一回作ってみようと思います。
VBで作ってもダメかな…。
>>605 ご指摘ありがとうございます。直してみました。
遊んでくださる人がいる以上、不都合は直そうと思いますが、
1個直す度にUPしてたら、ファイルだらけになるのではないかと
思い、ちょっと戸惑ってました。
>>598 MicrosoftとBorlandではオブジェクトファイルに互換性が無いんだけど、
(昔はあったらしいがMSが仕様変更したときにBorlandがついてこなかったとか)
dllならimplib使ってBorland用のlibを作れるからDirectXでもあまり問題
無いんだけど、Direct3Dは重要なライブラリがスタティックライブラリで
提供されてて、それはdllじゃないからBorlandのコンパイラでは利用不可能。
DirectX7の頃はそれほど重要でもなかったんだけど、X8になったらシェーダー
のコンパイル関数とかがスタティックライブラリの方に入ってて死亡。
一応、NVIDIAのNVASM使ってコンパイルできなくも無いけど、試行錯誤するのに
毎回コンパイルしなきゃいけないのは面倒かと。
事実上、DirectX8でBorlandコンパイラには死刑宣告されたようなもんだ。
つーかCOM使ってるくせに他言語/他コンパイラから利用できないDirectXの方がオカシイ。 MSの単なる嫌がらせか?
あと、VBやDelphiの得意とする領域とDirectXの分野は明らかに違う。 その点でDirectXが使えない=死刑宣告というのは偏狭。
>>608 それは coff2omf でも変換出来ないの?
>>609 だからぁ、Direct3DはCOM使ってない部分があるんだって。
COMにしないのは何故だか分からんが。速度的な問題かも。かなりの部分がインライン
関数になってるくらいだし。
>>610 597に「Direct3D使うようになると」って但し書きしてるから、そこも見てから言っ
てくれ。
>>611 coff2omfでも駄目みたい。
ただ、検索したらボーランド用のライブラリを公開してる人がいたよ。
どんなのか見たら、Direct3DXの関数を全部エクスポートしたdll作って、
それを利用するみたい。
俺もソースの無いdllとかを改良するときに同じ事してるけど、これなら
呼び出しコストが少し増えるだけで利用できるわな。
じゃあ「VC++/IC++以外の」というよりも「Borlandの」コンパイラは全滅なわけね。 gcc(mingw)とかlcc-winとかはどうなのかな。
オブジェクトがCOFFのものなら問題ないと思われ
ねぇ、そのへんの議論は他でやらない?? ここは1の成長を見守るスレなんだから。
それもそうだ、1の成長を見守り、やさしく教えてあげませう。
618 :
デフォルトの名無しさん :01/12/07 20:51
1さんのソースを見て勉強させていただいています。 block29.zip の ManageBall.bas について質問なんですが、 286行目から… --------------------------------------- 'キーボードの時の角度の補正 If CBall.vx > 0 Then If Press.Shift Or Press.Ctrl Then If Press.Right And CBall.Angle >= 25 Then CBall.Angle = CBall.Angle - 10 If Press.Left And CBall.Angle <= 65 Then CBall.Angle = CBall.Angle + 10 Else If Press.Right And CBall.Angle >= 20 Then CBall.Angle = CBall.Angle - 5 If Press.Left And CBall.Angle <= 70 Then CBall.Angle = CBall.Angle + 5 End If Else If Press.Shift Or Press.Ctrl Then If Press.Right And CBall.Angle <= 65 Then CBall.Angle = CBall.Angle + 10 If Press.Left And CBall.Angle >= 25 Then CBall.Angle = CBall.Angle - 10 Else If Press.Right And CBall.Angle <= 70 Then CBall.Angle = CBall.Angle + 5 If Press.Left And CBall.Angle >= 20 Then CBall.Angle = CBall.Angle - 5 End If End If --------------------------------------- 「CBall.vx > 0」というのは右に向かっている状態ということでしょうか。 [SHIFT]で加速パドルになってて、かつ角度が「25度以上」なら、 パドルの力が加わって右方向に流れる角度(-10)になる というイメージでいいでしょうか? その次が、同じく加速パドルで「65度以下」なら、パドルによって 左方向の力が加わり、角度が垂直方向より(+10)になる ということですか? 「25」「20」「65」「70」という角度にはなにか意味があるのでしょうか? もしよろしければ教えてください。
>>608 スタティックライブラリって、コンパイラが変わると
使えなくなるんでしょうか?
>>615 実はこういう話題も、僕にはまだちょっと難しいですが
興味があるので、調べながら読ませてもらっています(藁
>>616-617 どもども。お気遣い、ありがとうございます。
>>618 >「CBall.vx > 0」というのは右に向かっている状態…
はい、右に進む場合は座標がだんだん正の方に増えていくので、
そのように書きました。
>「25」「20」「65」「70」という角度にはなにか意味が…
あまり意味はないのですが(w 、ただ、15度以下になったり、
75度以上にならないようにしようかと思いまして。
急角度になりすぎると、角度を修正する事ばかりにとらわれて、
ゲーム性が違うほうに向かってしまうんではないか、
と感じたので、そのようにしました。
>>619 なるほど、勉強になります。
ありがとうございました。
>>619 > スタティックライブラリって、コンパイラが変わると
> 使えなくなるんでしょうか?
コンパイラというか、コンパイルしてできるオブジェクトファイルの形式ね。
大体はシステムで共通なんだけど、Borlandだけ他と違ってるということかな。
なんでスタティックライブラリだけかというと、DLLの場合はシステムでロー
ドできる必要があるから、独自のものにはできないので問題が起きないから。
>>620 おつかれ~~、早速見てみます。
>>616-617 サンクスコ。
やっぱいい奴の周りにはいい奴が集まるって事だねヽ(´ー`)ノ
他スレなら『しきるな(゚Д゚)ゴルァ!!』だし。
マウスモードのチェックをはずしてキーボード操作に戻る時や
マウスモードの時に最小化ボタンをクリックしたりデスクトップのアイコンをクリックすると
ボールが発射されてしまいますね。これは直してほしいところです。
ゲーム画面をクリックすると開始、
ゲーム画面の中だけにマウスの移動範囲を制限するというのはどうでしょうか。
そして一時停止するとマウスの移動制限をなくし、
またゲーム画面をクリックするとマウスの移動範囲を制限し、ゲームを開始する。
このようにすればなんとなく解決する気がします。
ただこれにすると一時停止中でしかマウスモード→キーボードの切り替えができませんが。
あとなんとなく左クリックで開始と一時停止、右クリックでボールを増やすという方が一般的な気がします。恐らく。
とりあえずマウスの移動制限の説明のリンクを。
ttp://www.elixir.co.jp/developer/vb/lib/vb_all.htm
みんないろいろ教えたがってるな。
良い人材を見つけたら自分で育てたくなるのがPGってもんだ(謎
>>1 は、もうこのゲームのチューニングは十分ではないだろうか?
ここら辺から先は別の人間が進めても良いと思う。
>>1 が作ったソースコードをベースに、有志が独自の改造を施してみては?
そして改造したらジオで公開し、ココに報告する。と。
>>1 は次は何を作りたいんだ?
C++かCかDelphiか・・・・
>>621 いえいえ、こちらこそソースを読んでいただいて
ありがとうございます。
>>622 そういうことでしたか。
DLLは独自のものにできないんですね。
オブジェクトファイルって、exeになる前の中間ファイルのことですか?
(というか、リンクという作業もよくわかりません(w)
>>623 おー、どうもありがとうございます。
>>624 そうですね。画面外をクリックした時に始まるのは変ですね。
マウスの移動範囲を制限するというのは、ゲームを正しく動かす為には
有効なやり方だと思いますが、手軽さが減るのではないかなぁ
と思います。
リンク先、参考にさせていただきます。どもども。
>>625 僕も止め時が難しいなぁと感じてました(w
でも、ソースを放置するにも、説明が少なすぎるし、
何かまとめになるようなモノを書こうかと思っています。
順番的には、次はテトリスを作ろうかと。
>>626 まだいくつかVBで作ってみようと思います。
他の言語に移るのはもうちょっと勉強してからにします。
(次の候補は一応VCにしました。)
テトリスのあとにはぷよぷよというわけですね(藁 テトリスが一応出来たら、ぷよぷよへの応用も結構できる。 ただ、ブロックの消える判定が違うが。
テトリスよりもぷよぷよの方がコード書いてて面白かったなぁ(ボソ
>>627 > DLLは独自のものにできないんですね。
今Windowsで使われてるのはPEフォーマットという奴
> オブジェクトファイルって、exeになる前の中間ファイルのことですか?
そう。というかVBも中間ファイルとかいって作ってるはずだが。
> (というか、リンクという作業もよくわかりません(w)
オブジェクトファイル同士(とライブラリ)をくっつけて実行ファイルを作ること
え?この程度で終わりなの?まぁいいが。 次はテトリスって話だけど、少なくともテトリスはブロック崩しより簡単だよ。 ぷよぷよは再帰使うと簡単だけど、VBって再帰使える?
つーか、1よ、今上がっている候補としては、 テトリス ぷよぷよ 電卓(俺推奨 藁 (1/3)*3が1と表示されるヤツ だな。
>>628 ぷよぷよは面白そうですねー。
でもぷよぷよ、すごく苦手なんです…連鎖のデバッグができない(w
>>629 ほおほお。そうですかー。
次にやってみたいと思います。
>>630 おー、ご教示ありがとうございます。
リンクという作業がようやく納得できました。
>>631 うーん、テトリスならすぐにできそうなので、
それからブロック崩しの続きを考えようと思います。
再帰ですか。VBはできないような……できるのかな。
ぷよぷよで再帰とはどこで使うのでしょう?
くっついた時の判定でしょうか?
>>632 あー、電卓の存在を忘れるところでした。
インタープリタは書いてみたいですが、もう少し経験を積んでから
やり始めようと思います。
>>633 そろそろ髪の毛1本づつとか送って来たりして(w
再帰はVBで使えます。 削除判定のときじゃない? 簡単な塗りつぶしのアルゴリズムと一緒。
テトリスって確か一度ブロックを回転してみて、ブロックが重なっていたり壁からはみ出ていたら元に戻すっていう方法でやるんですよね。 配列変数で仮想画面を作ってそれで判定する・・・であってますか? いや、というより本当に聞きたいのはブロックの回転の仕方なんです。 ■ ■ → ■ ■■ ■■■ と回転させる時、みなさんはどのようにして回転させていますか? やはり変数に(2次元配列変数) │012 ┼── 0│000 1│001 2│111 などと形を記録しておいて、回転の度に該当する変数を呼び出しているのでしょうか。 ていうか以前にそこらへんをすべてむりやり計算して回転させようとして無茶苦茶になって挫折したんです。 うーん、上手く説明できない。これでわかるかな?
全パターン用意しておけばいいのでは?
回転の処理が分からないなら、あらかじめ全パターンを配列にいれておくのがよいかと。 計算して回転させるのも「むりやり」じゃなくてフツーだよ。 まぁ、やるなら最初にプログラム内で回転させたパターンを全部生成して、それを 使うのが一番良いと思うが。
そんなことより
>>1 よ、
VBでDirectX使ってみたら?
たしかDirectX7はVBからでも使えたような・・・。
誰も知ってる人おらんのかな・・・ 俺も詳しく知らないのでほっとけば誰かの講釈が入るだろうと思って たんだけれど・・・・ MODで名前あってるか知らないけど、確かCSならHL(ハーフライフ) 持ってればただでゲームできるという代物だったよーな。 つまりHLのプログラムを利用したゲームだって事だと思う。 クォーク(クエイク?)とかアンリアルとかもにたようなモノだと どこかで読んだ記憶がアリ。なんとかエンジンって言うのかな。 俺はこれくらいしかしりません。
>>1 よ、
>>640 の言うようになるかどうかはお前次第だ。
別に移行のタイミングなんて関係ないから気にするな。
>>641 modは知ってるけど、googleで検索すればいくらでも解説はあるから無視した。
ただ、音楽の方のmodばかりヒットするから、マイナス検索使わないと面倒だが。
そもそもこのスレに関係ないし。
そうなんですか・・・・ ゲーム作りに興味ありそうなんで、 俺が知ってる事を言ってみただけなんですが すいませんでした。
現在テトリス作成中であります。
体調悪くて、書き込みできませんでした。
>>635 お、再帰使えますか?実験してみます。
あー、囲まれた領域を塗りつぶすアルゴリズムですか。
>>636 僕も回転の仕方で詰まりました(w
やっぱ回転後の配列を用意したほうがいいのかなぁと。
>>637 そうなんですよね。
>>638 うむぅ。そうしてみようかと思います。
>>639 DirectXをVBから使う方法を解説した本が一応手元にあるんですが、
GDIを使って処理する方が勉強になるかと思いまして。
>>640 読んでみようと思います…
>>641 あー、そういえばグラフィックを入れ替えるデータを
配布している方がいらっしゃいますね。
あれって、自分でデータを解析されているんでしょうか。
>>642 どもです。気楽に逝こうと思います。
>>643 お、回転のパターンが載ってますね。
じっくり見てみます。
>>644 やっぱ有名なんですね。
>>645 おかげ様で、また新たな単語を知る事ができました。
興味があるので、検索してみようと思います。
649 :
デフォルトの名無しさん :01/12/12 17:19
>>648 遊んでみました。イイ!
いちばん上までブロックが積もっても、ゲームオーバにならない・・・。
ランタイムエラーとやらが出て、終了してしまいます。
俺のテトリスからコピペ。プレゼントfor誰か。 private static int[][] pattern = { {}, { 0x00f0, 0x4444, 0x00f0, 0x4444 }, // 棒 { 0x0660, 0x0660, 0x0660, 0x0660 }, // □ { 0x0e40, 0x4640, 0x4e00, 0x4c40 }, // 凸 { 0x0e80, 0x4460, 0x2e00, 0xc440 }, // L { 0x0e20, 0x6440, 0x8e00, 0x44c0 }, // 逆L { 0x0c60, 0x2640, 0x0c60, 0x2640 }, // Z { 0x06c0, 0x8c40, 0x06c0, 0x8c40 }, // 逆Z };
>>648 (・∀・)イイ!!VBはよくわからんが、とりあえず指摘。
>>649 さんのに加えて、回転する時の軸が変(つーか普通のと違う)から、ちょっと違和感あり。
回転のほうは、壁にめり込む場合は回転できないようにするのかな??
あまり役に立てなくてスマソ。
1、頑張れよ~~
テトリスと言えば、漏れはやはりセガのアーケード版だな。 同時期に出た各社のテトリス(アーケードでもATARI版とかあった)の中では セガのが一番良かった。落下スピードが反則的に速いかわりに、地面について からくっつくまでの時間がとても長い。 BPSのパソコン版はイマイチ。
654 :
デフォルトの名無しさん :01/12/13 04:46
>>636 ぶっちゃけ、回転パターン用意した方が速い(両方の意味で)けど、
一応、計算で求めれ無い事も無い。
│012
┼──―
0│000
1│001
2│111
↑を配列変数「block」として、
for(x=0;x<3;x++)
for(y=0;y<3;y++)
work[y][2-x] = block[x][y];
ってーやれば、一応workの中に回転後のブロックが出来る(多分)
もちろん、
│0123
┼──――
0│0010
1│0010
2│0010
3|0010
なんつー場合は、
for(x=0;x<4;x++)
for(y=0;y<4;y++)
work[y][3-x] = block[x][y];
っつー事になるわけだけどもね。
まぁ、よっぽどカラフルなテトリス(個々のブロックに色がついている)でも
作ろうとしない限り必要ねーんだけど。
俺だったら
>>650 使うね。
http://www.geocities.co.jp/SiliconValley/2530/tetris2.zip ↑テトリス、次UPしました。
今のところ問題点としては
・壁に埋まる
・レベルが上がらない(早くならない)
などです。
>>649 どもども。
一番上まであがったら座標が-1になるときがあって、それで
エラーを吐いていたようです。応急処理的に、MsgBoxを出してみました。
ご報告、ありがとうございます。
>>650 僕もそういう感じで処理したかったんですが、
VBだと冗長な処理になってしまいます…。
宣言時に初期化できないもんでしょうか。
>>651 ういー。がんばります。
>>652 さんのおっしゃる通り、いろいろ回転が違うみたいですね。
ゲームボーイでさっきやりましたが、
>>643 さんにリンクして頂いた
回転と違っていました。
って、
>>652 さんのページ、すごいですね(藁
>>653 あー、セガのってサルのやつですですよね。
僕は当時お小遣いが少なくてほとんどできませんでした…。
なんかOL風の人が、異様な形相ですごい速度を
さばいてたのを見ました。
テトリスってパソコン版あったんですか?知らなかった。
>>654 回転、計算でもとめれるんですねー。
僕は回転の仕方を考えていたら頭がよじれそうになりました。
やっぱ配列に回転後のデータを格納しておいた方が速いのでしょうか。
すげー いつのまにかテトリス開発に移ってたのかw
(´-`).。oO(なんでみんな既存のゲームに似せようとするんだろ...)
>>657 ブロック崩し、テトリス、パックマン、リバーシ(オセロ)、ぷよぷよ、インベーダー……
このあたりはゲームプログラミング初心者に最適な題材だからだ。
ゲーム会社の研修の課題にも使われるぞ(マジで)。
テトリス、プレイさせて頂きました。 操作レスポンス非常に良好ですが、落としたブロックが固まる前に 次のブロックを回転させようとして大変な状態になること多数。 下キーで落とした時にはすぐに固まって次に行って良いかと思いました。 あと、揃えた列が消える時に画像効果が欲しいですね。 それと、この際タイトルに 「貴様ら! 落ちてくるブロック揃えて消してください」なんてどうかと。
シンプルに、 『貴様ら!ブロックをそろえてください』でいいんじゃない?
ストレートに 貴様ら!テトリス作ったからプレイしてください でどう?
「貴様ら!ブロック崩し作るので見てください (662)」 ↓ 「貴様ら!ブロック消し作るので見てください (3)」
>>662 の
>けしって何
の部分が
「こけしって何」に見えた俺は逝ってよし?
>>663 (´-`).。oO(逝かないで・・・)
何が何でも罵倒語と丁寧語をスレタイトルに同居させんといかんのだな
電波ども、ドキュソを
670 :
デフォルトの名無しさん :01/12/14 20:17
ああ、努力って報われるのね。 このスレッド見てて、そう思った。 俺も頑張ろう。
673 :
デフォルトの名無しさん :01/12/15 03:02
スペースキーで回転します。 逆回転は今の所ありません…
貴方様ドモ!!で。
貴様方!!
今日は風邪気味で休憩してました。
最近、更新回数が減ったせいか、酸化してくださるかたも
減っていったような…
そろそろブロック崩しの続きでも作ろうと思います。
>>675 うんちを取って、終了してしまいました(藁
>>676 今辞書引いたところ、ドモはラよりも駄目みたいです…
>>677 方…(・∀・)イイ
けど、
>>1 =ヒッキー@プログラミング は、ム板に立てて正解だったなぁ…
とつくづくおもふ。
臭蚊屁の……
次スレは「貴様方!C言語勉強するので見てください」だな(藁
>>679 クサカベさんって、煽り専門のように見えるのですが
気のせいでしょうか。
この発言に「はつみみです。」っていうレスついたりして(藁
>>680 おー、第2段が(w
さっそくご挨拶に逝きました。
対抗age
体調がすこぶる悪いです。 開発停滞してる間にお客さんが減ってしまった…。 VCにブロック崩しを移植しようと思っているんですが、 どのようにして画像を表示したら良いか模索中です。 STATICでCreateWindowを実行したらいいんでしょうか。 とりあえずいろいろ実験します。
683 :
デフォルトの名無しさん :01/12/17 21:22
がんばる人は、好きです。
>>682 1. メインウィンドウと同じサイズのビットマップを用意しておく(バックバッファ)
2. ゲームではバックバッファにデータを書き込む
3. 一通り書き終わったら、バックバッファをメインウィンドウに BitBlt して貼り付ける。
こんなものでいいと思うが。普通の Windows アプリケーションでは WM_PAINT メッセージに対応して
描画するんだが、ゲームだったら無視して適当なタイミングで BitBlt() しても構わんでしょ。
見てる人は見てる( ̄ー ̄)
http://www.geocities.co.jp/SiliconValley/2530/cblock.html ↑VC編始めました。いろんなところのソースを見ながら書きました。
ちゃんと動いてないかもしれません…。
タイマーとかデバイスコンテキストとか破棄されてなかったらごめんなさい。
>>683 ケコーンしましょう。
>>684 今の所、バックバッファは用意しませんでした。
WM_PAINTのところ何も書いてないんですが、いいんでしょうか。
BeginPaint・EndPaintの役割が、まだはっきりつかめてなかったりします(w
>>685 おぉ、ありがとうございます。
見てくださるかたが、もしいらっしゃらなかったらちょっと悲しいです。
※肩こりで頭が痛くて、変な事書いてるかもしれません…。ごめんなさい。
>>VBテトリス
テトリスの上カーソルキー、使う予定がないなら回転をアサインしてほしいなぁ。
そうすると片手で遊べるんだけど(w
>>VCブロック崩し
描画は
>>684 の方法でOKでしょう。現状のディスプレイDCに直接BitBltだと
そのうちチラツキが気になってくるハズ。
で、画像の表示は今はDDB使ってるけどそのうちDIBを使うことになると思う。
DIBならメモリに直接イメージを描けるからマスクパターンも要らなくなるしね。
WM_PAINTは処理しない場合でもDefWindowProc()が適当に処理してくれるから気にしなくても大丈夫。
BeginPaint()とEndPaint()はWM_PAINT内では
必ず呼ぶということだけとりあえず覚えておけばOK。
とりあえずこんだけ。
>>686 まず *.aps, *.plg, *.opt, *.ncb はソースアーカイブから削除ね。他の環境に持っていっても、役に
立たんから。
ReleaseDC(), DeleteDC() の使い方を間違えてるな。
CreateCompatibleDC() などで作ったメモリデバイスコンテクストは、DeleteDC() で解放する。
GetDC() や GetWindowDC() で取得したデバイスコンテクストは ReleaseDC() で解放する。
混同しないよう。
グローバル変数を使いすぎだが、それはともかくグローバル変数の宣言はヘッダにまとめておく。
extern を実装側に書くと、不一致が生じたときに検出できないで、致命的なバグになるぞ。逆に
外に見せる必要が無い関数/変数は static リンケージにして、同一ファイルからのみアクセスで
きるようにしておくのが身のためです。
画面サイズのこととか、エラーチェックしてない点とか、わりとツッコミどころ満載だが、とりあえず気
になったとこだけサクッと書き直してみた。
http://members.tripod.co.jp/lambda_func/cblock01_x.zip
書き直すなよ。
とりあえずCで書くなら.cppじゃなくて.cにしとけ。
>>689 別に、俺が書いたコードをそのまま使えとは言わんよ。サンプルとして参照したければ
すればいいし、したくなきゃ捨てときゃ良いだけ。
>>689 漏れもそう思って昨日言おうとしたけど、1が読んだら参考になると思ってやめた。
1ならそれをうまく吸収できそうだし。
http://www.geocities.co.jp/SiliconValley/2530/tetris6.zip ↑テトリス修正しました。変更点は
・上キーで回転できるようにした
・タイトル画面とゲームオーバーの画面で終了したら、正常にアンロードされない問題の修正
・横キーとスペースキーを同時に押したら壁に埋まってしまう現象の修正
です。
>>687 上キーで回転できるようにしました。
描画の時、見える部分を直接いじるとやっぱチラついてくるもんなんですね。
DIB、検索してみました。便利そうですねー。
でもDIBに対して行うBitBltのようなものを自分で実装しないといけないんでしょうか。
マスクデータが要らないのはいいですね。
白なら転送しない…みたいに書けばいいんでしょうか。
>>BeginPaint()とEndPaint()はWM_PAINT内では必ず呼ぶということだけとりあえず覚えておけばOK
ほおほお。了解しました。
>>688 >>*.aps, *.plg, *.opt, *.ncb はソースアーカイブから削除ね
やっぱいらないデータもあるんですね…。よく調べずに添付してしまいました(w
ほおほお、新たに作成したDCはDeleteDCで、
既にあるDCを取得した場合はReleaseDCを使えばいいんですね。覚えます。
>>グローバル変数の宣言はヘッダにまとめておく
>>外に見せる必要が無い関数/変数は static リンケージに
そうしてみます。externはなるべく使わないようにします…
書き直して頂いた分、見させてもらいました。
書き方、すごく参考になりました。ありがとうございます。
StdAfxって、最初に1回だけコンパイルする分ですよね?
あと、#if defined のところがよく分かりませんでした…
>>689 わざわざ労力を使って書き直して頂けるというのは大変嬉しいです。
>>690 .cにしたら問題が出そうな気がしたので.cppにしました。
>>691 いえいえ、捨てるなんて㌧でもない。
>>692 吸収するべくがんばります。
>>693 > StdAfxって、最初に1回だけコンパイルする分ですよね?
プリコンパイルヘッダのこと?
Windows アプリケーションだと <windows.h> やら何やらヘッダファイルを読み込むわけだが、
これはかなりサイズが大きくて、解析に時間がかかる。そこで <windows.h> など良く使うヘッ
ダファイルを
1 あらかじめ解析して、コンパイラがすぐに使える形 (*.pch) に変換しておく
2 *.c, *.cpp をコンパイルするときには毎回 <windows.h> などを解析する代わりに、1 で作っ
たコンパイル済みヘッダ (*.pch) を使う
ことで、コンパイルの速度を上げられる。小細工の類だが、知っておいて損は無いやね。
> あと、#if defined のところがよく分かりませんでした…
あれは通称コードガードという技法で、二回以上同じヘッダファイルを #include したときに発生
するトラブルを避けるためにつけておく。このぐらいの小規模なプログラムだと問題ないんだが、
規模が大きくなってくると
ヘッダ A がヘッダ X を #include
ヘッダ B がヘッダ X を #include
main.cpp がヘッダ A, B を #include (X は都合二回 #include される)
みたいな状態が発生してコンパイルに支障が出る可能性がある。
>>695 > > あと、#if defined のところがよく分かりませんでした…
> あれは通称コードガードという技法で、
そういう通称あるの? いや一般的になんと呼ばれてるのか知らんのだけど。
>>694 >>686 のソースはまるっきりCだろ、コメント以外は。
>>688 のもほぼC。
C++じゃなきゃ通らないのはごく一部、structをtypedefしてないとか参照渡し
とか名無しの引数くらい。
>上キーで回転できるようにしました。 サンクス。これでお気楽に遊べるようになったよヽ(´ー`)ノ >描画の時、見える部分を直接いじるとやっぱチラついてくるもんなんですね。 バックバッファを使えば目に見えるBitBltは一回で済むからチラつかなくはなるよ。 あと、CreateDIBSection()で取得したDIBなら普通にBitBltできるよ。 他の方法はちょっとわかんない・・・これしか使ったことないもんで(;´Д`) まあDIBよりもバックバッファを実装する方が先だな。実装方法はわかる? >白なら転送しない…みたいに書けばいいんでしょうか。 非パレットでのマスクならそうだね。パレットモードなら0番を描画しないとか。 やろうと思えばアルファプレーンを用意しての半透明描画だって可能。
ぷよぷよぱくったことあるよ。 画像もぷよぷよ
バグ報告。 ブロックが接地してからの挙動がおかしい。 具体的には、ブロックが接地したあとの猶予時間にブロックを移動させたり 回転させたりすると変な動作をしてる。 これは速度が速くなってくると頻発するようになる。 あと、Lineが100あたりになったとき実行字エラーの'9'(インデックスが有効範囲外)が 発生してプログラムが強制終了。 速度が遅いときにはほとんど問題ないみたいなので多分、高速化のロジックあたりに 問題があるんだと思う。 でもこのバグが解消してもこれ以上はスピードが速すぎてゲームとして 成立しなさそうな気がする。このどうしようもなくなってくる感じは 任天堂の初代のゲームボーイ版を彷彿とさせるものがある(w
前から思ってたんですけど、
そこらへんのページやVectorにも僕の作ったテトリス、私の作ったテトリス、
俺の作った対戦型テトリスとかいろいろ置いてありますが、テトリスって勝手に作って公開しても別にいいんですか?
シュアウェアとかにしても構わないんですか?(するつもりないけど…)
>>637 >>638 >>646 >>654 教えていただいてありがとうございました。
学校の期末試験期間中現実逃避して書き込んだんで中々レスする機会がありませんでした。
プログラミングをはじめて1~2ヶ月目の挫折を1年経った今、見事にはらすことができました。
あの時の「VisualBasic6.0評価版」ではなく、ポケットコンピューター「PC-G850S」で。
>>701 テトリスの名前を使うのは商標権の侵害で確実にクロ、
名前を使わなくても、著作権の同一性保持権の侵害でグレーと思われる。
とりあえず、フリーソフトまたはシェアウェアでテトリスを公開していて、
著作権者のThe Tetris Companyに警告されたケースは結構あるらしい。
でも、みんな次から次へと作るから全然追いついてなさそうだ。
ライセンスを正規に獲得したければこの辺か。
ttp://www.tetris.com/corporate/ 実際どういう手続きになるのかは知らない。そんな感じ。
警告きてから、考えよう
>>702 やっぱり駄目ですか・・・残念
Googleで「自作 テトリス」で検索すると2000以上もの件数が…
これでは全然追いつけそうにないですね。さらに増えていくし…
しかしこの中には犯罪とも何とも思わず作っている人も多いんだろうなぁ。
>>703 ホームページにメールアドレスを書かない主義なので、
警告するときは直接電話がかかってくるんだろうか。それともそのままタイー・・・
その辺よく分からないんですよね。 普通のゲームは、いわゆるクローンは別にクロではないそうですけど、 テトリスの場合は(テトリスカンパニー側は)かなり厳しいですね。 どこまで似てるのはよくてどこからはダメなのか、というのはよくわからんです。
まあ、テトリスっぽくなければOKでしょう(謎
下から上にブロック発射すればよい。 ブロック崩しゲーとしてはそっちの方がなんとなく正しい気がする。 ばきゅんばきゅんって感じで
実質、テトリスを勝手に作って公開しても問題ないと思う。 テトリスのシステム自体は「アイデア」だから、よほどゲームとしての 類似性がない限り法的にどうこうできないと予想される。 ブロック崩しだって同じでしょ?
うむ。その辺もあってグレーとした。判例があるわけではないしな。 たぶん裁判になればパックマン事件みたく 映画の著作物云々でウダウダやるのだろうが。 ちと著作権のありかたについて考えさせられる事例ではある。 アイデアとしての落ちものパズルについては カシオの特許で問題になってたが、その後どうなったのだろう。
商標の問題だけじゃないんだ。
『テトリス』って名前使わなきゃ良いと思ってたよ。
オセロはダメでもリバーシなら可みたいな。
著作権よりも
>>709 が言うように特許じゃないの?
漏れもC勉強したいけど、コンパイラが…… バイト中。つーか月1k円の小遣いって(藁
http://www.geocities.co.jp/SiliconValley/2530/cblock.html ↑ブロック崩し(VC)、次UPしました。
自機が動かせるようになりました。
>>695 プリコンパイルヘッダっていうんですね。参考になります。
StdAfxを作っておくと、たしかにコンパイルが早くなりました。
コードガードのところ、よくみたら「#if defined」ではなくて、
「#if !defined」になってました…。ようやく機能が理解できました(藁
>>697 >>「
>>686 のソースはまるっきりCだろ、コメント以外は。」
たしかにそうかも…
>>C++じゃなきゃ通らないのはごく一部、structをtypedefしてないとか参照渡し
>>とか名無しの引数くらい。
ほおほお。typedefしなくてもstructって毎回書かなくていいんですね。
…って、いろいろ便利そうなので、cppのままにしときます。
ありがとうございます。
>>698 今回UPした分、バックバッファ使ってないせいか、やはりチラつきました。
>>CreateDIBSection()で取得したDIBなら普通にBitBltできるよ。
おお、それは便利そうですねー。一回実験してみます。
>>バックバッファを実装する方が先だな。実装方法はわかる?
ん~、どうでしょうか。できるだけやってみます。
>>アルファプレーンを用意しての半透明描画だって可能。
半透明ですかー。やってみたいなぁ。
半透明の演算って、加算でやるんでしょうか?
>>699 (・∀・)イイ
PC版ぷよぷよから画像抜き出したりしたら面白そうですね。
>>700 ご報告ありがとうございます。
>>ブロックが接地してからの挙動がおかしい。
>>これは速度が速くなってくると頻発するようになる。
速度が速くなるまでやってみました。…たしかにおかしいです。
>>Lineが100あたりになったとき実行字エラーの'9'が発生してプログラムが強制終了。
一度に2マス以上落ちて、配列の要素を超えてしまったんではないかと…
直します。
>>でもこのバグが解消してもこれ以上はスピードが速すぎて…
たしかに。レベル上がるごとに落ちる速度に掛け算してるのがまずかったと思います…。
ゲームボーイ版テトリスで一番長くプレイしたので、影響が出たのかもしれません(藁
>>701 おお、ポケコンですかー。ウチにあるのは5行ほどしか表示できないので、
極端に狭いテトリスしかできません(藁
>>702 テトリスのライセンスのページってあるんですね。
最終的にロシア人の作者にお金が逝くのだろうか。
>>707 発射…(藁
テトリスとは違うゲームが出来上がりそうですね。
>>708 たしかにブロック崩しもタイトーにお金払わなければならんのでは…
という感じがします。商用でなければいいんでしょうか。
>>709 映画とゲームを比較して裁判で争うのっておかしいですよね。
たしかに最近のFFはまさに映画ですが。
(裁判で今後認めさせる為に無理矢理あのようなゲームにしたのでは…)
カシオって、落ち物パズルの特許もってたんですか?
>>710 オセロって日本人が考えたんでしたっけ。
>>711 コンパイラはフリーでありますよ。
ボーランドのTurboC++とかDownloadできるみたいです。
GUIのツール類は無いみたいですが…
>>698 DIB は描画時にデバイスコンテクストにあわせて変換が入るから、遅くないか?
>>714 DDBに比べれば確かに遅いかもしれないけど
最近のマシンなら十分に使い物になる。60fpsくらい全然余裕(解像度にもよると思うけど)。
バリバリに画面描画を行うならDirectXがいいかもしれないけど
たいていはDIB(っていうか、旧WinG)で間に合うと思う。
>>713 お言葉はありがたいけど……
フリーであるんだけどね、通信速度が……WinUpDateで精一杯(藁
ISDN?いやいや、56kbpsしか出ませんよ(泣
通信費か、もしくは……
小遣1k円…… ノート1冊0.1k円…… がんばる!
>>717 とりあえずCの勉強ならLSI-Cの試食版でもやってみれば?
アーカイブで400Kだから全然余裕だろ?
>>713 けど6行あるうちの4行しか使ってません。というか使えません。
大きくすると描画に時間がかかってゲームにならないんです。
しかも教育用ポケコンの仕様かどうかわかりませんが、横幅が普通のよりせまいんです。
だから雑誌に載っているプログラムを打ち込んでもはしっこが見えない・・・(泣
722 :
デフォルトの名無しさん :01/12/21 11:54
>>720 アリガトウ♥
コレから落としてきます。 ねこでも――で便供養中です。
723 :
デフォルトの名無しさん :01/12/21 11:54
スマソ。 /便供養中/勉強中/鬱;
725 :
デフォルトの名無しさん :01/12/21 12:10
a 宣伝ですか? g とりあえず、あぼ~んっと。 e あげとこうっと。
726 :
デフォルトの名無しさん :01/12/21 12:13
かちゅ~しゃでみると
>>721 のうごきがおかすぃ、、。
P/ECEをやれYO! OK?
>>728 とりあえず、コンパイラの警告レベルを 4 にしましょう。
if (x = 0)
みたいな、ありがちなバグがいくつも。
>>713 へカーソル合わせると700~713が順不同に表示されるんです。
うちだけですか?
失礼!!727でした。
>>713 という番号がおかしいみたい。なぜ?
>>728 うちの環境でVer.3を動かしたところ、
動きがもんの凄いスローで、
右側のスコア欄に恐らく該当する部分の表示が
やばいことになっています。
ひさしぶりに見たらまた盛り上がってたみたいだな。
>>714 確かにDIBはピクセルフォーマット変換が入って画面へのBitBltは遅くなるが、
DDBだとスプライト描画が足を引っ張るから、大抵のゲームでは問題にならな
いよ。DDBで多重スクロールなんてやろうとしたら鬱になるかと。
あと、DIBもデスクトップのピクセルフォーマットと同じフォーマットで作成
すると速くなるよ。それじゃDIBの意味ないんだけどさ。DirectDraw使った方が
速い。
windowsプログラミングってやったこと無いんだけど、 これから勉強しようとするときは、サンプルとか見て この関数なんな?とか、この型はいったい何者?って思っても とりあえずこうするもんだ、とかでOKなの? やってみたいんだけど、WinMainの引数からして意味不明・・・。 スレ違いだったら、すいません。
>>735 とりあえず「プログラミング Windows 第五版」を買って読みましょう。適当にコードを書くと、
動くところまでたどり着かんで死ぬ。
738 :
デフォルトの名無しさん :01/12/22 10:41
>>731-732 バージョンは?ksockのバージョンは?
かちゅをいれなおしてみたら?
それかログを削除 -> 取得しなおすとか
>>738 レス、サンキュさんです。後者で直らないので入れなおしてみます。
名スレ汚してすまんす……。
>>736 .737
勉強してみることにします。
同じくスレ汚してすいません。
>>734 16→16より24→16のほうが速かったりするらしいけど
ついでに言うと、ドライバによって全然速度違ったり。 3dlabsのドライバはめちゃくちゃ速いんだか遅いんだかどっちだったか忘れたけど 極端に違った記憶がある。
DIB の利点として挙げられているのは、要するに 「ピクセルを直接操作できる」 だけど、これってメモリデバイスコンテクストに対して GDI 関数を呼ぶよりも速いからお薦め、 という意味? DDB でもメモリデバイスコンテクストを作って SelectBitmapすれば SetPixel(), GetPixcel() でピクセル操作自体は可能だよね。
>>743 ピクセル操作に関数呼んでたら遅くなるじゃん…アドレス指定してゴリゴリ出来る
ところがミソなんじゃない?あとはピクセルフォーマット決められるとか。
漏れはメモリ領域取ってStretchDIBitsとか使うけど。パレット付きとか使うとき楽。
上限反転も気にしないで済むし。
ピクミン操作は、どうよです!
>>744 上下は高さをマイナスにすればいいんだよ。ヘルプにも書いてあったような。
SetPixelはDIBの直接アクセスに比べると遥かに遅いです。
少なくとも100倍は差があるかと。MMXも使えないし。
>>747 流石にそれは知ってますよ。説明不足だったかな。スマ
個人的にはリソース不足も関係なく使えてウマーなのでStretchDIBitsを使ってます。
DirectDrawSurfaceだと9x系でもリソース消費が少なくて(゚д゚)ウマー
DirectDrawSurfaceってGDI関数使っての描画できないんだっけ? TrueTypeつかって文字書きたいときなんかどうすんの?
>>750 IDirectDrawSurface7::GetDC() なんかでデバイスコンテクスト拾える。DirectX 8 だとダメだが。
仮に使えないとしてもGDI関数使えないのはDIBもいっしょだから条件は同じ
そろそろ体がやばいです(w
>>729 う~ん、なんか僕にはなじめそうにない機種なのでやめときます…
あの韓国の携帯ゲーム機がちょっと欲しかったりします。
>>730 してみました。…イパーイ警告でました(w
ありがとうございます。
>>731-732 うーん、なんででしょうか。リンクが多すぎるのかな。
>>733 コードが悪かったのかもしれません…。
直したいと思いますが原因の追求をどうやればいいのか…
>>734 やっぱスプライトの処理でコマゴマとBitbltしたら遅そうですねー。
スト2の地面の描画とか真似しようと思ってもDDBだったら無理なんでしょうか。
DirectXってやっぱ覚えたほうがいいですね。
>>735 僕もWinMainがサパーリわかりませんが、初めてCのコード書いた時の
Mainと同じように把握しています。
>>755 DIB という単語が多義的に使われていて混乱してる気がするな。
ほんとに素の DIB だと SetDIBitmsToDevice(), StretchDIBits() で描画することしか出来ない。
GDI 関数を使いたければ CreateDIBSection() で DIB セクションを作成する必要がある。
ということで OK?
ついでに DDB, DIB, DirectDrawSurface の得失
DDB
+ GDI 関数が使える
+ BitBlt() が高速
- ピクセル操作は Win32 API 呼び出しが絡むので遅い
(単に API がどうこうというだけでなく、データをビデオメモリ上に持ってるんじゃない?)
DIB
- GDI 関数が使えない(ただし CreateDIBSection で補える)
- BitBlt() はやや遅い
+ ピクセル操作はポインタ経由で行えるので高速
+ ピクセルフォーマットを自分で決められる
DirectDrawSurface
+ GDI 関数が使える (ただしピクセル操作よりは遅くなる)
+ BitBlt() が高速
+ 標準で透過処理などをサポートしている
+ ピクセル操作はポインタ経由で行えるので高速
(ただしシステムメモリにサーフェイスを作った場合、ビデオメモリに作ると操作は逆に遅くなる)
- ピクセルフォーマットはデバイス依存になる
というところで。
良くも悪くもシステムが面倒を全部見てくれる DDB, ハードウェアが直接見える DirectDrawSurface,
その中間に位置する DIB という感じ。
結局、
>>752 がDIBセクションを知らなかっただけということじゃないのか?
そうじゃないなら言葉足らず。
VBのソースをひたすらVC用に書き直してたら、
何を書いているのかわからなくなりました…。鬱だ
>>756 詳細なご説明ありがとうございます。
用途によって使い分けるのがいいんですね。
ゲームを作るときにDIBを使う…という意味がはっきりしました。
逆に、絵を数枚だけ表示したい時などはDDBの方がよさそうですね。
>>758 ガンバレ
DIBってデバイスに依存しないビットマップって意味だから,一旦DDBにコピーして
おいてから描画すると高速になる事があって(゚д゚)ウマーだね。面倒くさいけど(w
ま,細かいことはこれから覚えていけばいい事だし,とにかく作ってみて完成させる。
コレが一番。やればやっただけ効果あるし,やる気ある奴は伸びるのも早いよ。
>>758 前のほうでちょっと書いたんだけど、Win3.1の頃にはWinGっていう規格があった。
最後のGっていうのはGameの略。つまりゲームアプリのために作られたもの
なんだけど、それがWin32になってAPIとして取り込まれたものがDIBセクション。
DIBとDIBセクションは一応別物として理解していてくれ。
DIBセクションに関してはCreateDIBSectionで検索すればすぐ出てくる。
ゲーム作るならDDBなんて無視していいと思うけどな。 CreateDIBSectionかDirectDrawの二択。 とりあえず、32bitカラーのCreateDIBSectionがおすすめ。 アライメントとかの問題も気にする必要ないから初心者にも扱いが楽。 CreateDIBSectionで速度的に問題があれば、DirectDrawに手を出してみるのが いいかと。ただし、IA32についてちゃんと理解していなければ、ちっとも速くな らないから注意。
>>761 >というのは、DDBにいったんBitBltするんでしょうか?
そうそう。表示デバイスとコンパチブルなビットマップを作ってBltするんだよ。
CreateCompatibleBitmapでMSDN探せば出てくるよ。
書き換えのチラツキ防止策にも使われたりしますが,ゲームじゃあまり使わ
れないから,気にしなくてもいいかも(w
正直ウ○○でそう。(自粛 なぜかネットにつなぐとしたくなるんだよ。 フレッツじゃないし、56kbps(前もこんな人いたような)だからつらい。 まぁ1がんばれ。
その後 ウ●●はどうなった? じゃなくて1さん元気?
1さんは何処へ逝ってしまったんですか~?
養生せえ、養生せえ。 元気の出る波動送っときます。 も~~~~~~~~~~~~~~~~ん… も~~~~~~~~~~~~~~~~ん…
保守age そろそろ復帰します…。
>養生せえ、養生せえ。 えっ、何かの搬入ですか? それとも、電源工事?
770 :
デフォルトの名無しさん :02/01/02 19:08
ブロックくずしってさ64kbyteプログラミングに向いてないか? って思うんだ
>770もっと減らせると思う。やってみれば?
>>1 あけましておめでてーな。
本年もよろしくお願いいたしやがります。
正月どこにも行かなかった身としては、 書き込みが少ないのが悲しい。 ひまつぶし しようと思うが カキコ無し 圖
数日間、ゲームやってました…放置してスミマセンでした。
>>762 ういー。了解しました。
IA32って、どういうのでしょう?Itaniumの仲間ですか?
>>763 ほおほ。参考になります。
コンパチブルなBITMAPは一応作ることができたのですが、
普通にBITMAPを作ると白黒になってしまうようなのですが、
解決策はあるのでしょうか?
(MSDNの内容がイマイチ読み取れませんでした…)
>>764 漏れもテンション上がるとウ○○がしたくなります…
あとコーヒー飲んだ後。
がんばります~。
>>765 若干元気になりました。
>>766 ただいまー。
また、そちらのスレに顔出しマス…。
>>767 なんか耳鳴りがすると思ったら波動を送ってくださってたんですね(藁
>>768 ん?
>>770 小さくできそうですねー。
でもwindows.hをインクルードするだけで重くなるような…
>>771 もっと減らせますか?んんん。
>>772 今年も夜露氏苦おねげーします。
>>773 歌丸師匠!?
もっと正月もがんばったら良かったかと思っています。
>>774 IA32はi386~Pen4(PenPro含む)
インテル・アーキテクチャ・32bit
>>774 > でもwindows.hをインクルードするだけで重くなるような…
ヘッダと実行ファイルのサイズは関係ないって。
ただ CRT に関しては libc.lib (libcmt.lib) をスタティックリンクして使うか msvcrt.dll を使うかでサイズに
差が出る。プロジェクトの設定から [C/C++] - [コード生成] - [使用するランタイムライブラリ] で選択ね。
>>774 >普通にBITMAPを作ると白黒になってしまうようなのですが、
コンパチDC作ってビットマップ作成だったかも知れん。スマソ
ここら辺ややこしいんだよな…
779 :
債務不履行の名無しさん :02/01/06 14:58
おおお!
>>1 =
>>774 =ヒッキー@プログラミング がageている!
いつもsageなのになぁ。
今日、某新聞の求人広告に………があってつい見にきてしまった。
保守上げだ。
なんか漏れ1さんと似てるなぁ…。 漏れも高校の時CとVB勉強してたよ。 今はC++だけど。 年齢もかなり近い。 1さんは漏れの1つ年上みたいだね。 しかも漏れもヒッキーでゲーム作ってたりする。 Cで書かれてるブロック崩しやらせてもらったけど、 なかなかいい感じだね。 1つ注文すると、最大化ボタンはいらないと思うよ。 CreateWindow関数のWS_OVERLAPPEDWINDOW ってのを変更すれば最大化ボタンを消せるYO! お互い頑張ろうね!
781 :
ぴくみん :02/01/07 23:41
がんばれ がんばれ
だめだ… 一回休むと続けづらくなってきました… とりあえずVC起動
てすと
>>782 そういうときはやらんでよし。
他に興味あるプログラムを作るか、
遊ぶかダラけるかをおすすめします。
とりあえず、やる気でないときは私はそうしてます。
やる気ってコントロールするのが難しいんだよね
785 :
デフォルトの名無しさん :02/01/11 04:37
保守age
786 :
デフォルトの名無しさん :02/01/11 13:17
モチベーションは大事だよね。 仕事でも、趣味でも、勉強でも。 がんばれage.
VCに移ったんだ
>>786 漏れはマスターベーションの方が大事だと思うな。
ネタだとしたらつまらんし、本気だとしたらアホだな。
何気に 788 != 790 だな
>>782 そういう時は別の言語触ってみたら?
J++も入ってるんでしょ? 他にもDelphi6Personalとかも無料だし
>>788 =790
おいおい何怒ってるんだよ。(笑)
実は.
>>1 が自作自演でストレス解消中だったりして・・・。
掃除機、錆吸ぃ。
>>1 さぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ♥ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ♥ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ(以下略
797 :
デフォルトの名無しさん :02/01/16 13:56
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|
>>1 はどこ!! |
|_________|
∧∧ ||
( ゚д゚) ||
/ づΦ
あまりおすすめできない擦れたい、形で始まった子のスレの 勢いはもう \0 どうぜん…(w
800 :
デフォルトの名無しさん :02/01/16 22:12
やる気・向上心のあるプログラミング初心者募集!
(;´Д`)
>>800 プログラミングは (それほど) 初心者でもないが、ゲームプログラミングはド素人ってあたりで
どうよ? ひとつシューティングゲームでも書いてみたいなと思ってるんだが、観客いた方が気
合入るし。
>>802 俺は全然構わないと思うよ。
>>1 もプログラミング多少できたみたいだし。
804 :
デフォルトの名無しさん :02/01/20 21:08
♥ a g e ♥
ビットマップが白黒になるのは CreateCompatibleBitmap の引数のHDCに入れるものが間違ってるからだったような・・・ hWnd = 「メインウインドウのhWnd」; hdc = GetDC(hWnd); CreateCompatibleBitmap(hdc, width, height); とhdcをウインドウのものにすればすればカラーになるはず
>>806 良いんじゃない。
とりあえず DirectDraw7 で、16x16 タイル張りの背景をスクロールできるところまで行きました。
ちとコードを整理したら up します。
>>807 どうもありがとう。
漏れ業務ではPL/SQLしか経験なくてやばめだけど。
わたしはDirectDrawは使えないヘタレなので、DirectX系無しのVCで・・
背景のスクロールはWM_TIMERでX+=10;とかにして
BitBltの所の背景のX座標の位置を増やしてみました。
たぶんWM_TIMER使っているからだと思うけどゲームみたいな綺麗な
スクロールじゃないや。
それにInvalidateRectをWM_PAINTじゃなくてWM_TIMERの方に書かないと
だめだったし。無念。
それと再描画命令はInvalidateRect(hwnd,NULL,FALSE); 一文しか私は使っていないんですが、UpdateWindow(hwnd);は やっぱり普通は使うものなんですか? 自分のソースにInvalidateRectの次の行に書いたらKARNEL32.dllっていうのがエラー出します(涙
>>806 おそらくWM_PAINT に UpdateWindow 書いてねーか?
>>813 色つけたら見てるだけで楽しくなりそう。
815 :
名無しへの扉 :02/01/28 20:22
とりあえず次バージョンUPしました。
http://www.geocities.co.jp/SiliconValley-PaloAlto/4792/ 画面を分割して、衝突判定を分けたんですが、
だんだんソースがゴチャゴチャしてきて見辛くなってきた。
あと、Ctrl+左マウスドラッグで画面をスクロールできるようになりました。
>>814
ぱくり元のゲームも見てるだけで飽きないとこが好きだったんですが、フルスクリーン専用だったので、
そのへんをなんとかしたいなってのも、作ってる動機のひとつです。完成したらスクリーンセーバにもしてみようかと思ってます。
今のとこ、どうやって作ったらいいのか全然わかりませんが。
見た目の寂しさは何とかしたいとこですが、一通りの機能が出来るまでは我慢しようとおもいます。
音の追加とかも。
818 :
デフォルトの名無しさん :02/01/29 08:19
を、なんか楽しげ。 ぼーっとみちゃったよ。
819 :
デフォルトの名無しさん :02/01/29 14:32
見るわケネーだろうが
またUPしてみましたが…、
http://www.geocities.co.jp/SiliconValley-PaloAlto/4792/ なんとなくソースファイルをメインフォーム、宣言、描画、物理計算部の4つに分割してみたんですが、
描画時の色がおかしくなってしまい困ってます。
//細胞カーソル描画
procedure DrawCellCursor(cell: PCell; Color: TColor);
begin
with Form1 do begin
if Cell = Nil then Exit;
Image1.Canvas.Pen.Color := Color;
Image1.Canvas.Pen.Width := 2;
Image1.Canvas.Brush.Style := bsClear;
Image1.Canvas.Ellipse(Cell.x - CellRadius - 4 - ViewLeft, Cell.y - CellRadius - 4 - ViewTop,
Cell.x + CellRadius + 4 - ViewLeft, Cell.y + CellRadius + 4 - ViewTop);
end;
end;
//============================================
上のようになっていて
DrawLifeCursor(LifeSelected, clBlue);
のように呼んでいるんですが何故かclBlueでなくclBtnFace(ウィンドウの色)で描画されてしまいます。
ソース分割前は正常だったんですが…。考えてみてもまったく原因が分からない。(;´д`)
お、
>>1 さんが、ひっそりと復活。息切れしないよう、程ほどに頑張ってね~。
試してないからはずしているような気がするけど、 引数のColorではなくてForm1.Colorが描画されてるのかな。 名前がバッティングしないように引数を変えてみてはどうでしょうか。
>>822 おっしゃる通りでした。
なんで気が付かなかったんだろ…。(;´Д`)ハズカスィ
>>1 だ!
>>1 が帰ってきたぞーー!!
(・ι_・)age
825 :
デフォルトの名無しさん :02/02/01 02:04
1の掲示板で2げっととか、ズサーとかってやってる
・・・こんどこそあげ
このスレッドは大耳モナーが嫌々放置中です。 なんら問題はありません。 タリー タリー タリー イヤーソ (\_/) タリー ( ´Д)アハーン タリー タリー / つ (\_/) (\_/)ノ⌒ヽ、 (_(__つ⊂(´Д`⊂⌒`つ(´Д` )_人__) ))
830 :
デフォルトの名無しさん :02/02/03 12:29
>>1 今VBの方をDLしてみたんだけど、面白かったYO!
>>829 がーん(´ρ`)
>>830 ども、ありがとうございます!
これからもがんばって作っていきます
>>1 が帰ってきた!帰ってきた!名前をハンカクにして帰ってきた!
折れもC勉強しようかと思うんだけど、
コンパイラなどどれがいい?
便乗 保守 呼込 質問 揚
俺が熱を出している間に帰ってくるとは・・・(w
>>832 どもー。
Cですかー。漏れはWindows派の人間なのでやっぱVCが
(・∀・)イイと思うんですが、もし挫折してしまったら
投資がモターイナイので、フリーのLSI-C試食版などどうでしょうか?
DOS環境に限られますが、勉強ならちょうど良いんではないかと。
構造体・配列・ファイル管理などができるようになってきたら、
gccかボーランドのコンパイラに移行すればまた無料でできます。
男ならだまってGCCだ。 環境がWINDOWS、LINUX、FREEBSD、SUNOS、、、その他いかなる環境でも 男はだまってG・C・C!!!!!!!!!!!!!!!!!
今、ゲームボーイアドバンス用のGCC使ってるんですが、 インラインアセンブラのところでエラー出すんですが何ででしょう…。 あと、makeコマンドでコンパイル→リンクする時も なぜかエラーが…。 設定の仕方がよくわかりません。タスケテ
>>836 とりあえずエラーメッセージを Copy & Paste しろ。
今初めっからココまで読んだけど、1は
>>466 でもの凄く良いこと言ってる。
466で考えたことはずっと忘れないように。
> 結論としては、僕的にはコンピュータを内部まで知らなくても、1回ソースを
> 書いたら全ての環境で全く同じソースがコンパイルできるようになったら
> いいなと思います。
例えばJavaはすべてのプラットフォームに同じ土台(JavaVM)を用意することで
その上では同じコードを実行できる。
それもひとつの方法なんだけど、1がこれからもっと規模の大きいプログラムに取りかかるとき、
構造化やオブジェクト指向の考え方を知っておいて損はしないと思う。
ざっと1のVBのソース見た限りでは、プログラムが実行する処理を順番に書いてるだけだよね。
VC版ブロック崩しはブロック、パドルなんかを別ファイルに分けてるから、その辺考え始めてると思う。
確かにブロックやパドルは、それぞれひとまとまりだから分けることが出来る。
でもブロックもパドルもボールも同じ画面に描画される物体だよね。
それぞれ表示すべき座標があり、グラフィックがある。
ブロックに対しても、パドルに対しても、ボールに対しても「表示しろ」と命令すれば
しかるべき位置にしかるべき表示をしてくれるとすれば、理にかなってると思わない?
こういう考え方をすると、ブロック=パドル=ボールは共通の概念をもったものであると考えることもできる。
良くまとまらないけど、オブジェクト指向の考え方に踏み出すきっかけにならないかな…?
#俺も昔ゲーム作って、今の1と全く同じようなファイルの分け方してた(ワラ
続き。 今のVC版ブロック崩しではボールやパドルのソースファイルに HDCやら何やらも一緒に入ってるよね。 で、例えばMoveしたときにHDCに対して絵を送ってやって表示を実現してる。 ボールを画面に表示するプログラムの手順としては間違ってるわけではないが、 ボールは表示されるべき場所(この場合はプログラムのWindowの中)の事まで 考慮すべきかどうか。 VBの時も、VCの時も、「ボール」の振る舞いは「移動する」「反射する」…で変わらない。 ブロック崩しのアルゴリズムも変わるわけじゃない。 変わったのは実装依存の部分。これはVBだったらBitBlt、VCだったらBltToBufとか使ったり。 他にはtimer使ったりイベントが呼び出されたり。 こういうとき一枚ラップ用の関数を定義して、例えば表示ならDraw()の中で 実装依存の関数BltToBufを呼び出したりすると、プログラムが読みやすくなる。 抽象化された概念(言葉)でラップして、実装は内側に閉じこめてしまうわけ。 このようにしておくと、例えば描画エンジンをDirectXに取り換えても書き換える部分はごくわずかで済む(のが理想)。 Drawの内側の実装部分を変えるだけだから。 実際うまく行くように切り分けるのは最初は難しいかもしれないけど、 この考える作業は結構楽しい。 でそれにハマりすぎて何時までも完成品が出来なかったりすることもあるけどな・・>俺。 そんなとき初心に帰ってゴリゴリ書くのもいいなとこのスレ見て思ったよ。 長レスすまそ。
>>837 アセンブラのとこのエラーはこんな感じです…。
a.c: In function `vsync':
a.c:79: parse error before '{' token
で、中身はこんな感じです。
76:void vsync()
77:{
78: __asm
79: {
80: mov r0, 0x4000006
81: scanline_wait:
82: ldrh r1, [r0]
83: cmp r1, 160
84: bne scanline_wait
85: }
86:}
>>837 Makeの時のエラーは、
D:\GBA\sample\proto_devkit\proto_devkit>make
gcc -g -O3 -mthumb-interwork -nostdlib -Wall -fverbose-asm -fpeephole -M main.c
> Makedepend.txt
make: /bin/sh.exe: Command not found
make: *** [Makedepend.txt] Error 127
こういうのです。
でも、sh.exeにはパス通ってると思うんですが…
っていうか、sh.exeに渡すファイルがないって言う事でしょうか…。
あ、友達からネトゲーのお誘いが…
>>838 さんまた後でレスします
Command not foundてことは、sh.exeがそもそも無いか、pathが通って無いんじゃない?? 自信無いのでsage
>>840 gccのインラインアセンブラの書式じゃないから。
>>842 うーん、一応PATHに足したつもりなんですが…
>>843 まじすか?がーん。
まずgccの使い方をもっと覚えた方がいいですよね…
>>844 cygintl.dll cygwin1.dll
っていうファイルは、zipに一緒に入ってたので
入れました。
PATHに何を足したの? DLLだけじゃなくて、cygwin上の開発環境入れたらかなり大量に入るはずなんだけど。
>>846 cygwinってコンパイラとは別に用意しないといけないんでしょうか?
pathにはC:\devkitadv\binっていうのを足してます。
devkitadvっていうのがGBA用のgccみたいです。
で、そこにsh.exeってある? ちなみにmake.exeはそこにあるわけ?
ありました。
そのsh.exeをダブルクリックすると、DOS窓が開いて実行するはずだけど、 mount [ENTER] mount -s [ENTER] ってタイプするとなんて出て来る?
$ mount mount: not found $ mount -s mount: not found
/bin/shがないっつってんだから無論そうか。 pwd [ENTER] ./mount [ENTER] ./mount -s [ENTER] だとどうよ?
cygwinのサイト逝って、インストールしてみました…。
で、cygwinのbashからmakeしたらうまく逝きました…。
>>852 さんどうもありがとうゴザイマス。
854 :
デフォルトの名無しさん :02/02/11 10:30
昨日このスレを見つけて最初から読んでたが、
またプログラムやりたくなったよ。
頑張れー
>>1
841の時点でメイクファイルの中に SHELL=sh って書いたらたぶん解決してたと思う。 853で普通のcygwinとアドバンス開発環境が同居することになったようだけど、 無用な混乱が起こるような気がします。 PATHの設定とmountの状態でわけわからんくなる可能性がありますぜ。
>>838 Javaってそういえばどこでも同じコードで動くんですよね。
でもシステム内部をいじるようなプログラムができないっぽい
ですね。やっぱこれからはWebベースのプログラムでないと
駄目なんでしょうか?C#もJavaっぽいし
Webのプログラムができなくてもいいから、いろんなシステム上で
動くコードが書けたら良いとおもうんですが…。
そういえばWindowsのコードって中間コードなんでしょうか?
それともx86系に依存したコードですか?……って調べてみます(わら
>ざっと1のVBのソース見た限りでは、プログラムが実行する処理を順番に書いてるだけだよね。
>VC版ブロック崩しはブロック、パドルなんかを別ファイルに分けてるから、その辺考え始めてると思う。
ファイルを、どこで線を引いて分けるかというのはとても
難しいですねー。とりあえず見た目に違うもので分けました…。
>ブロックに対しても、パドルに対しても、ボールに対しても「表示しろ」と命令すれば
>しかるべき位置にしかるべき表示をしてくれるとすれば、理にかなってると思わない?
そうですよね。
違うところは画像へのポインタと、座標だけですもんね。
>#俺も昔ゲーム作って、今の1と全く同じようなファイルの分け方してた(ワラ
安心しました(藁
やっぱそういう部分も考えないと良くなっていかないですねー。
今までは、ただ動けば(・∀・)イイという感じでプログラムしてました。
後で読めないソースや、再利用できないようなものを書くというのは
あまり良い事ではないですね。勉強になります。
>こういうとき一枚ラップ用の関数を定義して、例えば表示ならDraw()の中で
>実装依存の関数BltToBufを呼び出したりすると、プログラムが読みやすくなる。
この概念はすごい難しいです…。
いろいろ考えを巡らせてみましたが、中身の若干の変更で
他へ移植できるような書き方はなかなか思い付かないです…。
でも、うまくまとまってから作ったら、動きの把握しやすい
ソースになりそうですね。
後、少し疑問に思うことがあるのですが、ソース中の関数が、
WinAPIか自作の関数か分からなくなるときがあるので、
自作の関数に接頭文字を付けようと思いましたが、
全てに付けるにはあまりキレイじゃないし、読み分けするには
どうしようかと思っています。
もう一つ、staticな関数なんですが、他のファイルに公開する
関数と見分けるのがややこしいので、見やすくしたいと思うのですが、
どういう書き方が考えられるでしょうか。
僕的には、staticな関数は1段Tabしてから書いたらどうかと思っています。
そういう書き方は読みやすいですか?
(ソースの最後に、staticだけかためて書くというのも考えましたが、
機能別に書いていくと、ソースの途中に書いた方が良い場合もあったので…
もしかしてこっちの方が読みやすいでしょうか?)
最後に…レス忘れてました(;´Д`)すいません…
>>854 おー、どもです!
プログラム、やっぱおもろいですよー。
がんばります!
>>855 がーん、まじですか?
後でインストしたcygwinにはパスが通っていないのか、
なぜかアドバンス開発環境のsh.exeからcygwinのコマンドが
実行できないんですよねー。うーん。
makeファイルからコンパイルするとき、イチイチcygwinから
cdで移動して、実行してました。
一回、SHELL=sh書いてみます。さんきうです!
>>856 WinAPI かどうかはそのうち覚えるから心配すんな。
でもまぁ自作関数にプレフィクスをつけるのは勧めとくよ。
少なくとも目立つ関数にはな。
関数の static 化はあんまり考えなくていーんじゃねーの。
そこまできっちり考えて作る必要なし。
>>856 > いろいろ考えを巡らせてみましたが、中身の若干の変更で
> 他へ移植できるような書き方はなかなか思い付かないです…。
Win32 only だが
表示 GDI, DirectX7
入力 User32.lib (Win32 標準), DirectInput8
サウンド mci, DirectAudio8
組み合わせ可能なコードとかなら手元にあるぞ。C++ だけど。
> WinAPI かどうかはそのうち覚えるから心配すんな。
俺は C++ で書いてるから、Win32 API にはグローバルスコープを示す :: を
つけるようにしてる。
>>856 一段落ついたらクラスの使い方を覚えるといいよ。
ファイル単位でデータをstaticにしたり関数をstaticにして
スコープを分ける代わりに、クラスを使うと、同じように
データと関数を1セットにまとめることができて、
publicとprivateのキーワードで外部公開するかしないかを選択できる。
>後、少し疑問に思うことがあるのですが、ソース中の関数が、
>WinAPIか自作の関数か分からなくなるときがあるので、
これはクラス(クラススコープ)の導入で解決する。
いま問題になるのは、Win32APIも自作の関数もグローバルなレベルにあるから。
クラスのメンバ関数はそのクラスに属するから、例えばパドルクラスを作れば
Paddle paddle;
paddle.Init();
というように、Init関数はパドルを初期化するんだぜ、ってのが明快になる。
同様に bar.Init() ってのがあっても混乱することはない。
今、PaddleInit() って関数名は、「パドルを初期化する」ものだから、
Paddleという接頭辞によってInitの対象を限定してることになる。
よって方向性は間違ってない。
関数をグローバルスコープにして接頭辞をつけて対処するのは誤り。
>関数の書き方
関数の実装はとりあえずヘッダに書いた順に並べてる。
ここは個人で見やすいようにしておけばいいと思う。
他のファイルから呼び出すときは、ヘッダファイルだけ見れば分かるから。
編集の時はVC++のクラスビューア(だっけ?)で関数名クリックすればジャンプするでしょ。
もしくはヘッダで関数名を右クリックして定義位置を表示。
あと、ソースの書き方は綺麗で好感が持てます。
>>860 > 関数をグローバルスコープにして接頭辞をつけて対処するのは誤り。
誤りってことはないやね。確かに C++ で書くなら接頭辞不要だけど、C の場合には
プリフィクスをつけるのは一般的。
Win32API なら wave*, mci* とか UNIX のカーネルなら pmap_*, arp_* など実例は
多数。
>>855 SHELL=sh でうまく逝きました!
やたら苦労したので、やたら嬉しいです。どもども!
>>858 まだきっちり考えなければ把握できないほどの
規模でもなかったですね…。
よく出てくる関数は目立つ名前にしようかなーと思います。
>>859 GDI→DirectDrawは、だいたい予想つくんですが、
mci→DirectAudioっていうのは想像するのが難しいです…。
どこまで分解したらいいかとか、どういう機能があるかとかを
知らないといけませんね…。
グローバルスコープの::って、左に何か付けるんでしょうか?
右にはAPIの名前ですよね?
>>860 クラス覚えたら、整理しやすくなりそうですね。
Javaの本ちょこっと読んだんですが、継承やら
多態やらムズカシそうなので理解しないうちに
置いてました…。
Paddle paddle;
paddle.Init();
こういう書き方はすごい見やすいですねー。
また疑問が湧いてきたんですが、パドルの実体を
作るのって、メインループのあるファイルの中で
いいんでしょうか?
>関数の実装はとりあえずヘッダに書いた順に並べてる。
ほおほ、やっぱヘッダの順番と中身の順番が違うかったら
ややこしいですよね。
やっぱ、関数の機能の説明などのコメントは、ヘッダの方に
入れた方がいいですか?
>もしくはヘッダで関数名を右クリックして定義位置を表示。
あ、そんな機能あるんですか!?(;´Д`)
>あと、ソースの書き方は綺麗で好感が持てます。
ありがとうございます。
実際、仕事に逝った時に役に立てるようにもっと
いろいろ書き方考えてみます。
>>861 時と場合によって使い分けるのがいいんですね。
何かに固執して、他の場所で臨機応変に対応できない
ようにならないように気をつけます。
>>862 > グローバルスコープの::って、左に何か付けるんでしょうか?
グローバルスコープにある識別子(変数や関数名、enum 値)にアクセスする場合
には、何もつけません。
::CoInitialize(NULL);
みたいに書けば OK。
C だと名前はグローバルスコープ以外には置けませんが、C++ だと namespace
やクラスに閉じ込めることが出来ます。
namespace Block
{
enum { PADDLE_PLAYER1, PADDLE_PLAYER2 };
}
たとえばこんな感じに書くと enum 値は Block 名前空間に属することになるので
Blcok::PADDLE_PLAYER1
と書いてアクセスできます。所属する名前空間が異なれば、同じ識別子があって
も衝突せずに併用できます。
あと、特定の名前空間の識別子を選択的、あるいはまとめて現在のスコープに
導入する方法 (using namespace) があるので、実際にはそれを使うことが多い。
>>861 誤り、は言い過ぎた。実例上げてくれたとおり。
自分で関数定義するとき、かつクラスや名前空間が使えるとき、
という条件のつもりで書いた。
>>863 >パドルの実体を作るのって、メインループのあるファイルの中で
>いいんでしょうか?
でいいよ。使うところで作る。
他にはゲーム進行を行うクラスを定義して、そのメンバとして
パドル、ボール、ブロックを持たせるやり方も考えられる。
>やっぱ、関数の機能の説明などのコメントは、ヘッダの方に
>入れた方がいいですか?
両方に同じ説明(短文)を書いてる。実装の方にはコードの修正日も。
上手い人の書き方を参考にして、自分がいいと思う書き方でやればいいと思うよ。
複数人で作業する環境だったら、コメントはこう書け、みたいな
規約が決まってるかもしれない。
>>865 > 実装の方にはコードの修正日も。
それはバージョン管理ツール入れて、バージョン管理ツールにお任せが良いと
思われ。
私はバージョン管理は CVS、コメントは doxygen で出力できるように Javadoc
形式で入れてる。
867 :
デフォルトの名無しさん :02/02/16 15:15
10年前に作ったことある。 同時に三つのブロックに当たったときの動作どうする? 漏れのプログラムの場合、そのまま突き抜けるような 動作になっちまって・・
>>864 >::CoInitialize(NULL);
>みたいに書けば OK。
ほおほ、そういう書き方があるんですねー。
ネームスペースっていうのは初めて聞きました…。
そんな便利な機能があったとは。
>あと、特定の名前空間の識別子を選択的、あるいはまとめて現在のスコープに
>導入する方法 (using namespace) があるので、実際にはそれを使うことが多い。
?なんか滅茶苦茶ムズカシいんですけど…(わら
using namespaceっていうのは手法のことでしょうか?
それともライブラリみたいなものですか?
>>865 >他にはゲーム進行を行うクラスを定義して、そのメンバとして
>パドル、ボール、ブロックを持たせるやり方も考えられる。
おお、そういう事も考えられるんですね。
なんか、目に見えるものばっかりをクラスに定義しようと
考えてました…。
クラスにクラスを持たせるっていう時は、継承させるんでしょうか?
それとも、実体をクラス内に持たせるという事ができるんでしょうか?
>両方に同じ説明(短文)を書いてる。実装の方にはコードの修正日も。
その方法なら修正時に、実装部かヘッダーか、
どちらを見られても対応できますね。
コードの修正日ってやっぱ必要なんでしょうか?
>上手い人の書き方を参考にして、自分がいいと思う書き方でやればいいと思うよ。
ですね。いろいろ見回って勉強します。
>複数人で作業する環境だったら、コメントはこう書け、みたいな
>規約が決まってるかもしれない。
複数人でやった事ないですけど、そういうルールって
結構重要っぽいですね。
>>866 バージョン管理ツールって、よく聞くんですが、
どういうソフトなんでしょうか?イメージできない…。
>>867 僕のやつも、2つほど一緒に当たると、突き抜けてしまいます(わら
ボールの近くのブロック全て検知して、同時に当たったときは、
進む方向に対してOR演算とかしたらうまく逝きそうな予感…
>>868 > ?なんか滅茶苦茶ムズカシいんですけど…(わら
「名前空間」とか使ってる単語が難しいだけで、別に実際に使うのは難しくないって。
namespace Paddle
{
using namespace Ball;
// こうすると namespace Ball の中にある名前を、修飾 Ball:: なしで
// 参照できる
using std::for_each;
// こうすると namespace std にある for_each だけを、修飾 std:: なしで
// 参照できる
}
こんな感じ。
>>869 そういうのって、関数の引数に指定したりできるんですか?
function(namespace Paddle)みたいに…。
今のところ、enumのパワーアップ版みたいなイメージしてます。
あと、例えばBallには、数値を持たせることはできますか?
Del坊なのですが、このスレに参加してよいですか?>1さん ひまになったんでなんかゲーム作ろうと思って。
>>871 ういういー。
っていうか、ここは2chなので、漏れに人の考えを
制限する権利が無いんですよね。どぞご自由に。
838です。
>>868 クラスにする目安は、意味的、役割的にまとめる価値があるもの。
管理役として、マネージャっていう職があるのと同じ。
クラスを継承するか、所持するかは、例えば
トヨタ車とホンダ車など各社の車を表すのに「車」クラスを継承させる
車の「ハンドル」や「タイヤ」は車が所持する
と考えれば分かりやすいかな。
クラスにクラスを持たせるのはこんな感じ。
Class Paddle {}
Class Ball {}
Class Manager {
Paddle paddle;
Ball ball;
}
>コードの修正日
いつ書いたコードか分かるのは便利。
過去に書いたコードと比較して、スキルレベルの確認ができるから。
>>873 >クラスにする目安は、意味的、役割的にまとめる価値があるもの。
>管理役として、マネージャっていう職があるのと同じ。
そういうとらえ方なんですねー。
なんか誤解してました…。
>トヨタ車とホンダ車など各社の車を表すのに「車」クラスを継承させる
>車の「ハンドル」や「タイヤ」は車が所持する
おおお、イメージばっちりです!
すごく分かりました。ありがとうございます。
>いつ書いたコードか分かるのは便利。
>過去に書いたコードと比較して、スキルレベルの確認ができるから。
ほおほ、たしかにそうですよね。
僕も修正日とか書くように心がけようと思います。
保守… 最近、ブロック崩し作ってませんでした…。 GBAにはまりまくりです。
俺は見ているぞ
漏れも見ているぞ! たまに……な(ニヤソ)
応援sage
俺も見てるぞ。俺もなんか作ろっと。
俺も作ったけど、うまくいかないよ!
881 :
デフォルトの名無しさん :02/03/11 03:19
あげよう
882 :
デフォルトの名無しさん :02/03/13 05:59
ブロック崩しはローラーみたいな入力装置がないとだめだよ。 マウスや、ましてやキーボードなんかじゃまったく遊べない。 何か新機軸のアイデアでもあれば別だけど、、、
883 :
デフォルトの名無しさん :02/03/13 08:32
ホイールボタンをローラー代わりに使うとか。
884 :
デフォルトの名無しさん :02/03/13 15:37
>>883 それだ!
マウスホイールならいっそ画面を90度回転させるとか。
自機の移動は縦で。
>884 それって昔のテニスじゃ・・・
ホイールじゃ細かい移動ができんぞ
では、大まかな動きでもいいように球をでかくしてみよう 自機の10倍くらいに
でかすぎだよ!
ゲームボーイないからできないや
>>890 がーn
>>891 お、どもです!
やっぱやってくれる人がいると、すごい嬉しいっす。
今、F-ZEROの地面みたいな画面はどうやって描くか
考え中です。回転の式をうまく使えばできるかなぁとか…
でも、あんなグリグリ動かしたら処理落ちしそうな気もするし…。
あと、回転した後の図形の、当たり判定っていったい
どうするんでしょう。当たり判定の位置を決めるにも、
毎フレーム回転させないといけないんでしょうか。
>>892 当たり判定は平面2次元。表示だけ斜めから見てパースつける。イジョ
あ、当たり判定って2次元でいけるんですねー。 って、よく考えたらそうかも…。道を誤るところでした(;´Д`) パースって、歪み方がイマイチ想像できないんですが… うーん、CGの本読んでみます。ありがとうございました。
>894 F-ZEROとかの2軸回転はメガデモ系のサイトで調べるといいと思うよ。 基本的な考え方はそれでわかるかと。
>>895 ほおほお。メガデモ系ですか。
処理的には2軸回転を使うんですねー。
検索してみます。ありがとうございます。
>897 良かったな てかこのスレだいぶ廃れてきたような気がするのぉ…
あわてず騒がずマイペースでだな。
たしかに人がいなくなってしまいました…。 教えて頂いたことを、すぐにコードに反映させる ような感じで作っていけばよかったような…。 ブロック崩しも、しばらくやってませんし…。 VCで作るんだったら、クラス化する方法を ある程度覚えてからの方が良いような気がして、 現状のまま作る事に、ちょっと気が重くなっていました。 それから2軸回転、難しくてまだ把握できません…。
>900 考え方は2Dの画像回転と変わらないよ。逆に写像してライン引くって感じかな。 思いっきりそれを解説したメガデモ系サイトのコンテンツをローカルに保存した のがあるんだけど…。
>>901 ほおほ…2Dの回転と同じですか。
なんか、ひらめきそうなので一回VBで作ってみようと思います。
>897のサイトで、なんとかがんばろうと思います。どもです。
>>889 のやつってエミュじゃないとできないの?
このまえGBA買ってきたからGBAでやれたらなーって思って。
ところでGBA用のコンパイラってどこか置いてあるの?
できれば無料のところを紹介してほしいなぁ。
クレクレ君でスマソ。こんな地下にあったらスレが進んでるかどうかわからないよー(;´д`)
904 :
デフォルトの名無しさん :02/04/06 14:45
age
>>903 です。。。
リロードしたらあげられてた…。
>>906 さんくすですー
さすがに「ヒッキー」だけあってレスが早いですね(w
もう残すところ95レスとなりました、新スレ立てるなら、URLはっといてね。
908 :
デフォルトの名無しさん :02/04/06 16:24
ブロック崩しなんか、ガキのときにBASICで作ったよ。 というか、そんなもの、APIなんか使う必要性ないだろう。 VBだったら、VB6.0の評価版(無料)でもダウンロードしてやれば十分。 でも、プログラムのことがわかりかけた最初のころに、 いろいろ作りだすのが楽しいんだよな、と昔を思い出したりする。
API使わずに…(以下略)
クス
ゲラゲラ
アヒャ
>912 F-ZERO出来たか?w
実は、ようやく”2軸回転”の意味がわかったところです(;´Д`) 何が2軸なのか、わかりませんでした… DIBで、実験中です。
>914 おう。そりゃヨカタ。 マリオカート@2ちゃんキャラで一つタノムw
名称:モナーカート (ださ藁)
>917 動かしてみた。マップチップみたいにもなってるしいいんでねぇか? そろそろVBを卒…w
>>918 お、どもです。
VB、なんとなくやりやすいんですよ。
VCは、MFCを使えないので、GUIのフレームを作るのが
めんどくさかったり…。
Formをリソースで作って、それを管理すればいいんですけどね…。
>919 まぁ,サンプル程度ならVBでもいいかも知れん…。 ぬるま湯ばかりでもイカンよw
(´ー`).。o○( VB・・・けっこう高いんだろな。 ) ( 家にコンパイラないんだよな。 )
(´ー`).。o○( VBよりC系をやった方がいいと思うな。) (コンパイラ無料のがたくさんあるし。)
(´ー`).。o○( Cは使えるけど、
>>921 はVBみたいなんだな )
( ちょっと興味があるんだなぁ…… )
( 家は通信回線遅いし、雑誌の付録でも探そ… )
VCはタダで手に入らないかなぁ。。。 正直買おうか迷ってる。
WinMX(ワラ
>>926 だから.NET Framework SDK(以下略
>929 おう。凹んでないでガンバレ。明るく逝こうw 次は地面回転と3Dスプライト(ビルボードって言った方がイイカ?)だな。 速度は…前のもサクサクダタのでワカラン・・・
保守
934 :
デフォルトの名無しさん :02/06/23 22:38
age
935 :
デフォルトの名無しさん :02/07/05 19:54
age
二ヶ月差保守上げ萌え~(w
937 :
デフォルトの名無しさん :02/07/09 11:48
あげ
ちなみにヒキ板から来ますた 普段とは考えられないひきプロたんに萌え
(-_-) (∩∩)
941 :
(-_-)さん :02/07/15 15:10
942 :
デフォルトの名無しさん :02/07/15 15:11
943 :
デフォルトの名無しさん :02/07/15 17:48
>>903 VisualBOYというGBAエミュがありますよ。
944 :
デフォルトの名無しさん :02/07/19 06:49
VisualBoyAdvance、最新版出たばっかだよね。
945 :
to:sage :02/08/06 15:36
>>711 >>832 とか.
# 目茶遅レス
日本語もばりばり通って, LSI-C試食版のように制限が無い,
Borland C++ Compiler 5.5.1が良いと思います.
56kbpsな環境...懐かしいですね.
そんな環境で毎日chat三昧で月に3万とかかかって何度も怒られました(ぉ
Irvineとかでdownloadしては如何でしょうか.
尚,BCCはきちんとreadme読んで, bcc32.cfg と ilink32.cfgを設定しなきゃ
ならないので注意.
あとは autoexec.bat いじるなり, マイコンピュータのプロパティ, 詳細で
環境変数をいじるなりすれば, OK.
www.borland.co.jp/cppbuilder/freecompiler/
>>1 お体悪くしないようにがんばってくださいね(笑
ぁぁ,何かを勘違いしていた... ageてしまた. スマソ.
>>945 setbccとかを使えば設定は楽だよ。
>>947 まぁ,
hp.vector.co.jp/authors/VA017148/pages/cpad.html
を使うのが一番楽かも.
949 :
デフォルトの名無しさん :02/08/07 19:48
>>945 まだこのスレをお気に入りに入れている俺もアレかも試練が、レスありがと。
結局 Borland C++ 5.5.1 にしますた。
当時はirvineなんて知らなくてがんばって落としたけど(w
もうすぐCATVがくるんで、ソレまでのんびりCの勉強をしてます。
|尚,BCCはきちんとreadme読んで, bcc32.cfg と ilink32.cfgを設定しなきゃ
|ならないので注意.
|あとは autoexec.bat いじるなり, マイコンピュータのプロパティ, 詳細で
|環境変数をいじるなりすれば, OK.
googleで出てきた設定ツールを使ったので案外すんなりできた。
がんがって、いまbcc32のコンパイルのオプションと、
リンクの方法を勉強中です...
#雑談スマソ
ぐぁ、ageてしまった・・・ゴメソ、ム板の皆さん。
VBでブロック崩しなんか簡単だよ 正直、APIを使わなくてもできる。 使うのはフィールドとなるピクチャーとシェイプ(図形) だけでいい。
場の雰囲気を読めないバカがいるな
954 :
デフォルトの名無しさん :02/08/08 16:16
VB最強伝説急浮上とともに このスレも急浮上。
956 :
デフォルトの名無しさん :02/08/08 16:24
空気の読めない俺とともに
このスレも急浮上。
>>955 >>1 の掲示板にいたよ。
場の雰囲気が良く分からんが。 p: ピクチャボックス t: タイマ(Interval=50) e(): ブロック f: 自機 b:ボール (いずれもShape) fは背景黒&不透明, bは透明, e()は不透明 Dim n,w,h Sub Form_Load():For Each V In e:V.BackColor=vbWhite- _ V.Index:Next:n=e.UBound+1:w=-100:h=-100:End Sub Sub p_KeyDown(k As Integer, S As Integer) f.Move f.Left+100*((k=37)-(k=39)):End Sub Sub t_Timer():b.Move b.Left+w,b.Top+h:w=IIf(Abs(p.Width/2-b.Left)>p.Width/2, _ -w,w):h=IIf(b.Top<b.Height,-h,h):If b.Top>p.Height Then MsgBox "lost":End c=p.Point(b.Left+b.Width/2,b.Top+b.Height/2):If c>&HFFF000 Then h=-h: _ e(vbWhite-c).Visible=0:n=n-1:If n=0 Then MsgBox "complete":End h=IIf(c=vbblack,-h,h):End Sub
>>957 雰囲気の読めない君は7行スレに行きなさい
951だな
ほしゅ
chottoshita HOSHU.
ボンバーマンオンラインのやりすぎ(・A・)イクナイ
どうやらルータ越しでは難しいようだな 出来るのかもしれないが、分かる限りで設定してみた感じでは無理だった・・・・
まだ大丈夫だろうと思いつつ 一応保守
補珠
そうでもないよ・・・
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ̄ ̄( ゚Д゚) ̄ ̄| < ぼく1000取り王の鍋田保! |\⌒⌒⌒⌒⌒⌒\ \ | \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \ |⌒⌒⌒⌒⌒⌒| \ |_______|
|. ____ │ また鍋田保が1000とるのかー | / | |│ |./ | |│ ∧_∧ [______.|_|│ (´∀` )__ | _|__|_i‐┴-、(σ、、⊂ヽ_)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|__)|| | ̄ ̄) | ||
,.r ''"´ ̄``''‐\ !::::::::::ィ::ハ:::;::::::::::::::::::::::::::! / /:::::::::::::::;;:::::::::::::::::\ i::|:::i::/l/ i;::ト、:、:::i:::::::::::::::i /,r‐''''"´ ̄ ̄,ヽ /::::::::;::::;;:::/ ヽ;::i、:::::::::::\ |::i/レ'-i'' 'ヽi-ヾ,ヽ!:::::::::::::l /,./ //::゙:ヽ、 . i:::::::::/レ' リ ヽ;lヽ::;::::::::::\:ハ -‐- -─- i::::::::::::::l./〃L__,,.. ェ=''‐':r、:::::::ゝ .|::::::/.,r;==; ,r==;ヽ:::::::| \:l| | | | |:::::::::/ !::::::::::::::::::::::::::::::/!:!'|'iヽiヾ! . |:::::| { i::::::::i i::::::::i } i::::::| \ | r---、! l,.!:::::/ !:::::::::::::::::::::::::::::i' リ _゙、' . |:::::|. ' io:::ノ. io:::ノ ' |::::::| \'-'=,‐,='r''i~ / |::::::::::::::::::::::::::::::! ‐''´ `''! . |::::::i ,__'__ i:::::::| ∧∧∧∧∧ .|:::::::::::::::::::::::::::::::i 〃 __,. l . |:::::lヽ ('⌒':) /!::::::| < 鍋 > l::::::::::::::::::::::::;;:::::::'、 '-'/ . |:::::|;;;;;`'‐、.,_'ー‐' , ‐'";;;;|:::::::| < 予 > |:::::::::::::::::::::::l ,>‐''" ̄ ̄ ̄ ──────────────<. 田 >─────────────
..........,.....,ri /' l i........................ i. < 感 保 > ,ヘ :::::::::://::/' |:::/ | 'i::::l'、;:::::::::::::::::..... i.< の > r '、.ノ ‐‐- 、 :::::::/,.i::/‐-レ' | 'i::| i::::::;;::::::::::::::::<. !!!. > / ヾ. ゝ \ ::::/ ',,,,,,,, | ''''i:|''‐i;:::| i::::::::::/ ∨∨∨∨∨ \ / /__// ヽ ::i /,:‐-、 -リ‐-、';|ヽ!:::/::;::::/l::/ ヽ::L';:::i:::::::\// / 〇 //| ./l ! :| l i::::::::::l r'''''':、.ヽ /:::/ l/‐:レ' ';:L.ヽ:!`、::::::\ /l ' |/ .レl / | 'r‐j:::i !:::::::::::l /::::/./,'::::::::::i i::::::::::iヽ.ヽ:::::::i\/ l へ 〇ノ / ! `''''" 'iつ:::/. ,'::::l {: l::::::::::::! |:::::::::::l i |::::::::|. \ 、_ ノ // :':、 、 / i::::::| ' l○:::/ l○::::/ / |:::::::::! \ ,--‐'/
. 。o O (鍋田保がまた1000取るんだよね) ,. -- 、 .,:',ィ;ノ、!;::':, .i::l'O Oi::i .l::ト、.ヮ,.ノ::! ⊂ ̄ ̄~⊃ / \ |~~~~| |~~~~| \ ./
999しか取れないじゃん(藁
とっととアク禁食らえよハゲ
,. -──- 、 /:::::::::::::::::::::::::::::ヽ /::::::::::::ハ::::;:::::::::::::::::゙:, ,'::::;i:/レ' ヽiヽ:::::::::::::::::! l::::|'r,:=; ,:=;、';i:::::::::::::! .,r'‐;|.l !::::i i:::::i l |::::::::::::| ,'.三ミi 'ー'゙ 'ー'゙ |:::::::::::::| 鍋田保1000やで。 | 'ri''ヾ:、 r‐┐ ,.|::::::::::::::| 鍋田保1000とるで l |i,__!:>'=''r‐''".i:::::r、:::::| ! l,|: |" ゙、'、 ;:/::;/ ヽ:| l! |大" `''"/'"' ヽ ! | ヽ| 、i ,. イ' ! ' /! l,/ |
ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ /ヽ ,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、 [ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | } ゙l |`} ..:ヽ--゙‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ // . i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./ ` ー==--‐'´(__,. ..、  ̄ ̄ ̄ i/‐'/ i .:::ト、  ̄ ´ l、_/::| ! |: | ヽ ー‐==:ニニニ⊃ !:: ト、 おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。 まず「鍋田保」を英字で表記する 『NABETATAMOTSU』 これを逆にすると、 『USTOMATATEBAN』 そしてこれを更に日本語に直すと 『ウストマタテバン』 鍋田保と言う事を考えれば末尾に『1000取り王』を加えるのが当然だ。 すると導き出される解は 『ウストマタテバン1000取り王』 そして最後の仕上げに意味不明な文字『ウストマタテバン』 これはノイズと考えられるので削除し残りの文字を取り出す。 するとできあがる言葉は・・・・・・『1000取り王』。 つまり!『1000取り王』とは『まさに鍋田保』を表す言葉だったのだ!!
/:::::::::::::::::::::::: /:::::::/::/::ヽ::i::::::: /::::/::/l:/ |::|_!::i: このスレも鍋田保が1000だ… l::::レl/`` '´l:! |::| |::::| ┃ ┃ ゙i:! |:::j. ┃ ┃ |::/ |〈 __ ∪| |:::ヽ. L...__) |: |:::::::::゙ヽ、 _,、-'゙|: |:::::::::|i::::i::フ|"´ |:: |:::::::::||:/ /| |:: .!:i::::::| /__---/|:::: 〉ト、::| / / |:::: r' | ヾ! / / ト//
l::::レl/`` '´l:! |::|
,rn r「l l h | 、. !j ゝ .f _ | | ,r'⌒ ⌒ヽ、 ,」 L_ f ,,r' ̄ ̄ヾ. ヽ. ヾー‐' | ゞ‐=H:=‐fー)r、) | じ、 ゙iー'・・ー' i.トソ <鍋田保がおまえら拉致して1000取るニダ \ \. l、 r==i ,; |' \ ノリ^ー->==__,..-‐ヘ___ \ ノ ハヽ |_/oヽ__/ /\ \ / / / |. y' /o O ,l |
982 :
デフォルトの名無しさん :02/09/28 22:13
連続投稿規制中
r ⌒ヽ (´ ⌒`) ポッポー ! l l カタカタ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (・∀・#)< また鍋田保が1000だあ! _| ̄ ̄||_)_\__________ /旦|――||// /| | ̄ ̄ ̄ ̄ ̄| ̄| . | |_____|三|/
/\⌒ヽペタン / /⌒)ノ ペタン ∧_∧ \ (( ∧_∧ (; ´Д`))' ))(・∀・ ;) / ⌒ノ ( ⌒ヽ⊂⌒ヽ .(O ノ ) ̄ ̄ ̄()__ )また鍋田保が1000とるんですね )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
∩_∩∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)/< 先生!鍋田保が1000取ると思います! _ / / / \_____________________ \⊂ノ ̄ ̄ ̄ ̄\ ||\ \ ||\|| ̄ ̄ ̄ ̄ ̄|| || || ̄ ̄ ̄ ̄ ̄|| .|| ||
ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ /ヽ ,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、 [ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | } ゙l |`} ..:ヽ--゙‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ // . i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./ ` ー==--‐'´(__,. ..、  ̄ ̄ ̄ i/‐'/ i .:::ト、  ̄ ´ l、_/::| ! |: | ヽ ー‐==:ニニニ⊃ !:: ト、 おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。 まず「鍋田保」を英字で表記する 『NABETATAMOTSU』 これを逆にすると、 『USTOMATATEBAN』 そしてこれを更に日本語に直すと 『ウストマタテバン』 鍋田保と言う事を考えれば末尾に『1000取り王』を加えるのが当然だ。 すると導き出される解は 『ウストマタテバン1000取り王』 そして最後の仕上げに意味不明な文字『ウストマタテバン』 これはノイズと考えられるので削除し残りの文字を取り出す。 するとできあがる言葉は・・・・・・『1000取り王』。 つまり!『1000取り王』とは『まさに鍋田保』を表す言葉だったのだ!!
∧∧ ∧_∧ (,,゚∀゚) ( ´∀`) o <鍋田保がまた千とるんだよね / | ( づ_,..................,____ ~OUUつ _,,...!-‐'''" ̄  ̄~`''ー-.、_ ,,r‐'" ,r-ー、..,,,,r''""゙`ヽr-、,、_ ~`ー、 ,r''" r'~゙ヾ'" " ヽ,_ ゙ヽ, ,r" ,r"~ `'ヽ,、_ ゙:、 ,i" r'" ゙''j ゙:, ,! ,i'" _,,,,,,,,_ _,,,.___,., __,、, "ヽ, l, | ,r'.;:'"~:::"::::::::::::::~`''''ー―::::'''''"::::::::::::::::~~::::::::゙''"`ー:'''':、 | i, ,r'::r:::::ヾ;::::::::::ヾ;;;;;ソ::、::ソ:::::(;;;;シ:::ヾ::::::,r':,r、:::::::::::::::::::::::::::゙i ,! ゙i !;:::::ヽ'''::::::::::::::::::::::::::::::::::::::シ:ヾシ:::::::::::::::〉::::::::'''''シ:::::::::::::::::ノ ,:' ゙i、 ゙i、:::::::::〈:::::::::ヾ:::::::::::::::::::::::`ー''"::::::::::::::::::::::::::::::::::::::::::::,r" ,r' ゙ヽ、゙ヾ::::::::::::::::::::::::::::::::::::::::::::::ーミ;;;:::::::::::::::::::::::::::::::::::,,r'" ,r' ゙ヽ、~゙ヾ;:::::::::::::::::::::く:::::::::::::::::::::::::::::::::::::::::::::::,,,r''",,r''"
鍋田保はまた1000取れないのか(藁
990 :
デフォルトの名無しさん :02/09/28 22:19
シンショウヒッキー鍋田○は氏んでくだちい。
/:::::::::::::::::::::::: /:::::::/::/::ヽ::i::::::: /::::/::/l:/ |::|_!::i: このスレも鍋田保が1000だ… l::::レl/`` '´l:! |::| |::::| ┃ ┃ ゙i:! |:::j. ┃ ┃ |::/ |〈 __ ∪| |:::ヽ. L...__) |: |:::::::::゙ヽ、 _,、-'゙|: |:::::::::|i::::i::フ|"´ |:: |:::::::::||:/ /| |:: .!:i::::::| /__---/|:::: 〉ト、::| / / |:::: r' | ヾ! / / ト//
/~⌒~⌒⌒~ヽ、 / ) ♪ ( /~⌒⌒⌒ヽ ) ( ξ 、 , |ノ ♪ (6ξ--―●-●| ヽ ) ‥ ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /\ ー=_ノ < よう♪鍋田保が1000だぜ |∪ ∧) \________________ (( | \ ♪
r ⌒ヽ (´ ⌒`) ポッポー ! l l カタカタ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (・∀・#)< また鍋田保が1000だあ! _| ̄ ̄||_)_\__________ /旦|――||// /| | ̄ ̄ ̄ ̄ ̄| ̄| . | |_____|三|/
┌┐ 鍋鍋鍋 人 ││ 鍋\ 鍋\ ノ二\ ナ ゝゝ V 鍋鍋鍋 鍋\ 鍋\ / / 乙 つ O 鍋\ 鍋\ 鍋\ 鍋\ 鍋鍋鍋 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ 鍋鍋鍋 \ 鍋\ 鍋\ 鍋\ 鍋\ 鍋\ \\ 鍋\ 鍋\ 鍋\ 鍋鍋鍋 \ 鍋\ 鍋\ 鍋\ \\\ 鍋\ 鍋鍋鍋 \ ┌┐ ┌┐ 鍋\ \\\ ┣━┳┃┃ ┃ ││ ││ 鍋鍋鍋\ ┃ ┃┃┃ ┣┓ ━╋ ━╋ V V \\\\ ┛ ━┛ ┃ ┏┫ ┏┫ O O
997 :
デフォルトの名無しさん :02/09/28 22:23
1000取った奴は氏ねやゴルァ
,rn r「l l h | 、. !j ゝ .f _ | | ,r'⌒ ⌒ヽ、 ,」 L_ f ,,r' ̄ ̄ヾ. ヽ. ヾー‐' | ゞ‐=H:=‐fー)r、) | じ、 ゙iー'・・ー' i.トソ <鍋田保がおまえら拉致して1000取るニダ \ \. l、 r==i ,; |' \ ノリ^ー->==__,..-‐ヘ___ \ ノ ハヽ |_/oヽ__/ /\ \ / / / |. y' /o O ,l |
げと~~~~
i:: ::: :i::ヽ:::;;ヽ::;'、 ヽ ヽ;;'';;-'" ヽ/ i :::::`、 / ;;i::::;;:::i;;;;ヽ:::;ヽ-、'、 `~ 'i;、 i :::::i'''~´ :: :;:i;;;;'、;ヽ;;;;;i、ーiヽ.ヽ 、 i、i ,,、-‐'''''ー--、-、 ヽ :::::'、;;ヽ、 :::: ;;:i::i;;ヽ:;;;ヽ;;;;i;i '//'"、 `';'~^ .i ヽ、、-‐'''"´~^"´_、-'''~"~ ̄`'''´`''::、_ヽ、 ::: ::::'、;;;;ヽ :::: ー、;;ヽ;;ヽ;;;;ヽi、':i i,:;' / ''´'' _、,-、-‐‐'''''''''ー-、'''`/´ ヽ`、 ヽ :::::: :::::::::;::;;;; ::: `''ー、,,;;、;;;ヽ、`i' '` /;'ー'´' `''ー :::: ,,,i、、ヽ ヽ、 :::::: :::::::::;::::;;; :: `''ー-、;;`''ー--‐‐‐/"/´ :::::: ` 、:::::_、-‐''~´''''ヽ-'ー-、,,,ヽ :::: ::::::::::::i;:::i::: `''ー-、,ヽ /´ /:i :::,,、--------、,''"´ヽ;;ヽ;;;;;::::::'ヽ::ヽ:ヽ::i. :: :::::::::::ノ::/''' 、 `''"、_//i ::ノ:::/::::::i::::i;;;::::::::::::i、::::'、::i、:;;;;;;::::;;ヽ:'、::::i :::::::::::/''"::::: ''、, `''ー、,_ ::/::/';;;;、-‐:、:::ヽ::;;;;;;;;;、ヽ;;;;ヽ;;ヽ;;;;;;;;;;;;;;i:i;;;;;'、 :::::::::/::: `-、 `ー'''/`'ー''ー、__;;;;;;;_、-‐'''''"";;;;;;;;_,,,,,,、-‐‐‐‐‐‐--、,,,,/ヽ :::::::::::ノ ::: ヽ, ヽ、 i. `、 ヽー、;;;;;;;;;_、-‐''"´ :::::: ::::::~`ヽ、,,、、-‐'''":::: ヽ ヽ, '、、 ヽ '、 `、_ :::: ::::::::::/::::::: ヽ:: `''"ヽ i `、 ヽ`'ー、 :::::: ::::::/::
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。