VBで落ちゲー への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 ping  (社会人) 投稿日時 2009/1/13 18:42:12
>ご紹介頂いたHPを参考に何とかテトリスを完成させる事ができました。
>ブロック情報を数値の2次元配列で持つというのは目から鱗でした。
>7時間ほどぶっ通しで作っていたので流石に疲れました^^;
すごいですね。たったの7時間でつくりあげたのですか。
私も挑戦してみようと思ってます。


投稿者 レオ  (小学生) 投稿日時 2009/1/13 11:52:04
なかなか面白そうなコードだね。
ちょっと僕チンのパソは修理にだすんで。
今度、じっくり見させてもらうよ。
かなり興味はあるんで。
投稿者 亜成  (学生) 投稿日時 2009/1/13 11:05:51
ちなみに実行画面はこんな感じです。
http://bear.lolipop.jp/upl/cgi/upl_img/3247.jpg
投稿者 亜成  (学生) 投稿日時 2009/1/13 10:47:09
>ちょっとコードを書いてごらんよ。
ちょっとで良いんですか?
では抜粋して。
テトリスの実行処理(Tetris.vb)とUI(Form1.vb)を分けていまして
下記はTetris.vbのメイン処理部分です。
実行時にはこのメソッドが非同期に処理されます。
    Private Sub MainRoutine()
        Dim time As Integer = 0

       '初期化 
        Initialize()
        While (Not gameover)
            'キーが入力されていれば操作 
            If key IsNot Nothing Then
                'ブロックを操作 
                ControlBlock()
                key = Nothing
            End If

            If time < 500 Then
                time += 1
            Else
                Move(Directions.Down)
                time = 0
            End If

            'ちょびっと待機 
            Threading.Thread.Sleep(1)
        End While
    End Sub

ちょっとだけ解説
keyはTetrisクラスのメンバ変数で、Formで入力されたKeyCodeが入ります。
KeyCodeが入力されていれば、ControlBlockメソッドにて移動・回転の処理を行います。
その次の処理で経過時間を判定して、500msec経過していればMoveメソッドでブロックを下に
下ろします。

>ゲーム王のレオ♪さん
実際に作りたいというのであれば、完成版のコードを求めるのではなく
VBBVさんや、かずきさんがご提示して下さったHP等を参考にしてお勉強されてはいかがでしょうか?
小学生でも勉強すれば、不可能ではないと思います。
投稿者 ゲーム王のレオ♪  (小学生) 投稿日時 2009/1/13 09:31:16
ちょっとコードを書いてごらんよ。
投稿者 亜成  (学生) 投稿日時 2009/1/13 09:12:08
>VBBVさん、かずきさん
ご返答ありがとうございます。

ご紹介頂いたHPを参考に何とかテトリスを完成させる事ができました。
ブロック情報を数値の2次元配列で持つというのは目から鱗でした。
7時間ほどぶっ通しで作っていたので流石に疲れました^^;

今度はこれをいじってぷよぷよみたいな落ちゲーを作ってみようと思います。
投稿者 かずき  (社会人) 投稿日時 2009/1/13 07:05:30
ゲームを作ったことがあるわけじゃないのですが、昔DirectX関連の記事を
読んでたときにDirectInputというのを使うとかいうのを見た記憶があります。

そこらへんのキーワードで調べてみてはどうでしょうか。
投稿者 VBBV  (社会人) 投稿日時 2009/1/13 04:23:32
よこはいりの質問になりますが、ゲームでジョイステック入力を使うゲームを作成する場合
には、API関数を使わなければならないのでしょうか?
投稿者 かずき  (社会人) 投稿日時 2009/1/12 20:29:41
Googleで検索すれば見つかりませんか?
ちょっと探してみただけなので、内容は確認してないですが以下のサイトとか
どうでしょうか。
http://www.teu.ac.jp/chiit/~jsuzuki/doc/pnc2006/index.html

> VBBVさん
C++というのはただの言語名です。
VC++使ってネイティブなWindowsアプリケーション組むときはコードで
ウィンドウの作成から何から何までコードで書いたりします。
投稿者 VBBV  (社会人) 投稿日時 2009/1/12 19:25:17
ちなみにVC++というのは、GUIの開発環境ですよね。
ただのC++というのは、GUI環境ではないから、windowsのフレームもコードで作るんですね。
これは大変ですね。
投稿者 VBBV  (社会人) 投稿日時 2009/1/12 19:22:23
このへんが参考になりそうですが、いかがでしょうか?
http://www001.upp.so-net.ne.jp/yoshihiro/profile.htm
投稿者 亜成  (学生) 投稿日時 2009/1/12 18:12:15
お世話になります。
VB.NET暦2ヶ月の初心者です。

VB.NETで落ちゲー(テトリスとかぷよぷよとか)を作りたいのですが
何処か参考になるようなHPはありませんでしょうか?