• 検索結果がありません。

ブロック パニック

N/A
N/A
Protected

Academic year: 2021

シェア "ブロック パニック"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラムの概要

壁が迫り来る不思議な空間の オリジナルゲーム『ブロックパ ニック』を作成する。 スタートボタンをクリックし 上下左右の矢印キーで白猿を 移動させる。 スペースキーを押すと、向いて 居る方向の壁が後退する。左右 の壁が合わさると、ゲームは終 了する。 一般的に、実用プログラムに比 較するとゲームプログラムは、 高度なテクニックを要求され る事が多い。 此処では、ゲームプログラムを作成する事に依り、楽しみ乍ら、プログラムの制作手順を習得する事を 目的として居る。 制作手順としては、実際の作業過程に従い、段階的に機能を追加する方法を採用して居る。 此のプログラムを土台に、更に、各自で機能を追加して行く事が望まれる。

ブロック パニック

VB 2005 ⑨ □ アプリケーション画面のデザイン(標準コントロールの利用) □ プログラムの動作原理(イベント駆動型のプログラム) □ プログラムの構成要素(オブジェクトとプロパティ) □ 値の代入(変数、オブジェクトのプロパティ) □ 条件に応じた処理(If 文の利用) □ 値に応じた処理(Select 文の利用) □ 自動的に行われる処理(タイマーの利用) 今回の課題項目

(2)

コントロールの種類 プロパティ プロパティの設定値 フォーム Name block BackGroundImage block.gif Text ブロック パニック パネル Name pnlRoom Size 600, 300 BackGroundImage back.jpg ラベル1 Name lblTitle AutoSize True BackColor Transparent Font HG 創英角ポップ体、太字、20 ForeColor Yellow

Text Block Panic

ラベル2 Name lblTime AutoSize False BackColor Transparent Font HG 創英角ポップ体、太字、18 ForeColor Yellow TextAlign MiddleRight ピクチャボックス パネル ラベル2 タイマー ボタン ラベル1

(3)

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

(4)

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 ' フォームが読み込まれた時の処理

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

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( ) End Sub ' ボタン(スタート)がクリックされた時の処理

Private Sub btnStart_Click( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles btnStart.Click 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 End Sub

1 コード記述画面を表示して左記の コードを入力する。 2 フォーム上のコントロール を配置して居ない処をダブルクリ ックして、コード画面を表示し、 左記のコードを入力する。 3 デ ザ イ ン 画 面 で、ボタン を ダ ブ ル ク リ ッ ク して、コー ド 画 面 を 表示し、左 記 の コ ー ド を 入 力 する。

(5)

' キー入力が為された時の処理

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 ) End Sub

' タイマーが一定間隔で行う処理

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.Text = ( 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 End Sub End Class 4 デザイン画面で、イベン ト画面に切り替える。其 の後、KeyDown の項目 をダブルクリックして、 コード記述画面を表示 し、下記のコードを入力 する。 5 デザイン画面で、タイマーを ダブルクリックして、コード 画面を表示し、左記のコード を入力する。

(6)

イベントプロシージャの作成(2)

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

参照

関連したドキュメント

事業セグメントごとの資本コスト(WACC)を算定するためには、BS を作成後、まず株

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

子どもが、例えば、あるものを作りたい、という願いを形成し実現しようとする。子どもは、そ

HS誕生の背景 ①関税協力理事会品目表(CCCN) 世界貿易の75%をカバー 【米、加は使用せず】 ②真に国際的な品目表の作成を目指して

Q7 建設工事の場合は、都内の各工事現場の実績をまとめて 1

日本への輸入 作成日から 12 か月 作成日から 12 か月 英国への輸出 作成日から2年 作成日から 12 か月.

日本への輸入 作成日から 12 か月 作成日から 12 か月 英国への輸出 作成日から2年 作成日から 12 か月.

具体的な取組の 状況とその効果 に対する評価.