ブロック パニック

Similar documents
ルーレットプログラム

ブロック崩し風テニス

インベーダープログラム

プロシード

ドッグファイト

グラフィックス

倉庫番

バスケットボール

かべうちテニス

Microsoft Word - VB_10.doc

Userコントロール

VB.NET解説

回文作成支援プログラム

アプリケーション

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

3D回転体プログラム

データアダプタ概要

ファイル操作-インターネットキャッシュ

ListViewコントロール

ドライブは安全運転で in 滋賀♪

占領双六ゲーム

ランボール

相性占いプログラム

ICONファイルフォーマット

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

ファイル操作

VB実用⑦ エクセル操作Ⅰ

Microsoft Word 練習問題の解答.doc

NotifyIconコントロール

回文作成支援プログラム

神経衰弱ゲーム

ウィンドウ操作 応用

画像閲覧プログラム

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Prog2_12th

プロセス間通信

回文作成支援プログラム

Microsoft Word -

DAOの利用

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

ウォームアップ講座 17~30

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

正規表現応用

パラパラ漫画

Microsoft Word - VB.doc

はるよちゃんっ!

チア ダンス

データを TreeView コントロールで表示 VisualStudio2017 の Web サイトプロジェクトで bootstrap, 及び script フォルダの js ファイルが使用できるマスターページを親とする TestTreeView.aspx ページを作成します 下記の html コー

回文作成支援プログラム

VFD256 サンプルプログラム

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

わにわにパニックプログラム

1. 入力画面

Prog2_15th

VB実用⑬ 印刷Ⅲ(PrintFormメソッド)

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

CodeGear Developer Camp


C#の基本

データベースⅠ

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

VB実用Ⅲ⑩ フリーデータベースⅡ

万年暦プログラム

相性占いプログラム

グラフィックス 目次

チャットプログラム

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

スライド 1

マルチメディア・音声

ファイル監視

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

画像閲覧プログラム

GUIプログラムⅣ

スロットプログラム

草競馬プログラム

スレッド操作 タイマー

占領双六ゲーム

万年暦プログラム

プリンタ印字用 DLL 取扱説明書

回文作成支援プログラム

万年暦プログラム

構造体

D0050.PDF

Prog2_4th

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

3D回転体プログラム

Secure iNetSuite for .NET 4.0Jの新仕様について

情報処理 VB 音2

エクセル詳細 アドイン

Public Grid As ReverseGrid Public Position As Point ' 論理位置 Public Rectangle As Rectangle ' 物理位置 Status; 黒 白 なしの状態 Grid; オセロの盤面 Position; 盤面内の説明 Rectan

第 3 章 Visual Studio Community 2015 の基本操作 1 起動と画面構成 (1)Visual Studio 2015 の起動 [ スタート ] ボタン [ すべてのプログラム ] [Visual Studio 2015] をクリックし, を選択します (2) 起動直後の画

キー操作

PowerPoint プレゼンテーション

パラパラ漫画

コンピュータ概論

プラグイン

モグラ叩きプログラム

Prog2_2nd

グラフィックス 目次

コンピュータ概論

Transcription:

ブロックパニック VB 2005 9 プログラムの概要 壁が迫り来る不思議な空間のオリジナルゲーム ブロックパニック を作成する スタートボタンをクリックし上下左右の矢印キーで白猿を移動させる スペースキーを押すと 向いて居る方向の壁が後退する 左右の壁が合わさると ゲームは終了する 一般的に 実用プログラムに比較するとゲームプログラムは 高度なテクニックを要求される事が多い 此処では ゲームプログラムを作成する事に依り 楽しみ乍ら プログラムの制作手順を習得する事を目的として居る 制作手順としては 実際の作業過程に従い 段階的に機能を追加する方法を採用して居る 此のプログラムを土台に 更に 各自で機能を追加して行く事が望まれる 今回の課題項目 アプリケーション画面のデザイン ( 標準コントロールの利用 ) プログラムの動作原理 ( イベント駆動型のプログラム ) プログラムの構成要素 ( オブジェクトとプロパティ ) 値の代入 ( 変数 オブジェクトのプロパティ ) 条件に応じた処理 (If 文の利用 ) 値に応じた処理 (Select 文の利用 ) 自動的に行われる処理 ( タイマーの利用 ) -1-

オブジェクト プロパティ一覧 ラベル 1 ラベル 2 パネル ピクチャボックス ボタン タイマー コントロールの種類 プロパティ プロパティの設定値 フォーム Name block BackGroundImage block.gif ブロックパニック パネル Name pnlroom Size 600, 300 BackGroundImage back.jpg ラベル1 Name lbltitle AutoSize True BackColor Transparent Font HG 創英角ポップ体 太字 20 ForeColor Yellow Block Panic ラベル2 Name lbltime AutoSize False BackColor Transparent Font HG 創英角ポップ体 太字 18 ForeColor Yellow Align MiddleRight 空白 -2-

コントロールの種類 プロパティ プロパティの設定値 ピクチャボックス Name picman BackColor Transparent Image up.gif Location 300, 150 Size 30, 32 ボタン Name btnstart Font HG 創英角ポップ体 太字 14 START!! タイマー Name tmrmove Interval 300 使用コントロール フォーム アプリケーションウィンドウ 又は ダイアログボックスと成るウィンドウの事を謂う フォームには コントロールを配置し フォームとコントロールに関連したプロパティを設定したり コードを記述する ピクチャーボックス ビットマップ アイコン メタファイル JPEG ファイル GIF フィル等の画像を表示するコントロール 従来の様に描画メソッドを用いて描画する事は出来ない ラベル テキストを表示するコントロール 此のテキストは ユーザーが直接入力したり変更したりする事は出来ない パネル 他のコントロールを内包するコンテナに成る事が出来るコントロール コントロールのグループ分けする場合等に使用する ボタン ユーザーが選択したコマンド ( 命令 ) や操作を実行するコントロール OK ボタンや実行ボタン等 処理の開始や中断 終了の合図に用いられ 最も良く利用される タイマー 一定の時間間隔でイベントが発生する様にするコントロール 一定時間毎にプログラムを実行したい時に使用する 此のコントロールは 実行時には表示されない -3-

プログラムリスト Public Class block Private B( 19 ), CX, CY, DR As Integer Private P( 19 ) As PictureBox Private G( 3 ) As Bitmap Private TM As DateTime 1 コード記述画面を表示して左記の コードを入力する ' フォームが読み込まれた時の処理 Private Sub block_load( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles MyBase.Load For I As Integer = 0 To 19 B( I ) = 0 P( I ) = New PictureBox( ) With P( I ).Size = New Size( 600, 30 ).Image = Me.BackgroundImage.Top = ( I Mod 10 ) * 30.Left = IIf( I < 10, ( B( I ) - 20 ) * 30, 600 - B( I ) * 30 ).Visible = True End With Me.pnlRoom.Controls.Add( P( I )) Next 2 フォーム上のコントロールを配置して居ない処をダブルクリックして コード画面を表示し 左記のコードを入力する G( 0 ) = New Bitmap( "left.gif" ) : G( 1 ) = New Bitmap( "right.gif" ) G( 2 ) = New Bitmap( "up.gif" ) : G( 3 ) = New Bitmap( "down.gif" ) pnlroom.refresh( ) ' ボタン ( スタート ) がクリックされた時の処理 Private Sub btnstart_( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles btnstart. For I As Integer = 0 To 19 B( I ) = 0 : P( I ).Left = IIf( I < 10, ( B( I ) - 20) * 30, 600 - B ( I ) * 30 ) Next CX = 10 : CY = 5 : DR = 3 picman.location = New Point( CX * 30, CY * 30 ) : TM = DateTime.Now Me.KeyPreview = True : btnstart.enabled = False : tmrmove.enabled = True 3 デザイン画面で ボタンをダブルクリックして コード画面を表示し 左記のコードを入力する -4-

' キー入力が為された時の処理 Private Sub block_keydown( ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyEventArgs ) Handles Me.KeyDown Dim F As Boolean = False Select Case e.keycode Case Keys.Up DR = 2 : If CY > 0 Then CY -= 1 : F = True Case Keys.Down DR = 3 : If CY < 9 Then CY += 1 : F = True Case Keys.Left DR = 0 : If CX > B( CY ) Then CX -= 1 : F = True Case Keys.Right DR = 1 : If CX < 19 - B( CY + 10 ) Then CX += 1 : F = True Case Keys.Space If DR = 0 Then B( CY ) -= 1 : P( CY ).Left = ( B( CY ) - 20 ) * 30 ElseIf DR = 1 Then B( CY + 10 ) -= 1 : P( CY + 10 ).Left = 600 - B( CY + 10 ) * 30 End If End Select picman.image = G( DR ) : If F Then picman.location = New Point( CX * 30, CY * 30 ) 4 デザイン画面で イベント画面に切り替える 其の後 KeyDown の項目をダブルクリックして コード記述画面を表示し 下記のコードを入力する ' タイマーが一定間隔で行う処理 Private Sub tmrmove_tick( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles tmrmove.tick Dim R1, R2 As Integer Do : R1 = Int( Rnd( ) * 10 ) : Loop While R1 = CY B( R1 ) += 1 : P( R1 ).Left = ( B( R1 ) 20 ) * 30 Do : R2 = Int( Rnd( ) * 10 + 10 ) : Loop While R2-10 = CY B( R2 ) += 1 : P( R2 ).Left = 600 - B( R2 ) * 30 lbltime. = ( DateTime.Now - TM ).ToString( ) If B( R1 ) + B( R1 + 10 ) = 20 Or B(R2) + B(R2 10 ) = 20 Then tmrmove.enabled = False : Me.KeyPreview = False : btnstart.enabled = True MsgBox( "Game Over" ) End If 5 End Class デザイン画面で タイマーをダブルクリックして コード画面を表示し 左記のコードを入力する -5-

ワンポイントアドバイス イベントプロシージャの作成 (2) 先ず 対象と成るコントロールをダブルクリックして 其のコントロールの既定のイベントプロシージャを作成する 此の方法は 最も簡単にイベントプロシージャを作成する方法では有り 亦 C# でも 同じ方法で イベントプロシージャを作成する事が出来るが 此の方法では 各コントロールに定められた規定のイベントプロシージャが作成され 正しくイベントを選択する事が出来ない事が有る 従って 規定のイベントプロシージャを使用する場合を除き イベントプロシージャの作成 (1) で紹介した方法を利用する事を推奨する 主要なコントロールの既定のイベントプロシージャを 下記に記す コントロール Button CheckBox Label ListBox PictureBox Box Panel RadioButton Timer LineShape 既定イベント CheckedChange SelectedIndexChanged Changed Paint CheckedChange Tick テキストでは イベントプロシージャは プロシージャ宣言文で 末尾に Handles 句が有る事で判別する事が出来る Handles 句でコントロール名 ( オブジェクト名 ) の後に ドット (. ) に続いて記述されて居るのが イベント名で有る -6-