トップページ⇒tech
1001コメント487KB

貴様ら!ブロック崩し作るので見てください

■ このスレッドは過去ログ倉庫に格納されています
0001ヒッキー@プログラミングNGNG
VBでWinAPIを使う方法がわかってきたので
作りたくなりました。

Bitbltなど使う予定ですが、細かい技術がないので、
小出しにプログラムしようと思います。
(タマが動くだけとか、キーボードで自機を動かすだけとか)

オナーニスレだけどよろしくね。
0449デフォルトの名無しさんNGNG
>>446
○○コーダーっつって、どうせデモコーダーって言うんだろ。
デモコーダー=妄想上級者
このスレは現実主義。よって君はスレ違い。さよなら。
0450Javaでゲーム作ってたヒトNGNG
>>435
やってみりゃ分かるけど、System.gc()はまったく解決策になりません。
0451デフォルトの名無しさんNGNG
オナニスレはわかるがオナニレスはやめれ。
0452ヒッキー@プログラミングNGNG
ちょっとVC始めてみました。
MFCが相変わらずよくわかりません…。
CStringクラスとCTimeクラスというものをハケーンしました。
んで、MessageBoxで時間を出したりしました…。ムナシイ。

やっぱ自分でウインドウ作るところからやろうかなー。
VBで、ウインドウをグラフィカルに設計できるツールつくろうかと。
…ってそれを極めていったら一人MFCになるのか…鬱氏

>>423
リファレンスを読んだりしてたら、
ブロック崩しを作ることがおろそかになってきました。
>>424-425
ありがとうございます。
よくマニアックな人を呼び寄せるオーラがあると自分で感じます。
>>426
そうですねー。
もうちょっと見やすさについて模索してみたいと思います。
Delphiは…新たに文法を覚えるのに時間がかかりそうです。
>>427
Java、やってみようと思うんですが、WinXPでサポートされなく
なったりすると聞いたんで、考え中です。
>>429
ほおほお。参考になります。
WM_PAINTとか、メッセージ(?)がイパーイありますねー…
覚えきれるのだろうか。
>>430
やりました。
ものすごいですね。感動。3Dオブジェクトが(・∀・)イイ
>>432
おー、欲しいです。
できればソースも…。
0453デフォルトの名無しさんNGNG
MFCはまだ早くねえかい?

俺はWindowsAPIを学んだ方がとっつき易いと思う。
0454ヒッキー@プログラミングNGNG
>>433
やってみました。
付属のGBエミュがなんとも味があってよかったです。
ハードの限界をうまく生かしたつくりというか、
率直に言えば、視点がすごいですね。
>>434
GCについて検索してみました。
バージョンによって採用するアルゴリズムを変えているんでしょうか。
低レベル的な処理をあまり知らない僕的には、GC使わなくても、
毎回開放するソースを書いた方がいいんじゃないかと思うんですが。
うーん、そうするとJavaっぽさが減るのかな。
>>436
ういー。いろいろ手を出そうとしています。
昨日、Wave鳴らす処理書いてるときに、自分で波形作りたいなーと
思いまして、WaveOutOpenなどしてみようと思ったんですが、
なぜかうまくいきませんでした(藁
>>437
開発環境、Pen3なのですが、MMX200のノーパソでやったところ、
ガクガクしてました。早くしてみたいなぁという欲求はあります。
>>438
たしかにソースの拡張がしんどくなってきました。
ちゃんとした設計というのをやったことがないので、どのような
仕様書があれば混乱せずにまとめられるのかが分かりません…。
次は自分で理解できる範囲で文書化してから作ろうかと。
0455ヒッキー@プログラミングNGNG
>>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と違いがあるんでしょうか。早いとか?
プリンスオブペルシャって…シビアな設定のやつですか?
0456ヒッキー@プログラミングNGNG
>>447
思ったものを何でも作れるようになりたいです。
すぐに作れる、というより、何でも作ってしまえる自信を付けろ
ということを、おっしゃってるんではないかと勝手に解釈しています。
>>448
NHKの外国のホームドラマを思い出しました。場外から笑い声が…
>>449
デモってメガデモっていうやつですか?
>>451
あっぁっぁっぁ…
>>453
がんばってAPIを使いこなせるようになります。
まず、プロセス・スレッド・パイプなど謎の単語を理解しようと思います…。
あー、コンピュータ用語はムズカシイ。
0457デフォルトの名無しさんNGNG
>>1って今気がついたんだけど、ほんとにヒッキーなんだね・・・
15時に書きこむって…

# 折れもだけど、テスト2日前だから、結構早く帰ってこれる(藁
0458デフォルトの名無しさんNGNG
いきなりMFCは止めておいた方が良いと思う。
WinAPIなら「猫でもわかるプログラミング」あたりがお勧め。

折れもヒッキーなので応援してます(藁
0459デフォルトの名無しさんNGNG
この本がおすすめ
http://www.amazon.co.jp/exec/obidos/ASIN/4756136001/qid=1006946989/sr=1-9/ref=sr_1_0_9/249-2226099-7449900
0460デフォルトの名無しさんNGNG
そろそろ、ベタベタにグローバル変数を使うのをやめて、少しデータをまとめないか? 今のままだと、
コードを増やすにつれてメンテナンスが厳しくなる。

それと tmp1 とか Form1 みたいな名前は、真面目に付け直したほうがいい。良いソースコードという
のは、詳細を追わなくても字面を見るだけで処理内容が分かるぐらいに、名前の選び方に注意を払っ
てるよ。
0461442NGNG
ボールを2個以上にするなら、ボールの変数を構造体の配列にまとめて、ボールが
生きてるか死んでるかのフラグを構造体に追加。
ボールの処理しているところをループにして、全ての生きているボールに対して
処理するようにする。
これが一番簡単だと思うよ。ミスの判定は、生きているボールの数を表す変数を
用意するか、ボールを落としたときに全てのボールが死んでるかをチェック等。

何をしたらボールが増えるかってのはゲーム性に関わってくるので簡単には決め
れないが、システム的に一番簡単なのはいつでも次のボールを打てるようにして
しまうのかな。いつでも左クリックで球発射。でも残機が減るとか。その代わり
得点2倍みたいな。
0462442NGNG
いつでも自由に発射できるようにした場合は、以前あった案のキャッチして
面クリアが良さそうだね。キャッチできなかった球はロスト。
0463ヒッキー@プログラミングNGNG
>>457
本当にヒッキーですよ。
寝て起きてプログラム書いて本読んでの繰り返しです。
大学生ですか?
>>458
MFC、やめようと思ってきました(藁
APIは、本のマニュアルがあるのでなんとかなりそうです。
「猫でもわかるプログラミング」ですかー。ちょっと探してみます。
>>459
ほおほお。なんか硬派っぽい本ですねー。
本屋に逝った時に探してみようと思います。
>>460
自分でもちょっと感じてきてました…。
とりあえず、コントロールの名前をちゃんとつけました。
どの変数をローカルにしたらいいか考え中です。
グローバルのままの方が楽に感じるので、選別が難しいです。
>>461-462
おー、そういう処理の仕方があるんですね。参考になります。
フラグもたせれば処理しやすいですね。
2個以上が同時に出るとなると、ゲーム的には最後にキャッチ
する方がたしかに楽しいかも。
ゲーム性についても、いろいろ考えるようにします。
0464私的名スレ認定済みNGNG
>>455
> ご自愛が多すぎるので困っています。
ご自愛は週に3度までにしとけ。
0465デフォルトの名無しさんNGNG
>>463
>大学生?
じゃないよ、そんなにおとなじゃない(藁。
中坊だから。いまちょこっとずつ僕も勉強中(プログラムとテスト勉強)
0466ヒッキー@プログラミングNGNG
最近、ちょっと悩んでいる事があります。
あんまり考えるべきことではないかも知れませんが、
どの程度まで内部を把握してプログラムすべきかということです。

VBでも、速さを犠牲にする事を覚悟で、ある程度のCPU以上のもの
限定で作れば、物事を実現する為には簡単だと思うんです。
たとえコンピュータ内部を把握しなくても、実現できればいいんでは
ないかと。(僕は内部をつきつめたい方ですが。)

マクロメディアのディレクターとかでも、言語的は非常に限られていて、
凝ったアプリケーションを表現するには難しいかもしれませんが、
目的はもっと簡単に実現できると思うんです。

何が言いたいかといいますと、どこのレベルで自分で満足を得れるか
という事と、仕事としてはコンピュータをどの程度、低レベルな段階にまで
知ればいいのかということです。

C++にハマって、オブジェクトを組み立てるような感覚でプログラムする
のは非常にプログラムをするユーザとしてはありがたいですが、
機械語レベルでのオーバヘッドは勉強しないとわかりません。

また、機械語まで分解しないと気がすまない性分の人もいらっしゃるかと
思います。

僕は今はC++がわかればそれで満足を得られそうですが、もし、C++をマスター
する段階までいけたら、機械語を勉強せねば…とか思うかもしれないです。

それって、>>442さんのおっしゃる通り、アルゴリズムとは全く関係ない気が
するんですね。新たな言語を勉強していくだけで一生が終ってしまうような…。

ひとつの物事に執着して、殻にこもるのはカッコ悪いと感じますが、
言語をひとつに決めないとアルゴリズムを勉強できないのではないかと。

それからVBのような環境依存言語は、言語を覚えるという手間をヒトに
かけさせる時点でダメなような気がします。
あとCも、環境によって関数の名前が変わったり、(ライブラリを作る人が
違うというか、そのヒトが関数名に著作権的なものを感じさせているというか)
結局どれをやればいいのか思いつきません。

結論としては、僕的にはコンピュータを内部まで知らなくても、1回ソースを
書いたら全ての環境で全く同じソースがコンパイルできるようになったら
いいなと思います。


新たな言語に自分の環境をあわせる事に対する姿勢はどのような感じで
いけばいいのでしょうか。また、今までどうされて来ましたか?
仕事が今までどうりにこなせない不満などあると思うのですが。

せっかく書いたのでage
0467ヒッキー@プログラミングNGNG
なんかフリと結論が違うような書き方になってしまった…鬱駄

>>464
もっとしてるかも(藁
>>465
おー、中学生ですか。2chに来てると病みますよ。
テストは、数学をきっちりマスターするまで勉強した方がいいと思います。
他の勉強も、ゲームなどプログラムするときの糧となりますので、
おろそかにせずに、適当にかじる事をお勧めします。
やー、そんな早くからやってるとは。恐れ入ります。
0468デフォルトの名無しさんNGNG
>>466
> ひとつの物事に執着して、殻にこもるのはカッコ悪いと感じますが、
> 言語をひとつに決めないとアルゴリズムを勉強できないのではないかと。
大丈夫。最初の言語を覚えるのは苦労するけど、二番目は楽、三番目はもっと楽になるから。
0469デフォルトの名無しさんNGNG
>>467
かじってるていわれてもまだまだ(汗
三角関数とか独学で勉強中。

1さんって高校?大学?それ以上?
0470ヒッキー@プログラミングNGNG
>>468
ほおほお。そういうものですか。
僕はまともに書き方がわかるのはVBくらいなので分かりませんでした。
ちょっと救われた気がします。ご意見ありがとうございました。
>>469
おー、三角関数ってだいたい高校で習うんじゃないですか?
僕は年齢的には大学ですね。ハタチです。
このスレで教えてもらったところだけど、ここお勧めです。
http://www.kwansei.ac.jp/hs/z90010/hyousi/2106.htm
0471デフォルトの名無しさんNGNG
ひそかにマターリスレ?
0472458NGNG
MFCはAPIを理解してないと混乱する事請け合いです。
と言うより、ウィンドウメッセージ関連でしょうか。
クラスですから、C++も解っていた方がより楽ですし。

「猫でもわかる〜」はC/C++の入門にも良いです。
ここのおかげで本が不要(藁
http://www.kumei.ne.jp/c_lang/
0473デフォルトの名無しさんNGNG
matlab教えて
0474デフォルトの名無しさんNGNG
>>470
三角比は外国は中学校でちょこっとやるらしい。

VBが案だけできたらCも余裕でいけるんじゃない?
0475デフォルトの名無しさんNGNG
>>468
>大丈夫。最初の言語を覚えるのは苦労するけど、二番目は楽、三番目はもっと楽になるから。
そうだね。リュウを使えるようになるのに凄く苦労したけど春麗、ダルシムと加速度的に覚える
のが早くなり、一通り全キャラやった後にリュウに戻ると勝手にうまくなってるものだよね

板違いな上に時代錯誤な発言ですまん
0476デフォルトの名無しさんNGNG
>>475
そのマターリ感がこのスレにふさわしい
0477デフォルトの名無しさんNGNG
>>475
俺もそう思う。俺の場合は最初はケンだったけどな。
それでザンギエフとか使ってて、またケンに戻ってくると
通常技の使い方とかが上手になってるんだよ。
0478デフォルトの名無しさんNGNG
>>474
s/案/あれ/g;
0479デフォルトの名無しさんNGNG
┏━━━━━━報告書━━━━━┓
┃                    ┃
>1haヒッキーのため          ┃
15:00前後に良く書きこむようです。 ┃
┗━━━━━━━━━━━━━━┛
0480デフォルトの名無しさんNGNG
あのぅ、ヒッキーさんは C++ を覚えようとしてはるみたいですけど、
C++ はいろんなもの隠蔽しちゃってて、全然低レベルじゃないと思いますよ。
ましてや MFC なんて、裏で何やってんだかわかろうとするだけ無駄です。
やるなら高級アセンブラ C。
0481デフォルト素人さんNGNG
GCって何ですか?
0482デフォルトの名無しさんNGNG
>>480
> C++ はいろんなもの隠蔽しちゃってて、全然低レベルじゃないと思いますよ。
気のせい気のせい。C++ はソースを読んで(最適化前の)アセンブリコードが予想
できる代物で、その意味では C と同様に「高級アセンブラ」です。

ただ、ゲームを書くなら MFC はあまり嬉しくないとは思う。Win32 の基本的なフレー
ムワークは

 メッセージを使った処理

なんだけど、ゲームの場合にはこれを無視してしまった方が書きやすい(PeekMessage
でメッセージを見て、なかったらゲームを進行させるように書く)。MFC はそういうコードを
書くことは想定していないので、いろいろ面倒です。

もし C++ で書くなら、WTL の CWindowImpl あたりを使うか、もしくは素直に自分でウィン
ドウプロシージャを書くのが良いかと。
0483デフォルトの名無しさんNGNG
>>482
CWindowImpl は WTL じゃなくて ATL だな。ごめん。
0484デフォルトの名無しさんNGNG
>>481
ガベージコレクション、で google 検索。
0485デフォルトの名無しさんNGNG
C++でthrowしたのオブジェクトを参照でcatchしたときとか
アセンブリコードが予想できたら結構すごい。
0486デフォルトの名無しさんNGNG
C++=MFCと決めつけるのはよくないかと。
漏れはC++使ってるけど、MFCなんて使ってないよ。
0487PGでもSEでもないシロウトだがNGNG
>>466
> どの程度まで内部を把握してプログラムすべきかということです。

その前に、
グローバル変数とローカル変数の使い分けっつーか、
モジュール化とか意識するようになったほうが良いと思われ。
順番として。

シロウト考えなんで、プロのかたの意見を優先に参考にしてください。
0488ヒッキー@プログラミングNGNG
>>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
そうですね…。たしかに考えが飛躍していたように思います。
僕的には、目標がはっきりしていた方が勉強しやすいので、
悩みを解消したいのもあって、意見を書いてみました。
0489一応プロNGNG
煙たいっていうか、基礎を勉強するならCの方が良くねえかい?ってことだ。
今は、アルゴリズムとデータ構造を徹底的に叩き込むべきだと思う。

その後で、効率よくプログラミングするためにはオブジェクト指向で設計した方がいいかもしんない、
って自然に思うようになるから。オブジェクト指向の勉強はそこからでも遅くはない。

「C++って既存のライブラリがいっぱいあるでしょ?そっち使った方が楽じゃん」という考えは
プログラミング初心者はしないほうが良いです。じゃないとスキルは伸びないと思う。

Cでインタプリタを作ってみたら?
基礎的なアルゴリズムを一通り学べるし、ある程度動くようになったら、オブジェクト指向で
メインコードを簡略化したくなるよ。あ、できるだけ文法はCに近いものがいいかも。
0490ヒッキー@プログラミングNGNG
>>489
ご意見ありがとうございます。
たしかに、既存のライブラリに頼って、それを呼び出すだけの
プログラムを書いたところで、自分の技量には何の関係も無いですね。
やはり、経験を積まれた方の意見は重みがあります…。
インタプリタって文を分解して、1行ずつ実行するというアレの事ですか?
うーん、どうやって実装したらいいのでしょう。
文を、中間的なバイナリコードに変換してそれを逐次、実行するような
感じでしょうか。文の内容をそのまま実行して逝ったらいいんでしょうか。
いろいろ考えてみようと思います。
0491489NGNG
そうだねいったん中間コードを吐いて、VM上で実行すれば生成されたバイナリは
VM上であればWindowsだろうがLinuxだろうが動くから嬉しいかも。

最初は、変数はアルファベット1文字、型は整数のみとかに制限したりするといいよ。

とりあえずこの辺を参考にしてみて。
http://pc.2ch.net/test/read.cgi/tech/981672957/
0492デフォルトの名無しさんNGNG
Cに逝くか、他に逝くか逝かないかは自由だからね。
ただCをお勧めする。
0493デフォルトの名無しさんNGNG
>>491
ちょっと待ちいや。いきなりインタプリタは酷やろ。
ヒッキー、迷路や迷路。迷路作成プログラム作ってみ。結構奥深いで。
0494デフォルトの名無しさんNGNG
>>493
激同。迷路は奥が深い。
折れも昔作ったなぁ。

# 「活字」の関西弁は気持ち悪い(藁
# 一応関西人ですが(私
0495デフォルトの名無しさんNGNG
3D迷路とか。
0496デフォルトの名無しさんNGNG
>>494
まぁええがな(w

>>495
それは単なる表示上の応用やな。基本的には二次元でええやろ
そや、2ちゃんにもカキコできるようにテキスト迷路なんてどや?50x50ぐらいのん。
0497デフォルトな名無しさんNGNG
>>496

優良スレたてるまで出られないとか。
0498デフォルトの名無しさんNGNG
>ヒッキー@プログラミング氏
どんどん挑戦する事が大切!ですね。
>>493氏の提案している迷路なんてどや(藁

# でも騙りも出ずにってすごいなぁ(藁
0499458だったものNGNG
挑戦することが大切か…最近その心意気を忘れてる気がするよ。
俺もここで何かやってみるかな。しかし受験もあるし。

鬱堕詩嚢
0500デフォルトの名無しさんNGNG
>>500get !! (藁
挑戦すること…ですね。
折れも受験だしなぁ。来年、ガンバロ〜っと。
0501デフォルトの名無しさんNGNG
受験を来年頑張れ♥
0502デフォルトの名無しさんNGNG
>>501
受験を来年って浪…(自粛)…じゃん(藁

それはそうと、電子投票ほうが成立したね。
┓(´д`)―y。o(どうなるんだろ?)
0503ヒッキー@プログラミングNGNG
http://www.geocities.co.jp/SiliconValley/2530/
↑次うぷしました。変更点は

・ソースの部分的なモジュール化
・NativeCodeコンパイルに変更

です。見た目と動きはほぼ変わりません…。

>>491
ほおほお。中間コードを吐く方法でよかったですか。
自分で変なこと言ってたらどうしようとか心配してました。
スレ、読んでみます。ありがとうございます。
>>492
了解。Cの方向で。
>>493
やっぱインタプリタは難しいですか…。
迷路でも、ちゃんと完成させるのがムズカシそうだ。
一回、作ってみようと思います。
>>494
いくつもゴールへのルートがあると難しそうですねー。
僕も関西人です。
>>495
3D…がんばれゴエモンみたいなやつですか。
>>496
あー、2chにカキコできるサイズのものだったら面白いですね。
>>497
どういうゲームなんでしょうか(w
最良スレの定義がわからない…
>>498
ういー。どんどん挑戦してみようと思います。
体力が続く限りやります。
>>499
受験生ですかー。たいへんですね。
プログラムはいつでもできるので、まっとうな道を進む事をお勧めします。
僕みたいになると、先が見えないので大変です。
>>500
おぉ、受験生多いなぁ。
やっぱ数学してないと大変です。数学がんばってください。
>>502
電子投票ってどんなんでしょ?
選挙でつかうんでしょうか。
0504458そのものNGNG
これも道の一つだと思ってる自分は、終わってるんでしょうか(藁
しかも受験は受験でも高校受験だったりして。
ってスレとは完全に関係ないのでsage
0505デフォルトの名無しさんNGNG
折角ブロック崩しでやってきたんだから ブロック崩しを他言語でやってみる方が違いが判っていいと思うけどなあ
で、VBから一番移動し易いのはやっぱりDelphi。
  Cマガの付録CDに入ってるんだから、お金もそんなにかからんし
 ソースを見る限り VBにしかないselect文とか使ってないから Delphiには殆どそのまま移植可能
 簡単でないのはコントロール配列の扱いくらいかな

それに VBとDelphiの比較サイトは結構あるし
ttp://www.threeweb.ad.jp/~satou/delphi1.htm
ttp://www.ab.wakwak.com/~greenspace/dev-api/develop/step_1.html
0506デフォルトの名無しさんNGNG
言語の違いを学ぶより、アルゴリズムとデータ構造の方が大事だろ。
0507一応プロNGNG
>>1
インタプリタの見本っぽいの作ったけどいるか?構文解析の参考になると思う。
インタプリタっつーか、式を入力してそれを計算して結果を表示するだけだけど。

例えば、
>3*(2 + (a - 2) % 3)
と入力すると、
a =
となるので、aに値を入力。
すると答えが表示される。

ただし、入力できる式は、リテラル整数は1桁のみ、変数はa-zA-Zの52種類。
演算子は、+-%*/の5種類。

# ろくな字句解析してないのに4時間もかかった・・・。コード的には300行弱。
0508一応プロNGNG
あ、なんか否定されてた(´Д`;)

インタプリタと言ってもピンきりだよ。

add 1 1

とかを解析・実行して結果を2と表示するものとかなら簡単でしょ?
そういうとこから始めたらいいよ。
0509デフォルトの名無しさんNGNG
>>507
どうでもいいけど、それってインタプリタじゃなくて電卓って言わない?
0510デフォルトの名無しさんNGNG
>>509
電卓もインタープリタの一部ともいえる
0511デフォルトの名無しさんNGNG
>>509
いちおう構文解析が入る(演算子の優先順位を考慮に入れる必要がある)から
単なる電卓とは違うけど、そこから言語処理系への道はかなり遠いよな。
0512一応プロNGNG
>>511
再帰下降解析すれば、そう遠くないよ。

言語処理系として難しいのは最適化あたりじゃないか?
あと、エラー処理かな。エラーが起きたら中断するだけなら簡単だけど。
最適化まではやったことないから知らんけど。

中間コードを生成して、それを解釈実行するところまではそう難しくないって。
そこまでは別に難しいアルゴリズムなんてないし。
0513374NGNG
あ、第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

重複する処理は書いてはいけない、修正や変更が大変になります。
ちょっとづつ値が違うような処理は変数をうまく使えばひとつにまとめられます。
似たような構文が続くものは必ずうまく書く方法があるのでそこに注意してみてください。

あと、実行させると自機が自動で左に移動します。
カーソルきかないっす。仕様ですか(笑。
0514ヒッキー@プログラミングNGNG
>>504
挑戦する事を忘れるのはまだ早いですよ(藁
高校受験ですかー。たいへんですね…。
その頃、今まで生きてきた中で一番勉強してた時期のような気がします。
吸収が良い時期なので、なんでも勉強した方がいいかもしれませんね。
>>505
Delphiは…VBと同じような位置付けに感じるので、やっぱやめとこうかと
思っています。他のOSでもDelphiが使えたら考えるかも。
あ、パスカル言語という風に考えたら検索したら見つかるかもしれないですね。
>>506
はい。アルゴリズムを覚える方をかんばります。
>>507-508
おぉ、ありがとうございます。
見せて頂けるなら欲しいです。
いきなりインタープリタと考えると難しいけど、一個一個解決して
いけばいいんですね。
>>511
うーん、やっぱインタープリタの道は険しいのか…
>>512
最適化って、どの変数にレジスタを割り振るかとか、
ややこしそうな処理のことでしょうか…。
>>中間コードを生成して、それを解釈実行するところまではそう難しくないって。
ほおほお。なんか安心しました(w
>>513
おー、具体的な例を挙げて、教えてくださってありがとうございます。
たしかに重複する箇所が多かったと思います。
RECTのところ、おっしゃる通りに変更してみたら、読みやすくなりました。
他の所も修正しようと思います。
あ、あとForm_initializeのところ、書き直したらいけました。
なぜか前にやったときはうまく逝かなかったんだけどなぁ…うーん。
0515ヒッキー@プログラミングNGNG
あー、そういえば左に動くのは、JoyStickに対応しようとしたから
でした…。joyStickの関数がちゃんと値を返してくれないような…。
もしくわ僕の書き方が悪いのかもしれません。
とりあえず、一時的に消します。
0516一応プロNGNG
>>1
ほれ。
ttp://www2.makani.to/akutoku/upload/dat/1007214743.lzh
パッと見て悪いと思う部分は真似ないように!

ダウンしたら>>1のサイトで配布しても良いよ。
上のが消えてもダウンできるように。
0517一応プロNGNG
あ、>>516のコードは中間コード生成してないから。
0518デフォルトの名無しさんNGNG
>>516
> ファイルへの直接リンク(アップローダのページからクリックすれば、見れます)
と言われて拾えないんだけど。2:00 以降になれば OK?

>>512
> 再帰下降解析すれば、そう遠くないよ。
ま、数式の解析から言語処理系への過程が遠いか遠くないかは、実物を見て本人
が判断すりゃ良いやね。(俺は遠いと思うけど)

前に勉強がてら書いた Pascal ライクな処理系のコード置いときます。中間コードの
生成と、コンパイル時に 1 + 1 を事前に 2 と置き換える程度の簡単な最適化が入っ
てます。
http://members.tripod.co.jp/lambda_func/pc.zip

#TRY - CATCH とかはお遊びで書いてるので、真似しないようにね。
0519374NGNG
JoyStickに!?
すごいなぁ。どんどんやってください。
二十歳の実務経験なしでここまでできるとは驚きです。
ソース見てると、欲しいところにうまくコメントを書いているし、
いろいろ調べ物もうまいみたいだし、成長も速いし、
いいなぁ欲しい人材です。ウチの新人もこうであれば...。

あと、インタプリタやらなにやら話があがっていますが、
あなたの好きなところからプログラムをやっていくことがいいと思います。
好きなことをやってると成長は速いです。
APIに興味があるようなのでそちらで何かやってみては?
0520一応プロNGNG
>>518
俺はHSP程度なら数式解析とたいした差はないと思ってる。
というか、やってみたら意外と簡単だったっていうのが正直な感想。
# それまですごく難しいものだと思ってた。

もちろん言語処理は奥が深いからピンキリだね。
>>518の"遠い"と言うのはそういうことかな?だったら激しく同意。

実は俺はまだ言語処理系触れ始めと言っていいくらい。
yaccとかlexは使わないで1からゴリゴリ書いてるけど、再帰下降解析
はほとんど差が無く感じるな。管理するデータが多くなったくらいで・・・。

あ、ソース頂きました。

>>519
ま、結局は>>1次第だね。
でも言語処理ってゲームで生かせると思う。
俺も20歳なんだけど、どう?(笑)
仕事中に2chに出入りしてる人間はダメ?

# いちいち長いな(´Д`;)
0521名無し@就職活動中NGNG
>>519
やっぱ現段階でそこそこできるやつよりも、
1氏のように頭のきれる人のほうがいいですよね・・・

>>1
あなたの情熱がうらやましいです。がんばってください。
0522 NGNG
>>521
新卒なら確かにそうだけどな。

でも>>1や>>518や>>520を目の当たりにして、僻んでるだけの>>521は一番
いらない存在だな。

こんな時間に起きてる俺もいらないな。
0523ヒッキー@プログラミングNGNG
今日は一日中寝ていました。

>>516
どもども。いただきました。
これから拝見させていただきます。
>>518
おー、すんませんです。
いただきました。参考にさせていただきます。
>>1 + 1 を事前に 2 と置き換える
あー、定数の演算の場合、すでに計算しておくっていう方法もあるんですね。
>>519
ありがとうございます。嬉しいです。
あんまり誉められると頭に乗ってしまいます…。
>>あと、インタプリタやらなにやら話があがっていますが、
>>あなたの好きなところからプログラムをやっていくことがいいと思います。
了解しました。
インタープリタは、HSPを知ったときに、ちょっと作ってみたいなぁと
感じていたので、興味はあります。
とりあえず今はもうちょっと簡単な事からやってみようかと…。
APIでウインドウを作って、メモ帳のようなものでも作ろうと思います。
>>520
おー、ハタチなんですか?すごいですね…。
僕もいつか追いつきたいと思います。
>>521
ありがとうございます。
引きこもってると楽なので、勉強がしやすいです。
なぜか学校逝ってる時は勉強の時間に勉強しないんだけど…(藁
社会に出ると、できるかどうかわかりません。
精神的に追い詰められやすい性格なので…。
>>522
いやいや、いらないと思うよりは、できると仮定して
能力を伸ばしていく事の方が大事じゃないですか?
いらないと決めて、いらない人間になってしまったら
本当に社会にとって良くないと思います。
どのような人であれ、同じような量の食事やらをするわけですから。
マジレススマソ。
0524522@就職活動中NGNG
確かに僻んでる。羨ましいもん。
でもなーんにもしてない、ってわけじゃないよん。
つーか激しく板違いなので消えます。
0525デフォルトの名無しさんNGNG
恐らくblock28.zipが最新版だと思うのですが、
3面から出てくる金のブロックを壊した時に、画面の左上の隅に毎回黄色のブロックが出現します。
ソースを見てないけど自分の推測では恐らく金のブロックは2回当てると壊せるブロックで、
1回当てると黄色のブロックに変化させるつもりが、位置を設定してないため毎回(0,0)の
位置に誤って出現しているのだと思います。
通常じゃ配置されそうにない位置に出現するのと、他のブロックと画像が重なることがあることからそう判断しました。

けどバグじゃなくても直してほしいです。このブロックのせいで4面がいつまでたってもクリアできない…

あとバーが左端にあった時だったと思いますが、真横からボールが当たった時バーが少し壁にめり込みました。
しかしこれは別にゲームに支障がないのでバグとはいえないかな?

あと非常に面白いです。コンボで一気に点が入るところが。
0526505NGNG
>>514
>Delphiは…VBと同じような位置付けに感じるので、やっぱやめとこうかと
>思っています。他のOSでもDelphiが使えたら考えるかも

 同じといえば同じだけど・・・・・まあいいか・・・
もしC++で躓くようならDelphiを経由するといいよって感じでね
0527デフォルトの名無しさんNGNG
んー、どの言語でも最終的に機械語として実行されるのと同じぐらい
どのWindowsアプリも最終的にAPI呼び出しで実行されるんだから、
CでAPIを叩くのはいい勉強になると思う。
API呼び出しだけでプログラミングするとなるとDelphiよりCのほうが素直
だと思うし。
そのあとC++にいくかDelphiにいくかVBに戻るかVB.netに行っちゃうかは
趣味の問題だと思うけど。
0528デフォルトの名無しさんNGNG
>>527
API呼び出しってのが 猫でものように、SDKレベルのメッセージループを直に書く
ことだとするならDelphiでも素直に書けるよ。

ただし、Cの方がオフィシャルな参考書があるという事が大きいね
 Cの文法も判らないと勉強出来ない。だから必須という事なら賛成するよ。

個人的には VB->C->Delphi->Java->C++の順に学ぶのが王道だと思ってるんだけどね
0529デフォルトの名無しさんNGNG
>>528
A、B、Cの順番を踏襲したからなぁ。
0530クロスボウとやらNGNG
おいら的には
VB->Delphi->C->Java->C++
が良いと思われ。
0531デフォルトの名無しさんNGNG
>>528
Delphiは余計
0532デフォルトの名無しさんNGNG
すすめるのは結構だがRADとそうでないので区別した方がいいと思うが。
漏れはVB->C++でいいと思う。
っていうか、移る前にVB使いこなせっつーの。
VBでDirectX。これが通の頼み方。
0533デフォルトの名無しさんNGNG
>>531 そうか? 俺は色々な面で勉強になったよ。
 今でも自作ツール作る時はDelphiだ。
0534ヒッキー@プログラミングNGNG
http://www.geocities.co.jp/SiliconValley/2530/
↑次UPしました。変更点は

・ボールを3つ同時に出せるように変更
・ボールを全て回収したらステージクリア

です。最後に回収しないといけないようにしました。

>>524
がんばっていらっしゃるなら、前向きになられる事をお勧めします。
後ろ向いて勉強したら自分にとって負担になると思います。

>>525
どうもすみません…変な位置にブロックが移動する現象、直しました。
バーの横からボールに当たったとき、ちょっと動いてしまうような
ソースを書いているのですが、自分でもちょっと変だと思っています…。
直そうかな。
>あと非常に面白いです。コンボで一気に点が入るところが
ありがとうございます。
お褒めの言葉を頂くと、何より励みになります。
0535ヒッキー@プログラミングNGNG
>>526
ちょっとC++は敷居が高くて困っていました…。
うーん、Delphiも触ってみようかな。

>>527
そうですねー。CからAPIを呼び出すほうが簡単に感じます。
Delphiは触った事ないけど…。

>>528
あ、Delphiでも素直に書けるんですね。
だんだん揺らいできた(w

>>529
どういうことでしょう?

>>530
ほおほお。やっぱそういう順路もありなんですね。

>>532
ごめんなさい…。
VBでDirectXですかー。うーん、DirectX使うんだったら
なんとなくC覚えたいなぁ。

>>533
ツールを作るときのような手軽さはやっぱC++にはなさそうですね…。
0536デフォルトの名無しさんNGNG
>>1
早速、やってみたよ。バグじゃないけど報告
ゲームバランスの調整になるかもしれないが
玉が3つゲーム画面上にあると極端に自機の動きが重くなり
玉のスピードについていけない感じがします。
0537ヒッキー@プログラミングNGNG
>>536
ご報告ありがとうございます。
ウチの環境では遅くならないのでわかりませんでした…。
やっぱ知恵を使わないとだんだん重くなりますよね。
ソースを見直します。
0538デフォルトの名無しさんNGNG
29やってみました。
ボールが同時に出るようになったんですね。素晴らしい。
個人的にはボール同士が衝突してほしいです。

Delphi Personalは無料ですし試してみるといいかもしれません。
0539デフォルトの名無しさんNGNG
もう買われてしまったVCがかわいそう(´Д`;)
0540一応プロNGNG
背景を縦スクロールさせたり
ブロックが動いたり
ブロックからミサイルが飛んできたり


このままシューティングにシフトしていったら面白いシューティングができるかも。
0541デフォルトの名無しさんNGNG
>>535
> VBでDirectXですかー。うーん、DirectX使うんだったら
> なんとなくC覚えたいなぁ。
マジレス

DirectX 使うなら C ではなく C++。DirectX は COM コンポーネントとして提供
されてるから C++ 使わないと記法が鬱陶しい(設計をオブジェクト指向でやる
必要はないけどさ)。
0542374NGNG
おおっ、ボール3つ同時は面白い。
でも、そのおかげでオヂサンには、
1面すらクリアできなくなりました。(最高2面。鬱...

ブロック壊すとアイテムが落ちてくるなんてのは面白いかもね。
1アップとかボールが下でも跳ね返る(落ちなくなる)ようになるとか
0543ヒッキー@プログラミングNGNG
>>538
ボーランドのソフト、無償でいろいろ提供されてますね。ビクーリ。
ボールの衝突ですかー。書いてみようと思います。

>>539
実はVisualStudioを買ってしまいました(藁

>>540
スクロールしたら見た目が大幅に変わりそうでいいですねー。
ブロックからミサイル…完全にシューティング化ですね(w

>>541
ほおほお。やっぱC++ですね。
オブジェクト作るときのnewとかどうやってCで書くのかわからない…。
うーん、勉強します。

>>542
僕もクリアできなくなりました…。
アイテム出てくるともっと良くなりそうですね。
まだまだ改良の余地がありそう。
0544デフォルトの名無しさんNGNG
今回のバージョンってブロック壊した後にボール受け止めなくちゃいけないんだね。
次の面に行った瞬間死んじゃったりしたよ。キツイなぁ。これって前のままじゃだめなの?

あとボールが3つに増えると自機が遅くなるバグだけど、
ウチの環境ではマウスで動かしているとそうなったよ。キーボードだと普通に遊べる。

あとアイテムのことだけど、ブロック崩しはもともとバランスのいいゲームだと思うから出し過ぎは危険だと思うよ。
棒が長くなったりボールが分裂したりはいいけど(むしろちょっと歓迎)、間違ってもミサイルでブロックを壊せるなんてものは登場してほしくないなぁ。

最後に口調がちょっと生意気気味ですいません。
0545一応プロNGNG
>>544
>あとアイテムのことだけど、ブロック崩しはもともとバランスのいいゲームだと思うから出し過ぎは危険だと思うよ。

その考え方のほうが危険じゃないか?発想力が乏しくなりそう。
個人の好みだけど、そういう考え方は好きではないな。

「ブロック崩しはこういうもの」とかいう定義は勉強中のプログラマにはして欲しくないな。
それはゲームを"するだけの人間"に任せておけばいいだろう。

仮に「ミサイルでブロックを壊す」という機能を実装して、ゲーム性が損なわれたとしたら、
それを補うアイデアを考えればよい。時間は十分にあるんだから。

趣味でやってるんだから、気に入ったアイデアがあったらとりあえず実装してみれ。
0546デフォルトの名無しさんNGNG
>>545
それはそうなんですけどね。
ただ今回のバージョンアップ版をやってみてゲームバランスが崩れかかってるかなと思ったんですよ。
前のバージョンの方がよかったなって。
なんか今回のバージョンになってブロック崩し本来の面白さが欠けたような気がする。(そうはいってもボール分裂は見たい…)
けどミサイルなんて物はブロック崩し本来の面白さを完全にぶち壊してしまうような気がする。

そして一度その方向に進んでしまうと、もう二度と本来の面白さを生かすような方向には転換しない気がする。
まぁそれを1さんが見事に面白くしてくれればいうことなしなんだけど。
0547デフォルトの名無しさんNGNG
1のスキルアップの為に作ってるんだから、今はゲーム性よりもプログラム的な
発展を評価すべきだよ。
ちなみにボールを増やすのを指示したのは俺だけど、1の今の技量でいきなりアイ
テムを出すのはキツいと思ったから暫定的に今のシステムを提案しただけだよ。
もしこの先アイテムを出すとして、ボールが分裂するアイテムが出たとしても、
今の状態からなら新しいボール発生の条件を変えるだけで済むし。

今のシステムを生かすなら、得点システムを変えてコンボボーナスを無くして
変わりに飛ばしてるボールの数によって2倍、4倍の点が入るようにするのが
いいかな。あとは、ボールが2個以上飛んでる場合は右クリックしながら受けると
キャッチできるとか。

ミサイルでブロックを破壊はブロック崩しとしては常識外れだけど、それでも闇雲
に否定するのもどうかと思うよ。例えば、ミサイルで攻撃する対象はブロックでは
なくてボールにして、ボールの動きに干渉できるようにするとか、いくらでも考え
ようはあるかと。
0548528NGNG
>>531
「習うより慣れろ」  これ大抵の技術の一番の習得方法

そりゃ横に誰かいて手取り足取り教えてくれるなら別だけど、
独習なら手軽に試せて結果も満足いくDelphiを 間に挟むのは良い事だと思うよ
■ このスレッドは過去ログ倉庫に格納されています