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

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

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

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

オナーニスレだけどよろしくね。
0557デフォルトの名無しさんNGNG
>>552

>それと1よ、みんなの意見を取り入れるのはいいが、
>自分で思いついたアイディアも積極的に入れていった方がいいと思うよ。
>実装は難しそうでもここに書いてくれれば、
>実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。

552さんの提案は、非常に有益だと考えます。
プログラム学習者にとってもこのスレがこういう方向に
進むことを期待します。
0558555NGNG

 VBでも Cでも 確かに再利用し易いように組む事は出来る。
 でも、それは独習で身につくのだろうか?
 指導者がついているか、適性があり経験を重ねて身につくものだと思う

言い切っちゃうとさ、管理者居なくて独習で経験を重ねてるだけじゃ VB/Cだと悪い癖しか付かないよ
 それは実際の現場見りゃ判るでしょ? 経験xx年のプログラマの作るコードがどんなものかさ

なお、Delphiでコンポを作る場面はRADじゃない。
でもその作業がスグにRADに反映してゆくから、 少しの苦労で見入りが大きい。
そういう点から学習効率がいいと思うんだ。

まあ本人の問題だから本人が決めればいいことだけどさ
0559デフォルトの名無しさんNGNG
>>558
> VBでも Cでも 確かに再利用し易いように組む事は出来る。
> でも、それは独習で身につくのだろうか?
はい。

ソフトウェアコンストラクションに関しては、管理者がいようが仕事でやろうが、本人
が勉強してコード書いて頭と身体で覚えないとダメです。RAD や周囲の環境は補助
にはなるけど、それだけで自動的にコンストラクション能力が上がるものではない。

これだけだとなんなんで、推薦図書を。推薦図書スレにも書いたので重複になるけ
ど、今の >>1 に合いそうなものを抜粋ね。

コードコンプリート―完全なプログラミングを目指して
マコネル,スティーブ ;石川 勝
アスキー (1994)ISBN:4756102107

ライティングソリッドコード―バグのないプログラミングを目指して
Steve Maguire
アスキー ISBN:4756103642

プログラミング作法
Brian Kernighan, Rob Pike
アスキー ISBN:4756136494
0560 NGNG
>>1が思いついたアイデアをココに書いて欲しいナァ。
0561デフォルトの名無しさんNGNG
そういえば、このグロック崩しで
効果音がなった時、一瞬だけ描画が止まるというか
カクッとなるの、俺だけ?
0562デフォルトの名無しさんNGNG
斜めに傾いたブロックってどうよ? /
反射のバリエーションが増えるよ。名付けてリフレクターブロック(でいいのかな?)!

あと自機を \__/ の形にするってのはどうよ。傾く角度も変わったりして。
0563超大作NGNG
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

はぁ、疲れた、
0564デフォルトの名無しさんNGNG
>>563
どうやってプレイしろと・・・。
0565デフォルトの名無しさんNGNG
>>562
そもそも「ブロック」であることに拘らなくてもいいのでは?
#でもそうすると「ブロック」崩しではなくなるか(w

あと、時機も「パドル」であることに拘らなくてもいいのでは?

などなどと、考えていると面白いアイデアも出てくるのでは?

例えば…

・ブロックでなくてインベーダーだとか
・時機はパドルでなくてバット(昔の野球盤風)

なんてのは?面ごとにそんな趣向を凝らしても面白いかもね。
0566ヒッキー@プログラミングNGNG
>>544
なんか面クリアと見せかけてゲームオーバーになったりしますね…。書き直します。
前のままにすると、なんか足らない気がして、最後に受けた方がいいかなぁと。
ウチでも、マウスで動かすと遅くなりました…。気付かなかった。鬱氏
ミサイルで壊すっていうのは結構いろんなブロック崩しで出てきますねー。
僕もちょっと違和感を感じます。アイテムは何かしら出したいとは思っています。

>>545
そうですね。そういう考え方もできるのか…。ご意見ありがとうございます。
なんか、人の意見を尊重しようとするあまり、自分の意思が欠けてたような
気がします。

>>546
やっぱゲームっていうジャンル上、プログラムの実装の仕方なんて、
ユーザには何も関係ないですもんね…。
面白いものを目指す事を忘れないようにしたいです。

>>547
おー、ボールの分裂の意見をくださったかたですか。
同時に飛んでいるボールの数によって点を変えるようにしたほうが
良いかもしれないですね。必然的にユーザは
ボールをいくつも出す→危険な事に挑戦するという感じで、
面白さに繋がるかもしれませんね。
ミサイルにボールが当たると動きが変わるというシステムは斬新ですねー。
参考にさせていただきます。
0567デフォルトの名無しさんNGNG
背景に裸の女の子
0568ヒッキー@プログラミングNGNG
>>548
手軽に試せるという風に考えると、C++に逝くよりはDelphiの方が
よさそうですね。ついでに無料みたいだし…惹かれてみたり

>>549
うーん、そうなんですかね?どうなんでしょう。
やっぱお勧めになるという事は、それなりのワケがあるんだと思います。

>>550
そういう事だったのか(藁

>>551
あー、そういえばホイールついてましたね。
関係ないけど、目の付け所がシャープですね。

>>552
やっぱウインドウ作ったりボタン作ったりってゲームにはあまり
関係ない要素ですよね。作り始めてやっと気付きましたが(w
>>実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
ありがとうございます。
僕も何か考えて、まずここで発表してから実装に移ろうかと思います。
0569ヒッキー@プログラミングNGNG
>>553
>>DirectX だとこれがタイミングによっては「失敗」することを考慮する必要がある。
なんかむずかしそうだ…。
キューに処理を貯めて、それを実行するって複雑そうですねー。
何の機能も無い、キューの構造を作るだけでひぃひぃ言いそうなんですが(藁

>>554
サーフェイスって、メモリ上のビットマップのことでしょうか?

>>555
コンパイルする時間ってなんかドキドキします。
たいがい、凡ミスエラーだらけなんですが…。
うーん、なんかプログラムを楽しんでできそうですねー。Delphi。

>>556
いつまでもヌルい環境に浸っていたらダメかもしれないですね。
最初、ウインドウをAPIで作ったとき、驚愕しました。

>>557
僕にとっても非常にありがたいです(藁

>>558
再利用しやすいコードって、非常に難しいです。
汎用的に書いてるつもりでも、実は他のプログラムにコピペしたら
穴だらけみたいなソースをいつも書いています…。
※なんか、全てのパターンを満たすほど意見があって、自分で取捨選択
 するのが難しいんですが…。

>>559
おー、本で勉強すれば自分でもスバラシいコードが書けるように
なるもんですか。本の名前まで挙げていただいて、ありがとうございます。

>>560
思いついたら書こうと思います。

>>561
APIの呼び出し方が間違っているのか、ウチでも、ノートPCでやると
カクカクします…。

>>562
プログラム的に非常に勉強になりそうですねー。
やってみたいけれど、ちょっとまだ難しいかも…。勉強します。
0570ヒッキー@プログラミングNGNG
>>563
何の機種用のBASICなんでしょうか(藁
BEEP 1ってどっかで見たような…

>>564
PC98をおもむろに起動するとか…

>>565
自機がバットって…ワラタ。
殻をぶち破る勢いのある発想ですねー。参考になります。

>>567
そうしたいと思ってはいるんですよ。
0571デフォルトの名無しさんNGNG
>>565
つーか、そもそもインベーダーゲームってのはそういう発想で生まれたはず。
0572デフォルトの名無しさんNGNG
ちょいとシツモンです。
Javaってよくオワッテル言語と聞くのですが
皆さんはなぜ勧めるの?
0573デフォルトの名無しさんNGNG
>>572
オワッテル人たちが言っているに過ぎないため。
0574デフォルトの名無しさんNGNG
死に絶えそうな言語にこそ、新しい血が必要なのです。
メンバー集めないと廃部になるJava倶楽部。
0575:デフォルトの名無しさん NGNG
これはすげぇよ。初レスだが、すげぇよ。
徐々に成長していって、面白かったよ。
これからも頑張れよ。まじで
0576デフォルトの名無しさんNGNG
Javaは結局、Sunがトドメを刺してしまった気がする。
0577名無しNGNG
>>574
Java倶楽部が廃部になったら、どこ行きます?
0578デフォルトの名無しさんNGNG
>>572
自分だけ被害者になるのが嫌なので
初心者も巻き添えにしてやろうってことです。
0579572NGNG
うへ・・・・
0580デフォルトの名無しさんNGNG
Javaをたたくのが流行だからです。
0581デフォルトの名無しさんNGNG
>>577
今までずっと囲碁をやって来て、囲碁部がつぶれたから、
じゃあ将棋部へなんて無理だろ
って、俺は574じゃないが
0582デフォルトの名無しさんNGNG
>>581
だから、ずっと囲碁やってて囲碁部がつぶれたらどこ行くの?
0583572NGNG
やべ・・・・
喧嘩はしないで―
0584デフォルトの名無しさんNGNG
>>582
全国行脚に出る
0585デフォルトの名無しさんNGNG
>>582
ネット囲碁。
0586デフォルトの名無しさんNGNG
JAVAプログラマは諸国漫遊ですか?
0587デフォルトの名無しさんNGNG
かくさんと
すけさんを
わすれずにね
0588ヒッキー@プログラミングNGNG
Javaトークで盛り上がってますね(藁

>>571
そうなんですか?ほおほお。

>>575
ういー。がんばります。
0589デフォルトの名無しさんNGNG
仕事なら来る仕事の勉強をすればよい
趣味ならその時好きなことをすればよい

趣味は酔狂なほどたのしい
0590589NGNG
だから初心者には N88BASIC を勧めてる
0591デフォルトの名無しさんNGNG
>>589
伊達や酔狂も程々にな。
0592 NGNG
ハイスコアキボン
0593デフォルトの名無しさんNGNG
CとC++の違いを誰か語ってください。
というか今主流の言語を語れる人って居るのかな。
このスレならゲームに使われてるものか・・・・
実際このゲームはこうで・・・・とか。

ハーフライフとかKohanて奴がModに対応してるとか聞いたんですが。
そのModってなんなんですか?
3D系ならともかくKohanてゲームはリアルタイムストラテジーなんですが
何となくは解るんですが、実際Mod作ったりしてるプログラマって
いるんですかね?日本に。
CSとかとてもアマチュアが作ったとは思えない出来なんだけれど。
0594デフォルトの名無しさんNGNG
>>593
スレ違い。googleでも行くがよろし。
0595デフォルトの名無しさんNGNG
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依存病、などの症状にも
     かかりやすい
0596デフォルトの名無しさんNGNG
正直、このスレの >>1 にチョト感動した。
ガムバレ
0597デフォルトの名無しさんNGNG
>>595
妙にDelphiびいきだなぁ(笑
漏れは別にSTL依存は全く問題無いと思うけど。むしろSTLを使いこなせたら
ちょっと尊敬しちゃう。漏れはコンテナクラスくらいしか使う気しない。

Direct3D使うようになると、DelphiどころかVC++/IC++以外のコンパイラは
たとえC/C++であっても却下なんだよなぁ。
Borlandもさっさと妥協してオブジェクトファイルのフォーマットをMSに合わ
せれば良いのだが。
0598デフォルトの名無しさんNGNG
>>597
> Direct3D使うようになると、DelphiどころかVC++/IC++以外のコンパイラは
> たとえC/C++であっても却下なんだよなぁ。
なんで? 詳細キボンヌ
0599デフォルトの名無しさんNGNG
Delphiびいきの人って多いよね。
言語というより一つの処理系にすぎないと思うんだけど。
0600デフォルトの名無しさんNGNG
初心者がコンポーネントを再利用しまくりで開発するクセがついたらどうするの?

っていうか、VBにもユーザコントロールって無かった?
0601デフォルトの名無しさんNGNG
確かにDephiの場合は コンポーネント検索病にかかるな
 そこで成長が止まるか コンポ自作側に回るかが分岐点かもな

UserControl はActiveXを手軽に作れるのがメリットで、便利とは
思うけど、あくまでもコントロール。

コンポーネントはコントロールも作れるけど、クラスの一種。
コンポーネントにしたからといってオーバーヘッドはクラス化と同じ
程度。(実行時型情報を動的に使えば多少のオーバヘッドは出るけど)

またコンポーネントを作る事でクラス作成の訓練にもなるのがイイ感じ
0602 NGNG
>>601
それってC++でも一緒じゃないの?
参考書片手に勉強すればいい話かと。
結局本人次第としか言いようがない・・・。
0603デフォルトの名無しさんNGNG
C++ってそんなに敷居が高いかな。
0604デフォルトの名無しさんNGNG
C++は簡単だよね。
問題はまあ クラス設計とかが難しいって話かもしれないけど
趣味で作るなら 何回か作れば最適なのが見つかるし。
0605デフォルトの名無しさんNGNG
ガイシュツ?
>>1 =ヒッキー@プログラミング
例のブロック崩しですが(この話題ってもうおわったの?)、
ブロックをすべて崩した後に、ボールをキャッチせず、残りのボールを0にすると
「ゲームクリア」となるのはいいのですか?
しかもその後面が変わって即「ゲームオーバー」となってしまう。
ださい と思うんやけど。
ソース見てくるわ
# VBは経験ないので、直感で読みます(藁

# C言語を勉強中http://www.kumei.ne.jp/c_lang/で。
# ポインタってのがよく分からないのが、つらい。
0606ヒッキー@プログラミングNGNG
>>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してたら、ファイルだらけになるのではないかと
思い、ちょっと戸惑ってました。
0607ヒッキー@プログラミングNGNG
http://www.geocities.co.jp/SiliconValley/2530/
↑次UPしました。変更点は、

・ブロック全て破壊後にボールを落としても、StageClearとなる現象の修正

です。
0608597NGNG
>>598
MicrosoftとBorlandではオブジェクトファイルに互換性が無いんだけど、
(昔はあったらしいがMSが仕様変更したときにBorlandがついてこなかったとか)
dllならimplib使ってBorland用のlibを作れるからDirectXでもあまり問題
無いんだけど、Direct3Dは重要なライブラリがスタティックライブラリで
提供されてて、それはdllじゃないからBorlandのコンパイラでは利用不可能。

DirectX7の頃はそれほど重要でもなかったんだけど、X8になったらシェーダー
のコンパイル関数とかがスタティックライブラリの方に入ってて死亡。
一応、NVIDIAのNVASM使ってコンパイルできなくも無いけど、試行錯誤するのに
毎回コンパイルしなきゃいけないのは面倒かと。

事実上、DirectX8でBorlandコンパイラには死刑宣告されたようなもんだ。
0609デフォルトの名無しさんNGNG
つーかCOM使ってるくせに他言語/他コンパイラから利用できないDirectXの方がオカシイ。
MSの単なる嫌がらせか?
0610デフォルトの名無しさんNGNG
あと、VBやDelphiの得意とする領域とDirectXの分野は明らかに違う。
その点でDirectXが使えない=死刑宣告というのは偏狭。
0611デフォルトの名無しさんNGNG
>>608 それは coff2omf  でも変換出来ないの?
0612デフォルトの名無しさんNGNG
>>609
だからぁ、Direct3DはCOM使ってない部分があるんだって。
COMにしないのは何故だか分からんが。速度的な問題かも。かなりの部分がインライン
関数になってるくらいだし。

>>610
597に「Direct3D使うようになると」って但し書きしてるから、そこも見てから言っ
てくれ。

>>611
coff2omfでも駄目みたい。
ただ、検索したらボーランド用のライブラリを公開してる人がいたよ。
どんなのか見たら、Direct3DXの関数を全部エクスポートしたdll作って、
それを利用するみたい。
俺もソースの無いdllとかを改良するときに同じ事してるけど、これなら
呼び出しコストが少し増えるだけで利用できるわな。
0613598NGNG
じゃあ「VC++/IC++以外の」というよりも「Borlandの」コンパイラは全滅なわけね。
gcc(mingw)とかlcc-winとかはどうなのかな。
0614デフォルトの名無しさんNGNG
オブジェクトがCOFFのものなら問題ないと思われ
0615傍観者NGNG
ねぇ、そのへんの議論は他でやらない??
ここは1の成長を見守るスレなんだから。
0616デフォルトの名無しさんNGNG
>>615
やるとしたら、このあたりか?

鬱だ氏のう DirectX 2
http://pc.2ch.net/test/read.cgi/tech/997101556/
0617デフォルトの名無しさんNGNG
それもそうだ、1の成長を見守り、やさしく教えてあげませう。
0618デフォルトの名無しさんNGNG
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」という角度にはなにか意味があるのでしょうか?
もしよろしければ教えてください。
0619ヒッキー@プログラミングNGNG
>>608
スタティックライブラリって、コンパイラが変わると
使えなくなるんでしょうか?

>>615
実はこういう話題も、僕にはまだちょっと難しいですが
興味があるので、調べながら読ませてもらっています(藁

>>616-617
どもども。お気遣い、ありがとうございます。

>>618
>「CBall.vx > 0」というのは右に向かっている状態…
はい、右に進む場合は座標がだんだん正の方に増えていくので、
そのように書きました。
>「25」「20」「65」「70」という角度にはなにか意味が…
あまり意味はないのですが(w 、ただ、15度以下になったり、
75度以上にならないようにしようかと思いまして。
急角度になりすぎると、角度を修正する事ばかりにとらわれて、
ゲーム性が違うほうに向かってしまうんではないか、
と感じたので、そのようにしました。
0620ヒッキー@プログラミングNGNG
http://www.geocities.co.jp/SiliconValley/2530/
↑次UPしました。変更点は

・マウスモードでボールを複数出すと自機が重くなる現象の修正

です。
ソース、1行の修正で済みました…。
もうちょっと注意深く調べるようにします。
0621618NGNG
>>619
なるほど、勉強になります。
ありがとうございました。
0622598NGNG
>>619
> スタティックライブラリって、コンパイラが変わると
> 使えなくなるんでしょうか?

コンパイラというか、コンパイルしてできるオブジェクトファイルの形式ね。
大体はシステムで共通なんだけど、Borlandだけ他と違ってるということかな。
なんでスタティックライブラリだけかというと、DLLの場合はシステムでロー
ドできる必要があるから、独自のものにはできないので問題が起きないから。
0623傍観者NGNG
>>620
おつかれ〜〜、早速見てみます。

>>616-617
サンクスコ。
やっぱいい奴の周りにはいい奴が集まるって事だねヽ(´ー`)ノ
他スレなら『しきるな(゚Д゚)ゴルァ!!』だし。
0624デフォルトの名無しさんNGNG
マウスモードのチェックをはずしてキーボード操作に戻る時や
マウスモードの時に最小化ボタンをクリックしたりデスクトップのアイコンをクリックすると
ボールが発射されてしまいますね。これは直してほしいところです。

ゲーム画面をクリックすると開始、
ゲーム画面の中だけにマウスの移動範囲を制限するというのはどうでしょうか。
そして一時停止するとマウスの移動制限をなくし、
またゲーム画面をクリックするとマウスの移動範囲を制限し、ゲームを開始する。
このようにすればなんとなく解決する気がします。
ただこれにすると一時停止中でしかマウスモード→キーボードの切り替えができませんが。
あとなんとなく左クリックで開始と一時停止、右クリックでボールを増やすという方が一般的な気がします。恐らく。

とりあえずマウスの移動制限の説明のリンクを。
ttp://www.elixir.co.jp/developer/vb/lib/vb_all.htm
0625デフォルトの名無しさんNGNG
みんないろいろ教えたがってるな。
良い人材を見つけたら自分で育てたくなるのがPGってもんだ(謎

>>1は、もうこのゲームのチューニングは十分ではないだろうか?
ここら辺から先は別の人間が進めても良いと思う。
>>1が作ったソースコードをベースに、有志が独自の改造を施してみては?
そして改造したらジオで公開し、ココに報告する。と。

>>1は次は何を作りたいんだ?
0626デフォルトの名無しさんNGNG
C++かCかDelphiか・・・・
0627ヒッキー@プログラミングNGNG
>>621
いえいえ、こちらこそソースを読んでいただいて
ありがとうございます。

>>622
そういうことでしたか。
DLLは独自のものにできないんですね。
オブジェクトファイルって、exeになる前の中間ファイルのことですか?
(というか、リンクという作業もよくわかりません(w)

>>623
おー、どうもありがとうございます。

>>624
そうですね。画面外をクリックした時に始まるのは変ですね。
マウスの移動範囲を制限するというのは、ゲームを正しく動かす為には
有効なやり方だと思いますが、手軽さが減るのではないかなぁ
と思います。
リンク先、参考にさせていただきます。どもども。

>>625
僕も止め時が難しいなぁと感じてました(w
でも、ソースを放置するにも、説明が少なすぎるし、
何かまとめになるようなモノを書こうかと思っています。
順番的には、次はテトリスを作ろうかと。

>>626
まだいくつかVBで作ってみようと思います。
他の言語に移るのはもうちょっと勉強してからにします。
(次の候補は一応VCにしました。)
0628デフォルトの名無しさんNGNG
テトリスのあとにはぷよぷよというわけですね(藁

テトリスが一応出来たら、ぷよぷよへの応用も結構できる。
ただ、ブロックの消える判定が違うが。
0629デフォルトの名無しさんNGNG
テトリスよりもぷよぷよの方がコード書いてて面白かったなぁ(ボソ
0630622NGNG
>>627
> DLLは独自のものにできないんですね。
今Windowsで使われてるのはPEフォーマットという奴

> オブジェクトファイルって、exeになる前の中間ファイルのことですか?
そう。というかVBも中間ファイルとかいって作ってるはずだが。

> (というか、リンクという作業もよくわかりません(w)
オブジェクトファイル同士(とライブラリ)をくっつけて実行ファイルを作ること
0631デフォルトの名無しさんNGNG
え?この程度で終わりなの?まぁいいが。
次はテトリスって話だけど、少なくともテトリスはブロック崩しより簡単だよ。
ぷよぷよは再帰使うと簡単だけど、VBって再帰使える?
0632デフォルトの名無しさんNGNG
つーか、1よ、今上がっている候補としては、

テトリス
ぷよぷよ
電卓(俺推奨 藁 (1/3)*3が1と表示されるヤツ

だな。
0633デフォルトの名無しさんNGNG
>>4
薬師丸ひろ子まだ〜。
0634ヒッキー@プログラミングNGNG
>>628
ぷよぷよは面白そうですねー。
でもぷよぷよ、すごく苦手なんです…連鎖のデバッグができない(w

>>629
ほおほお。そうですかー。
次にやってみたいと思います。

>>630
おー、ご教示ありがとうございます。
リンクという作業がようやく納得できました。

>>631
うーん、テトリスならすぐにできそうなので、
それからブロック崩しの続きを考えようと思います。
再帰ですか。VBはできないような……できるのかな。
ぷよぷよで再帰とはどこで使うのでしょう?
くっついた時の判定でしょうか?

>>632
あー、電卓の存在を忘れるところでした。
インタープリタは書いてみたいですが、もう少し経験を積んでから
やり始めようと思います。

>>633
そろそろ髪の毛1本づつとか送って来たりして(w
0635デフォルトの名無しさんNGNG
再帰はVBで使えます。

削除判定のときじゃない?
簡単な塗りつぶしのアルゴリズムと一緒。
0636デフォルトの名無しさんNGNG
テトリスって確か一度ブロックを回転してみて、ブロックが重なっていたり壁からはみ出ていたら元に戻すっていう方法でやるんですよね。
配列変数で仮想画面を作ってそれで判定する・・・であってますか?

いや、というより本当に聞きたいのはブロックの回転の仕方なんです。

■
■  →    ■
■■   ■■■

と回転させる時、みなさんはどのようにして回転させていますか?
やはり変数に(2次元配列変数)

 │012
 ┼──
0│000
1│001
2│111

などと形を記録しておいて、回転の度に該当する変数を呼び出しているのでしょうか。
ていうか以前にそこらへんをすべてむりやり計算して回転させようとして無茶苦茶になって挫折したんです。

うーん、上手く説明できない。これでわかるかな?
0637デフォルトの名無しさんNGNG
全パターン用意しておけばいいのでは?
0638デフォルトの名無しさんNGNG
回転の処理が分からないなら、あらかじめ全パターンを配列にいれておくのがよいかと。
計算して回転させるのも「むりやり」じゃなくてフツーだよ。
まぁ、やるなら最初にプログラム内で回転させたパターンを全部生成して、それを
使うのが一番良いと思うが。
0639デフォルトの名無しさんNGNG
そんなことより>>1よ、
VBでDirectX使ってみたら?
たしかDirectX7はVBからでも使えたような・・・。
0640デフォルトの名無しさんNGNG
・・・他の言語に移るタイミングが遅れると
モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/test/read.cgi/tech/1003113413/

の ( = ゚ ω゚ )  みたいになるぞ・・・
0641デフォルトの名無しさんNGNG
誰も知ってる人おらんのかな・・・
俺も詳しく知らないのでほっとけば誰かの講釈が入るだろうと思って
たんだけれど・・・・

MODで名前あってるか知らないけど、確かCSならHL(ハーフライフ)
持ってればただでゲームできるという代物だったよーな。
つまりHLのプログラムを利用したゲームだって事だと思う。
クォーク(クエイク?)とかアンリアルとかもにたようなモノだと
どこかで読んだ記憶がアリ。なんとかエンジンって言うのかな。
俺はこれくらいしかしりません。
0642デフォルトの名無しさんNGNG
>>1よ、
>>640の言うようになるかどうかはお前次第だ。
別に移行のタイミングなんて関係ないから気にするな。
0643デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley-SanJose/4825/tet/index.html
0644デフォルトの名無しさんNGNG
>>641
modは知ってるけど、googleで検索すればいくらでも解説はあるから無視した。
ただ、音楽の方のmodばかりヒットするから、マイナス検索使わないと面倒だが。
そもそもこのスレに関係ないし。
0645デフォルトの名無しさんNGNG
そうなんですか・・・・
ゲーム作りに興味ありそうなんで、
俺が知ってる事を言ってみただけなんですが
すいませんでした。
0646ヒッキー@プログラミングNGNG
現在テトリス作成中であります。
体調悪くて、書き込みできませんでした。

>>635
お、再帰使えますか?実験してみます。
あー、囲まれた領域を塗りつぶすアルゴリズムですか。

>>636
僕も回転の仕方で詰まりました(w
やっぱ回転後の配列を用意したほうがいいのかなぁと。

>>637
そうなんですよね。

>>638
うむぅ。そうしてみようかと思います。

>>639
DirectXをVBから使う方法を解説した本が一応手元にあるんですが、
GDIを使って処理する方が勉強になるかと思いまして。

>>640
読んでみようと思います…

>>641
あー、そういえばグラフィックを入れ替えるデータを
配布している方がいらっしゃいますね。
あれって、自分でデータを解析されているんでしょうか。

>>642
どもです。気楽に逝こうと思います。

>>643
お、回転のパターンが載ってますね。
じっくり見てみます。

>>644
やっぱ有名なんですね。

>>645
おかげ様で、また新たな単語を知る事ができました。
興味があるので、検索してみようと思います。
0647デフォルトの名無しさんNGNG
http://www.google.com/search?q=%83q%83b%83L%81%5B%81%97%83v%83%8D%83O%83%89%83%7E%83%93%83O&hl=ja&lr=
0648ヒッキー@プログラミングNGNG
http://www.geocities.co.jp/SiliconValley/2530/tetris1.zip
↑テトリス、未完成ですがUPしてみました。
 今の所、端に埋まったりします…

>>647
お、このスレ1番上に出てきますねー。感動。

生き返ったのでage
0649デフォルトの名無しさんNGNG
>>648 遊んでみました。イイ!
いちばん上までブロックが積もっても、ゲームオーバにならない・・・。
ランタイムエラーとやらが出て、終了してしまいます。
0650デフォルトの名無しさんNGNG
俺のテトリスからコピペ。プレゼント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
};
0651デフォルトの名無しさんNGNG
>>648
(・∀・)イイ!!VBはよくわからんが、とりあえず指摘。
>>649さんのに加えて、回転する時の軸が変(つーか普通のと違う)から、ちょっと違和感あり。
回転のほうは、壁にめり込む場合は回転できないようにするのかな??
あまり役に立てなくてスマソ。
1、頑張れよ〜〜
0652デフォルトの名無しさんNGNG
651さんの普通が何か分からないけど、
回転法則自体は>>643の仕様どおりになってると思う。
(壁にめり込むのは別として)

市販されてるテトリスは回転法則がソフトによってまちまちです。
例えばこの辺を参照
ttp://www.din.or.jp/~koryan/t_r01.htm
0653デフォルトの名無しさんNGNG
テトリスと言えば、漏れはやはりセガのアーケード版だな。
同時期に出た各社のテトリス(アーケードでもATARI版とかあった)の中では
セガのが一番良かった。落下スピードが反則的に速いかわりに、地面について
からくっつくまでの時間がとても長い。
BPSのパソコン版はイマイチ。
0654デフォルトの名無しさんNGNG
>>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使うね。
0655ヒッキー@プログラミングNGNG
http://www.geocities.co.jp/SiliconValley/2530/tetris2.zip
↑テトリス、次UPしました。
 今のところ問題点としては

・壁に埋まる
・レベルが上がらない(早くならない)

などです。

>>649
どもども。
一番上まであがったら座標が-1になるときがあって、それで
エラーを吐いていたようです。応急処理的に、MsgBoxを出してみました。
ご報告、ありがとうございます。

>>650
僕もそういう感じで処理したかったんですが、
VBだと冗長な処理になってしまいます…。
宣言時に初期化できないもんでしょうか。

>>651
ういー。がんばります。
>>652 さんのおっしゃる通り、いろいろ回転が違うみたいですね。
ゲームボーイでさっきやりましたが、>>643 さんにリンクして頂いた
回転と違っていました。
って、>>652さんのページ、すごいですね(藁

>>653
あー、セガのってサルのやつですですよね。
僕は当時お小遣いが少なくてほとんどできませんでした…。
なんかOL風の人が、異様な形相ですごい速度を
さばいてたのを見ました。
テトリスってパソコン版あったんですか?知らなかった。

>>654
回転、計算でもとめれるんですねー。
僕は回転の仕方を考えていたら頭がよじれそうになりました。
やっぱ配列に回転後のデータを格納しておいた方が速いのでしょうか。
0656バード大佐NGNG
すげー
いつのまにかテトリス開発に移ってたのかw
■ このスレッドは過去ログ倉庫に格納されています