Small Basic:龟标(Turtle)(zh-CN)
本文介绍Small Basic编程语言中的龟标操作。
什么是龟标?
龟标来自Logo编程语言。它被称为Turtle Graphics。转动和移动龟标会产生图形形状。有关龟标历史的详细信息写在这篇TechNet Wiki文章中:《Small Basic:龟标的历史》。
Turtle``.``Show``(``)
上面的这一行代码使龟标显现(如下图)
属性
Turtle对象具有以下四个属性:
- Angle——获取并设置龟标的角度(单位是°)。默认值为0。
- Speed——获取并设置乌龟的速度(1到10)。预设值为5。
- X——获取或设置龟的X位置。默认值为320。
- Y——获取或设置乌龟的Y位置。默认值为240。
操作
Turtle对象中有以下九个操作。这些操作不返回任何值。
- Hide()——隐藏龟标。
- Move(distance)——将龟标移动指定的距离(单位是像素)。
- MoveTo(x,y)——转动龟标并将其移动到指定位置。
- PenDown()——落笔。
- PenUp()——抬笔
- Show()——显示龟标
- Turn(Angle)——将龟标旋转指定角度(单位是°)。
- TurnLeft()——将乌龟向左旋转90度。
- TurnLeft()——将乌龟向右旋转90度。
已知的问题
有一个已知的问题:如果曾将其隐藏,则无法显示。这意味着使用GraphicsWindow.Clear()也只能清除一次乌龟图形(拖尾)。
解决方法:
- Small Basic Known Issue: 25671 - Turtle.Show() Doesn't Show Turtle after GraphicsWindow.Clear() or Turtle.Hide() - fixed for v1.2
- There is no standard way to remove Turtle trails only. workaround
示例代码
' Turtle Object Code Sample
' Turtle.Show() operation
Turtle``.``Show``(``)
' Turtle.PenUp() and Turtle.MoveTo() operations
Turtle``.``PenUp``(``)
x ``= ``320
y ``= ``400
Turtle``.``MoveTo``(``x``, ``y``)
' Turtle.Angle property
Turtle``.``Angle ``= ``45
' show properties
GraphicsWindow``.``BrushColor ``= ``"Gray"
GraphicsWindow``.``DrawText``(``10``, ``10``, ``"Turtle.X=" ``+ ``Turtle``.``X``)
GraphicsWindow``.``DrawText``(``10``, ``30``, ``"Turtle.Y=" ``+ ``Turtle``.``Y``)
GraphicsWindow``.``DrawText``(``10``, ``50``, ``"Turtle.Angle=" ``+ ``Turtle``.``Angle``)
GraphicsWindow``.``DrawText``(``10``, ``70``, ``"Turtle.Speed=" ``+ ``Turtle``.``Speed``)
Program``.``Delay``(``3000``)
' Turtle.PenDown() operation
Turtle``.``PenDown``(``)
GraphicsWindow``.``PenColor ``= ``"Red"
' Turtle.Move() operation
distance ``= ``130
Turtle``.``Move``(``distance``)
' Turtle.Turn() and Turtle.Move operations
angle ``= ``-``90
Turtle``.``Turn``(``angle``)
Turtle``.``Move``(``distance``)
' Turtle.TurnRight() and Turtle.Move operations
Turtle``.``TurnRight``(``)
Turtle``.``Move``(``distance``)
' Turtle.TurnLeft() and Turtle.Move operations
Turtle``.``TurnLeft``(``)
Turtle``.``Move``(``distance``)
' Turtle.Hide() operation
Turtle``.``Hide``(``)
示例程序
- Another Turtle Graphics 0.5b (XVK119-3) - 简单的Logo语言程序
- Brownian Motion (RFV485) - 布朗运动演示
- Dragon and Turtle 0.6b (HMP803-5) - 格斗游戏
- Hilbert Curve (CMN910) - 绘制希尔伯特曲线
- One Stroke Solver 0.2 (FST624-0) - 解决一个行程路径问题
- Turtle Brick 0.1 (KDH145) -龟标砌建筑
- Turtle Dodger 0.5b (QZN342-3) - 简单的游戏
- Turtle Flash 0.3 (RBN002-1) -显示Flash动画
- Turtle Maze 1.62 (PNC833-19) - 迷宫游戏
- Optical Illusion #01 (TQH071) -没有使用Turtle对象,但是有Image
- Turtle Marionette (VTD423-0) - 没有使用Turtle对象,但是有Image
其他资源
- API Reference: Turtle Object
- Clearing Turtle Trails (The Official Blog of Small Basic)
- Small Basic: Turtle Bitmap for Another Turtle Project: PNG Image (TechNet Gallery)
- Small Basic: Another Turtle Project: PowerPoint Presentation (TechNet Gallery)
- Small Basic Turtle Object - 5 Practice Exercises! (User Ed Blog)
参见
- Small Basic Getting Started Guide: Chapter 8: Turtle Graphics
- Small Basic Curriculum: Lesson 2.2: Turtle Graphics
- Small Basic Reference Documentation: Turtle Object
- Small Basic: The History of the Logo Turtle
- Small Basic: How to Make a Turtle Maze Game
- Wiki: Small Basic Portal
其他语言
- Small Basic: Turtle (en-US)
- Small Basic: La Tortue (Turtle) (fr-FR)
- [[articles: Small Basic: タートル (ja-JP)]]