Microsoft Small Basic 1.1 の使い方 Microsoft からダウンロードしてインストールすると、誰でもすぐ使えるプログラミング環境です。上記リンク先内で基本部分のチュートリアルはまとめましたが、いざゲームを作るとなるといくつか注意事項があります。 画面の大きさ これは、画像を使ってサイズ決定するようにしました。そして、画像に非透過度を設定して薄くしています。好みでいろいろな背景を設定すると同時に、サイズを指定する事になります。 ループ処理 結果的には、Goto 文で単純ループを作成しています。Program.Delay(1) は、ループ処理を安定させる為のおまじないだと思って下さい。永久ループではありますが、CPU 負荷は殆ど無く、イベント割り込みも何も問題なく動作しています。 最初、タイマーも試したのですが表示にちらつきが出た上にいろいろ弊害があるようでした。ゲーム作る場合に使う事を想定して実装されているタイマーでは無いようでした。 オブジェクト らしく ボールを移動させるのに、サブルーチンが必要ですが、Small Basic ではそれしか無いので、サブルーチン定義の上部に初期処理を記述しています。その部分がコンストラクタみたいなものだと思って下さい。
' ウィンドウの背景色 GraphicsWindow.BackgroundColor = "White" ' ウインドウの位置 GraphicsWindow.Left = 100 GraphicsWindow.Top = 40 ' リサイズできないようにする GraphicsWindow.CanResize = 0 LoadImage_Url = "https://lh5.googleusercontent.com/-3IWAlBbUSYs/VLgFjekftnI/AAAAAAAAYKw/VM5FI7bYNzw/s800/142133580685821985693.jpeg" LoadImage_Opacity = 50 LoadImage() ' ****************************************** ' 白いボール ' ****************************************** GraphicsWindow.BrushColor = "#123456" ' ボールの塗りつぶし色 Ball_Speed = 1 Ball_Size = 30 Ball_Name = Shapes.AddEllipse(Ball_Size, Ball_Size) Ball_x = LoadImage_width / 2 Ball_y = Ball_Size * -1 Shapes.Move( Ball_Name, Ball_x, Ball_y ) Sub Ball Ball_y = Ball_y - Ball_Speed If Ball_y > (Ball_Size * -2) Then Shapes.Move( Ball_Name, Ball_x, Ball_y ) ' TextWindow.WriteLine(Ball_y) Else Ball_y = Ball_Size * -1 EndIf EndSub ' ****************************************** ' キーイベント ' ****************************************** GraphicsWindow.KeyDown = OnKeyDown Sub OnKeyDown If Ball_y <= (Ball_Size * -1) Then Ball_y = LoadImage_height EndIf EndSub ' ****************************************** ' アニメーションループ ' ****************************************** Loop: Program.Delay(1) Ball() Goto Loop ' ****************************************** ' グラフィックウインドウに画像を表示する ' LoadImage_Url : URL ' LoadImage_Opacity : 不透明度 ' ****************************************** Sub LoadImage LoadImage_pic = ImageList.LoadImage(LoadImage_Url) LoadImage_img = Shapes.AddImage(LoadImage_pic) Shapes.SetOpacity(LoadImage_img, LoadImage_Opacity) LoadImage_width = ImageList.GetWidthOfImage(LoadImage_pic) LoadImage_height = ImageList.GetHeightOfImage(LoadImage_pic) GraphicsWindow.Width = LoadImage_width GraphicsWindow.Height = LoadImage_height GraphicsWindow.DrawResizedImage(LoadImage_img, 0, 0, LoadImage_width, LoadImage_height) EndSub
移動処理の概要 初期処理で画面の外にボールを移動しています。その状態で何かキーを押した時のみボールを画面の一番下の中央に移動させます。後は、画面の外に出るまで移動させますが、画面の外に出た場合は変数としては初期値につねに設定されて事実上ボールには何も起こりません。 ボールの移動中は、キーが押されてもキーが押してボールを発射できるのは画面の外に出ている場合だけなので、画面内にボールが表示されている時にキーを押しても反応しません。 結果的に一つのボールに対して、Ball というサブルーチンが一つ対応しており、Ball_ と言う変数で全てまかなっているオブジェクトのようなものだと思って下さい。 この後、ボールを増やしたり他のオブジェクトを増やしていってレスポンスがどうなるかは解りませんが、簡単なゲームならすぐ作れると思います。
タグ:Small Basic
|