貴様ら!ブロック崩し作るので見てください
■ このスレッドは過去ログ倉庫に格納されています
0001ヒッキー@プログラミング
NGNG作りたくなりました。
Bitbltなど使う予定ですが、細かい技術がないので、
小出しにプログラムしようと思います。
(タマが動くだけとか、キーボードで自機を動かすだけとか)
オナーニスレだけどよろしくね。
0075
NGNGあらら、かぶった。ごめん
0076ヒッキー@プログラミング
NGNGGetTickCountは、Windowsが起動してからの時間をミリ秒単位で
返す関数のようです。引数は無しです。
で、10ms経った時間を計ろうと思ったら、現在時間から前に計った時間を
引いて、10を超えたら…みたいに書いたらいいみたいです。
>>72
はい、なんとかHPにまとめてみたいと思います。
有意義な意見をくださる方がイパーイいらっしゃるので、
僕の為にだけではもったいないです。
>>73
そうですよね。Sinとか毎回計算してたら遅くなりそうですしね。
んで、線分の交差を検索したところ、外積やら知らない単語が
出てきたので、それを調べようとして泥沼状態です…
>その場合-1ではなく -1.0001 のようにするとだんだん…
ほおほお、たしかに(藁 取り入れてみたいです。
>>74
そういうことでしたか。ようやく納得できました。
ありがとうございます!
0077デフォルトの名無しさん
NGNGhttp://piza2.2ch.net/tech/kako/996/996157997.html
0078デフォルトの名無しさん
NGNGバーの端っこにぶつかったら急角度で跳ね返る、
要するに物理法則を無視した動きをするけどその辺はどのように解決する?
その辺をどうにかしないと、
バーやブロックや壁の垂直面・水平面が全て水平だったらボールの動く角度は
常に一定になるけど……。
0079デフォルトの名無しさん
NGNGアナログなコントローラでないと無理だけど。
008040
NGNG俺としては、物理学的なものは無視して、まずは形にすることをお勧めする。
0081デフォルトの名無しさん
NGNG単純に端に8ピクセルより近ければ 端からの距離を Dとして
VY:=-VT : VX=VX*D/8 とかでもそれなり
0082デフォルトの名無しさん
NGNGそれじゃボールのスピードが変わっちゃうYO!
0083デフォルトの名無しさん
NGNGリアルタイムゲームでキー押下イベントを使うVBアプリは糞と呼ばれます
描画はバックバッファを使うこと
非表示のPictureコントロール(AutoRedraw=True)に全部描いてから
FromにPictureコントロールの内容をコピーしよう
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG>>83
キーコード
カーソルキー左 37 、カーソルキー上 38、シフトキー 16
だっけ?左右逆かも。
0087デフォルトの名無しさん
NGNGvbKeyLeftとかってやつな
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090ヒッキー@プログラミング
NGNG↑次のファイルうぷしました。なんか、めり込みます…
線で跳ね返る処理をコピペしたら、おかしくなりました。
タマに、斜め方向に線をいれてます。(X状に)
>>77
リンク先、参考にさせてもらいます。どもです。
>>78
そうですね〜。完成が見えてきたら考えてみます。
>>79
アルカノイドのコンパネみたいなやつあったら嬉しいんですけどね(藁
>>80
うい〜。形を作ることを考えます。
>>81
そうですね〜。まずは好きにやってみます。
>>83
う…今回うぷした分でキー入力は修正しました。さんくす。
>>85
うい。してみました。
>>87
APIでキー入力の処理をしたので、VK_LEFTに変わってしまいました。
>>88
う〜ん、どのくらいでしょう。
趣味でたまにちょくちょくするくらいで、
期間的にはだいぶ長いことやってます…。
最初はファミリーベーシックで挫折(小学生時代)
ポケコンのベーシックにはまる(中学3年〜高校生)
CとVB勉強(高校〜)みたいな。
0091デフォルトの名無しさん
NGNGバグが酷いんだが、なんとかならんか?
激しく酷いぞ。
0092デフォルトの名無しさん
NGNG擬似スプライト処理をしたほうがいいね。ボールのフチが見えて萎える。
それからバックバッファを使わないと後々困ると思うよ。
いまのままだと、ボールやバーの移動量をふやすと軌跡がのこっちゃうでしょ。
0093デフォルトの名無しさん
NGNGこれは今すぐ直しなさい。
Form1_Unloadイベントに一行End書くだけでしょ。
タスクマネージャ見て驚いたよ。
0094ヒッキー@プログラミング
NGNGすいません、徐々に直していきます。
>>92
うい。了解。
前にフチを消す処理を書いたような覚えが…探してみます。
バックバッファですか。そこに書いてから実際の画面に転送ですよね。
やってみます。
>>93
ごめんなさい…ウチでもタスクマネージャ見たら溜まってたんで
焦りました。05を再アップしました。
今まで試してくださった方、大変申し訳ないです。
0095ヒッキー@プログラミング
NGNG↑次うぷしました。
背景になじませてみました
0096
NGNG覚えるの早いねー。
ブロックの管理あたりで一騒動ありそう・・・。
何か考えてる?
0097デフォルトの名無しさん
NGNG消化できてても吸収できてないと後々にひびく。
1が無理してなきゃいいが・・・
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG消化はできてるだろ。
問題は、覚えたかどうかだ。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGこのスレをヴァカ学生どものテキストに使いたいくらいじゃよ。
結局GDI描画にしたのねん。
メモリ上に仮想VRAMおったてて、スクリーンにBitBltかけるライブラリとか
なら探せばいくらでもありそう。
でも、プログラム的にはGDIのBitBltと同じような処理になっちまうだがな。
まあ、ともかく1よ、テキトーにがんばってくれや。
燃え尽きんようにな。
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGそうなの?
0104デフォルトの名無しさん
NGNGソースは全然見てねーけどな。
0105デフォルトの名無しさん
NGNGいや、その線はないだろう。ソースを見てみれ。
ある程度経験を積んだ奴はどんなに素人らしいコードを
書こうとしても、必ずその「痕跡」がコードに現れてくるものだ。
ただ>>1は、スレの育て方のコツを知っているみたいなので
もしかしたら「プロの2チャンネラー」かもしれん・・・
0106デフォルトの名無しさん
NGNG010773
NGNG衝突判定の為にはBallMove()の先頭で
next_x = ball_x + vx
next_y = ball_y + vy
として ball_x/y next_x/y の線分との距離判定を使いなさいと言った筈だ
1、まず、線分と線分の距離を求めるルーチンを作りなさい。
そして、 枠とラケットへの線分との距離を順に求めなさい
その距離がボールの大きさより小さければその回に衝突する
0108ヒッキー@プログラミング
NGNGだんだん難しくなってきたので昨日ほどの進捗は無いかもしれませんが…。
>>96
おー、ありがとうございます。嬉しいです。
ブロックの管理ですか…配列の中に入れようと思いますが、
まだぼんやりとしか思い浮かばないので、ちょっと紙に書いて考えます。
>>97
ちょっと無理目です。でも努力をしないと技術がつかないと思うので
がんばりたいと思います。
>>101
どもです。
スクリーンにBitbltですか。ウインドウから位置を計算してその上に
乗せればいいわけですね。
学校の先生ですか?がんばってください。
先生から受ける影響(ソースの書き方とか)大きいです。
>>105
2chねらー歴は数ヶ月です(藁
何度かスレ立てて、どうやったら面白いか考えてました。
おっしゃる通り、素人でございます。
強制するのはよくないよ。
自分で考えて作るのがプログラムの楽しさだ。
0110デフォルトの名無しさん
NGNGいまのままだと処理内容が増えるにつれて
リニアに遅くなるよね
0111デフォルトの名無しさん
NGNGゲームってそうゆうもんだよ。
0112デフォルトの名無しさん
NGNG>動くのしか作れないもので…VESAのライブラリ拾って16bit色
漢発見!
0113デフォルトの名無しさん
NGNGんなこたーない
1フレームの処理Pにかかる時間をn(msec)とし、
フレーム更新間隔をm(msec)としたら、
本来1フレームはPを処理したあとに(m-n)msecを
sleepすべきである。(これを画面走査線の動作に
あわせるのが、vsyncである)
したがって、n<=mである限り1フレームの更新間隔は
nによらず一定で、その値はmである。
0114デフォルトの名無しさん
NGNG1フレームの更新間隔m=(10+n)msecとなることは自明。
プログラムの組み方によるが、たとえばブロック1つにつき
処理時間lを要するとすれば、ブロック数kに対しn=a+l*kである
つまり、m=(a'+l*k)となり、変数kによってmが線形的に変化する
こととなる。
これは、「ブロックが大量にあるスタート時とブロック残り数が
少ない最後のほうでフレーム更新間隔が異なる」ことを意味する。
フレーム更新間隔の変化は、パドルの動作、ボールや演出の動作にも
影響を与え、ゲームとしての品質を低下させる。
0115ヒッキー@プログラミング
NGNGsleepの処理を改善してみました。>>113氏に感謝。
>>107
線分と線分の距離を求めるアルゴリズムを検索してみます。
ちょっと考えがついていってないので、しばしお待ちを…
>>110 - >>113 - >>114
ご指摘ありがとうございます。
たぶん、おっしゃる通りに改善できたと思います。
0116デフォルトの名無しさん
NGNGブロックとの衝突判定をどうするのかまだ決まっていない状態で
議論しても始まらんだろ。
とりあえずぱっと思い付いた(つーか、ありがちな)方法だが、
普通ブロックって奴を画面に配置する時は縦横きれいに整列されているので、
その構造を利用するだけでも
線1本との交差判定にかかる処理時間
縦方向に配置するブロックの最大数を r
横方向に配置するブロックの最大数を c
とした場合、その衝突判定にかかる処理時間は(生存しているブロックの
数に関わらず)
l * r * c
で済むんではないの?
(ついでに線との衝突判定を律義に1本ずつ計算せずに
「どの線とぶつかる可能性があるか」を計算で拾い出せば
もっと速いけどな)
0117116
NGNG>線1本との交差判定にかかる処理時間
を
>線1本との交差判定にかかる処理時間を l
に読み替えてくれ。
0118ヒッキー@プログラミング
NGNG0119ヒッキー@プログラミング
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG別に今回のブロック崩しでどういう処理をするかは論じてない
あくまでゲームループ一般の話題であり、ブロック衝突に
かかる計算量は、あくまで一例としたまでで
気に食わないなら「ボールが複数に分裂した場合」でも
「敵が複数出現する場合」でもかまわない
それよりあれだけの情報で新しいリリースではちゃんと修正している
>>1はかなり理解力が高いと思う
ソース見たけど、いわゆる「処理落ち」まできちんと考慮してるみたいだ
初心者は初心者なんだろうけど、頭はかなりよさそうだね
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG反射の処理が冗長な割に正確じゃないのよね。思い切って書き直したほうがいいと思う
if パドルの上端(上半分)に接触 then vy=-abs(vy)
if パドルの下端(下半分)に接触 then vy=abs(vy)
ってなふうにad hocに書いたほうが妙なバグに悩まされずに済むよ
0124速報
NGNGhttp://game.2ch.net/gamedev/
0125デフォルトの名無しさん
NGNGおお、待ち望んでいたものが。ワショーイ
0126デフォルトの名無しさん
NGNGってことは、これは板違いにつき終了ってことね。
0128デフォルトの名無しさん
NGNGまだインフラ整備されてないようだから、それまではいいんじゃない?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131ヒッキー@プログラミング
NGNG↑次あぷしました。
1.タマがめり込む現象の改善
2.線分の交差で跳ね返っていたのを消して、もっと単純に
>>123
思い切って書き直しました。
めり込みがなくなったかと思います。
>>124
昨日、記念カキコしてきました(藁
これが終ったら、向こうに逝きたいと思います。
>>127
あああああああああああああああああああああ、ちょっと待って(w
久々age
0132デフォルトの名無しさん
NGNGこういうのがゲ術板でも出てくるといいのだが。
0133デフォルトの名無しさん
NGNG0134
NGNG厨房減ればいいけど。
0135ヒッキー@プログラミング
NGNG↑次あぷしました。
ブロックとぶつかるようにしました。
>>120
本当にヒッキーです。かれこれ数ヶ月になります。
>>133
ワラタ
>>134
おぉ、ほんとだ。良い板になるといいですね。
0136デフォルトの名無しさん
NGNGもっとスピード早くして。
0137ヒッキー@プログラミング
NGNG早くしてみました。
0138デフォルトの名無しさん
NGNGいまんとこ定数ごっちゃになってないけど、
大丈夫か?きちんと見た目わかりやすく定義した方がよくないか?
そんなこという俺もいっつも適当だけど、鬱
0139ヒッキー@プログラミング
NGNG↑ついにゲームっぽくなりました。
>>138
定数ですか。
AND演算に使ってないので、大丈夫だと思います。
ただ、マジックナンバーをなくそうかと。
定義、見やすくしてみたいと思います。
0140デフォルトの名無しさん
NGNGなどと言ってみるテスト。
0141デフォルトの名無しさん
NGNG210点でクリアー.
1はいい調子だね.
0142デフォルトの名無しさん
NGNGいいね、いいね。シンプルだけど遊べるよ。
ただ、「この角度でボールに当たったら、こうは動かんだろ〜」という
ストレスが多少ありますね〜。
0143デフォルトの名無しさん
NGNG実は、リリース版まで上がってて小出しにしてるのかとか
一瞬疑ってしまったよ
モチベーションって大切だよな、うんうん
0144デフォルトの名無しさん
NGNG01462
NGNG0147ヒッキー@プログラミング
NGNG↑計算してみました。角度とか。
あと、ステージ2を追加しました。
>>140
間違えそうになりましたよ(藁
>>141
おお、どうもありがとうございます。21個、ブロックがあるので
210点になります。
>>142
たしかにちょっと変ですね…。
自機の横にあたったときは上に行くようにしてます。
>>143
このスレ立てたときに1から作りました。
みなさんのおかげで、なんとかゲームらしくなりました。ありがと〜。
>>144
まだまだがんばります!
>>145
うい〜。APIは僕も最初、ちんぷんかんぷんでした。
ある日、突然目覚めました。
>>146
お〜、どもです。スレ維持する為にがんばります。
昨日、アルゴリズムの本を買ってきました。
もうちょっと勉強します…
0148デフォルトの名無しさん
NGNG昔のブロック崩しは、ブロックの横からの判定がなくて当たり前で、
衝突判定はかなり単純なものだったなあ。
ボールの角度も、エポック社の取説では、ラケットに当たった位置に
よって、4方向(!)ぐらいだけだったような。
そのレベルはとっくに超えてて、いいぞゴルァ!
0149デフォルトの名無しさん
NGNG「貴様ら!○○作るので見てください」をシリーズ化キボン。
0150デフォルトの名無しさん
NGNG0151ヒッキー@プログラミング
NGNG↑3面追加&グラフィック変更しました。
>>148
おぉ、MSXですか。
当時はプログラムを打つと言えばファミリーベーシックしか知りませんでした。
MSXを知ったのはプレステ出てからです(藁
お褒めいただき、ありがとうございますゴルァ!
>>149
これ終ったら、また新たなスレ立てようと思っております。
みんなでシリーズ化したら面白そうですね。
0152デフォルトの名無しさん
NGNGそれちょっと考えてみた。
しかし、現時点でかなり1に遅れをとっている状態であり、
怖くて立てる勇気がない。
0154ヒッキー@プログラミング
NGNGさっきなんて書いたっけ…
http://www.geocities.co.jp/SiliconValley/2530/block14.zip
↑次あぷしました。
2周目以降の追加&ブロックから確実に跳ね返るようにしました。
>>152
厳しい意見をもらっても、凹まない精神があれば大丈夫と思います。
一緒にがんばりましょう。
>>153
テストプレイ、さんくすです。
ちょっと玉の加速度を上げました。
0155デフォルト
NGNG効果音とかあると気持ちいいかも。
0156デフォルトの名無しさん
NGNGでも乱立されるとちょっと。
0157デフォルトの名無しさん
NGNGゲ製作技術板でやるべき
0158デフォルトの名無しさん
NGNGゲームとは限らないの方向で一つ。
「貴様ら!コンパイラ作るので見て下さい」とか
0159デフォルトの名無しさん
NGNG「貴様ら!ゲームライブラリ作るので見てください」だったら萎え
0160デフォルトの名無しさん
NGNG0161ヒッキー@プログラミング
NGNG↑音が鳴るようになりました。
>>155
ステージデータ、ファイルから読めるようにしてみたいですねー。
Txtで作れるようにしようかな…。
>>160
それ、見てみたいです。
あ、行為だけならビデオで見てるか…
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG真面目に嫌。
0165デフォルトの名無しさん
NGNG>>1は何か他の言語の経験者?
0166ニセイチ
NGNGCOBOLとForthとアセンブラやったことあります。
0167デフォルトの名無しさん
NGNGで?そのレスのどこで笑え・・・・・と?
0168デフォルトの名無しさん
NGNG細々とやってたらしいよ。
基礎は身に付けてるみたい。
0169デフォルトの名無しさん
NGNG作ってくる1は、正直すごい。
さて、ステージデータのファイル形式、どんなのを作ってくるかな?
ステージエディタなんかも作ってみては?
0170デフォルトの名無しさん
NGNGそうなんだ。誰かコメントつけなさいってアドバイスしたのかと思った。
(すまんスレ全部読んでない)プログラマとしての素養は備えているね。
俺はだめだ。もうやーめたっと。
0171デフォルトの名無しさん
NGNGうるへーばか('Д´)お前はそこでかわいてゆけ
0173デフォルトの名無しさん
NGNG「うしおととら」の偽なまはげ編だな。
0174デフォルトの名無しさん
NGNGえへへ・・・お前・・・優しいなぁ・・・
■ このスレッドは過去ログ倉庫に格納されています