Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@ohisama@github

smallbasic ゲームスレッド

サンプル

Sub setup
  paddle = Shapes.AddRectangle(120, 12)
  ball = Shapes.AddEllipse(16, 16)
  GraphicsWindow.FontSize = 14
  GraphicsWindow.MouseMove = OnMouseMove
  score = 0
  PrintScore()
  Sound.PlayBellRingAndWait()
  x = 0
  y = 0
  deltaX = 1
  deltaY = 2
EndSub

Sub loop
RunLoop:
  x = x + deltaX
  y = y + deltaY  
  gw = GraphicsWindow.Width
  gh = GraphicsWindow.Height
  If (x >= gw - 16 Or x <= 0) Then
    deltaX = -deltaX
  EndIf
  If (y <= 0) Then
    deltaY = -deltaY
  EndIf 
  padX = Shapes.GetLeft(paddle)
  If (y = gh - 28 And x >= padX And x <= padX + 120) Then
    Sound.PlayClick()
    score = score + 10
    PrintScore()
    deltaY = -deltaY
  EndIf
  Shapes.Move(ball, x, y)
  Program.Delay(5)  
  If (y < gh) Then
    Goto RunLoop
  EndIf  
  GraphicsWindow.ShowMessage("Your score is: " + score, "Paddle")
  Program.End()
EndSub

Sub OnMouseMove
  paddleX = GraphicsWindow.MouseX
  Shapes.Move(paddle, paddleX - 60, GraphicsWindow.Height - 12)
EndSub

Sub PrintScore
  GraphicsWindow.BrushColor = "White"
  GraphicsWindow.FillRectangle(10, 10, 200, 20)
  GraphicsWindow.BrushColor = "Black"
  GraphicsWindow.DrawText(10, 10, "Score: " + score)
EndSub

setup()
loop()
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?