Microsoft Small Basic

Program Listing: CQV406
' Sample of Another Turtle
' Copyright (c) 2012 Nonki Takahashi. All rights reserved.
'
' History:
' 0.1 2012/11/25 Created.
'
AT_Init()
AT_Show()
Turtle.Show()
Turtle.PenUp()
While "True"
Turtle.Move(100)
AT_distance = 100
AT_Move()
Turtle.TurnRight()
AT_TurnRight()
EndWhile

Sub AT_Init
' Another Turtle | Initialize
AT_SIZE = 16
AT_OFFSET = AT_SIZE / 2 - 2
AT_obj = Shapes.AddImage("http://www.nonkit.com/smallbasic.files/AnotherTurtle.png")
Shapes.HideShape(AT_obj)
AT_x = Turtle.X
AT_y = Turtle.Y
AT_angle = Turtle.Angle
Shapes.Move(AT_obj, AT_x - AT_OFFSET, AT_y - AT_OFFSET)
EndSub

Sub AT_Show
' Another Turtle | Show
Shapes.ShowShape(AT_obj)
EndSub

Sub AT_Move
' Another Turtle | Move
AT_x = AT_x + AT_distance * Math.Sin(Math.GetRadians(AT_angle))
AT_y = AT_y - AT_distance * Math.Cos(Math.GetRadians(AT_angle))
Shapes.Animate(AT_obj, AT_x - AT_OFFSET, AT_y - AT_OFFSET, 1000)
EndSub

Sub AT_TurnRight
' Another Turtle | Turn Right
For angle = AT_angle To AT_angle + 90
Shapes.Rotate(AT_obj, angle)
Program.Delay(5)
EndFor
AT_angle = angle - 1
EndSub