Microsoft Small Basic

Program Listing:
Embed this in your website
init()
While "true"
  title()
  start()
  gameover()
EndWhile

Sub init
  state = "wait"    ' 準備中
  GraphicsWindow.Title = "すべて拾い集めよう"
  GraphicsWindow.Width = 500
  GraphicsWindow.Height = 400
  ' マウス移動イベント登録
  GraphicsWindow.MouseMove = OnMouseMove
EndSub

Sub title
  ' タイトル画面の表示
  GraphicsWindow.BrushColor = "DodgerBlue"
  GraphicsWindow.FontSize = 50
  GraphicsWindow.DrawText(60,100,"すべて拾い集めよう")
  GraphicsWindow.BrushColor = "BlueViolet"
  GraphicsWindow.FontSize = 20
  GraphicsWindow.DrawText(70,180,"マウスカーソルを動かして四角を触ってください")
  Program.Delay(1000)
  GraphicsWindow.BrushColor = "Tomato"
  GraphicsWindow.FontSize = 30
  GraphicsWindow.DrawText(100,300,"クリックでゲームスタート")

  ' クリックされるまで待つ
  While Mouse.IsLeftButtonDown <> "true"
    Program.Delay(100)
  EndWhile
  GraphicsWindow.Clear()    ' 画面をクリア
EndSub

Sub start
  cnt = 0     ' 四角を拾った個数をカウント

  ' 四角をランダムに配置する
  For i=0 To 14
    GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
    oX[i] = Math.GetRandomNumber(460) +10
    oY[i] = Math.GetRandomNumber(360) +10
    obj[i] = Shapes.AddRectangle(20,20)
    Shapes.Move(obj[i], oX[i], oY[i])
  EndFor

  state = "play"    ' プレイ中
  lastTime = Clock.ElapsedMilliseconds  ' 現在の経過時間を取得
  ' OnMouseMove で state="wait" になるまで待つ
  While state = "play"
    Program.Delay(500)
  EndWhile
  ' プレイに掛かった時間を算出
  youTime = (Clock.ElapsedMilliseconds - lastTime) /1000
EndSub

Sub OnMouseMove
  If state = "wait" Then
    Goto endOnMouseMove
  EndIf

  ' マウス座標を取得
  px = GraphicsWindow.MouseX
  py = GraphicsWindow.MouseY
  'GraphicsWindow.Title = "px="+px+" py="+py

  ' 四角との当たり判定を行う
  For i=0 To 14
    If (oX[i] < px) And (oX[i]+20 > px) Then
      If (oY[i] < py) And (oY[i]+20 > py) Then
        'GraphicsWindow.Title = "当たり"
        Shapes.Remove(obj[i])
        oX[i] = 99999     ' 条件から外すため大きい数を入れる
        cnt = cnt +1
      EndIf
    EndIf
  EndFor

  If cnt = 15 Then
    'GraphicsWindow.Title = "すべて拾った"
    state = "wait"    ' 準備中
  EndIf
endOnMouseMove:
EndSub

Sub gameover
  GraphicsWindow.BrushColor = "DodgerBlue"
  GraphicsWindow.FontSize = 50
  GraphicsWindow.DrawText(120,100,"ゲーム 終了")
  GraphicsWindow.FontSize = 30
  GraphicsWindow.DrawText(80,190,"あなたのタイム ")
  GraphicsWindow.BrushColor = "Red"
  GraphicsWindow.FontSize = 40
  GraphicsWindow.DrawText(280,180,youTime)
  Program.Delay(2000)
  GraphicsWindow.BrushColor = "Tomato"
  GraphicsWindow.FontSize = 30
  GraphicsWindow.DrawText(140,300,"クリックでもう一度")

  ' クリックされるまで待つ
  While Mouse.IsLeftButtonDown <> "true"
    Program.Delay(100)
  EndWhile
  GraphicsWindow.Clear()
EndSub
Copyright (c) Microsoft Corporation. All rights reserved.