Microsoft Small Basic

Program Listing: XJF441
GraphicsWindow.Title="陰謀ダーゲーム0.01 2012.1.1 Happy New Year!"'…ウィンドウタイトル
GraphicsWindow.BackgroundColor="Black"'…バックが黒
'
gw=GraphicsWindow.Width'…ウィンドウの幅:gw
gh=GraphicsWindow.Height'…ウィンドウの高さ:gh
GraphicsWindow.BrushColor="Cyan"'…塗り色:淡い青緑
'
ix=0'…インボーダーのX座標(初期値)
UchuuHyouji()'…宇宙表示サブに飛ぶ

rbody=Shapes.AddRectangle(22,22)'…ロケットのボディの形
rtop=Shapes.AddTriangle(0,20,8,0,16,20)'…ロケットのトップの形
rwing=Shapes.AddTriangle(0,25,15,0,30,25)'…ロケットの翼の形
rpit=Shapes.AddEllipse(8,15)'…ロケットのコックピットの形
'
iwing=Shapes.AddTriangle(0,0,20,20,40,0)'…インボーダーの翼の形
ibody=Shapes.AddEllipse(30,16)'…インボーダーのボディの形
itop=Shapes.AddTriangle(0,0,4,20,8,0)'…インボーダーの先の形
'
GraphicsWindow.MouseMove=OnMouseMove'…マウスに動きがあったらOnMouseMoveサブへ飛ぶ
Loop:'…ループの始まりの標識
'
'*** インボーダーの動作 ↓ ***
'
If ix>=gw Then'…もしインボーダーのX座標がウィンドウの幅を超えたら以下の処理をする
ix=0'…インボーダーのX座標を0にする(最初に戻る)
Endif
'
ix=ix+.01'…インボーダーのX座標を0.01増やす(インボーダーのスピード調整)
InvoderMove()'…インボーダーを動かすサブに飛ぶ
Goto Loop'…ループの最初へ
'
'*** サブルーチン ↓ ***
'
Sub OnMouseMove'…マウスに動きがあった時のサブ
rokettoX=GraphicsWindow.MouseX'…マウスの位置(X座標)
Shapes.Move(rtop,rokettoX-7,gh-40)'…ロケットの先端を動かす
Shapes.Move(rwing,rokettoX-14,gh-28)'…ロケット翼を動かす
Shapes.Move(rbody,rokettoX-10,gh-25)'…ロケットのボディを動かす
Shapes.Move(rpit,rokettoX-3,gh-19)'…ロケットのコックピットを動かす
EndSub
'
Sub UchuuHyouji'…宇宙表示サブ
For i=1 To 100'…100回繰り返す(100この星)
hx=Math.GetRandomNumber(gw)'…星のX座標(乱数)
hy=Math.GetRandomNumber(gh)'…星のY座標(乱数)
GraphicsWindow.SetPixel(hx,hy,"White")'…座標(hx,hy)のピクセルを白にする
EndFor
EndSub
'
Sub InvoderMove'…インボーダーの動きサブ
Shapes.Move(iwing,ix,0)'…インボーダーの翼を動かす
Shapes.Move(ibody,ix+5,0)'…インボーダーのボディを動かす
Shapes.Move(itop,ix+16,9)'…インボーダーの先端を動かす
EndSub