编辑: 木头飞艇 2019-12-08
敏捷培训大巴 KPL 编程入门 www.

atsoft.com.cn

1 1 KPL 编程入门 作者:Jon SchWartz 翻译:敏捷培训大巴 www.atsoft.com.cn

2006 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

2 2 目录 简介:什么是编程?3 为什么我要学习 KPL 编程?3 如何使用本教程?4 好了,让我们来看程序了

4 什么是电脑图形?7 电脑精灵

14 在KPL 中使用变量和循环.17 用KPL 编程.22 进一步的学习.31 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

3 3 简介:什么是编程? 电脑编程其实很简单:就是向电脑下指令. 电脑可以很好地执行指令.我们告诉它什么,它就执行什么.但 是他们没有想象力!因此当我们编写电脑指令,必须把我们想做的事 情正确无误的传递给它. 为什么我要学习 KPL 编程? 不同的电脑编程语言,对于编程者而言,只是意味着用不同的方 式告诉电脑工作的方式.Kids Programming Language(儿童编程语 言),简称 KPL,对初学者有以下优势: ? KPL 专门设计以使初学者尽可能容易地学习 ? KPL 专门设计以使在学习中感到乐趣 ? KPL,与其它的初学者语言不同,专门设计成跟现今的专业编 程语言尽可能地相似 人们总是重复着一句古老的谚语,这个谚语也同样适合 KPL: 在学会跑之前,先学会走路 学习 KPL 编程就是学会 走路 的编程.学完 KPL 编程后,你就 可以非常容易的学跑了-无论你决定开始学习 Java,Python, Visual Basic 或是 C#. 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

4 4 如何使用本教程? 没有编程经验的初学者,最好的学习办法就是从头至尾按顺序的 阅读和学习本教程.在开始新内容前,确信已经理解了前面每节的内 容.这可能是相对有效的方法,尤其是你的机器上还没有安装有 KPL 的时候,这样保持到你开始进入 用KPL 编程 的学习章节.这种研 读和学习 KPL 的方法,会有助于在学习的过程中集中注意力,避免复 杂性. 电脑编程意味着学习跟人的正常思维情况不同的思维方式.电脑 要求我们比平时更加逻辑,顺序化和精确.刚开始的时候,可能会很 难,但是你能做到!一旦你可以开始驾驭他,它就真正的为你所用. 学习新东西的最好的方法之一是向有编程经验的人提问并获得解 答.那么,现在你想想看,谁可以在学习 KPL 的过程中帮助你呢? 好了,让我们来看程序了 ! 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

5 5 就是它了!如果你运行这段 KPL 代码,你将会看到: 你看见这

5 行代码就是 KPL 中代码的截屏,跟你在实际的 KPL 开 发过程中看到的 KPL 代码完全一样. 首先要注意的是,最左边的行号:对KPL 自身来说,没有什么用 途, 只是协助便于阅读和定位 KPL 代码. 旧的编程语言, 比如 GWBASIC 用代码前的行标来定义代码的执行顺序, 但KPL 不是这样定义的. KPL 程序通常按一次执行一个结构片段的方式,从头到尾地执行代码.关 于这一点,超出了教程的范围,我们在这里暂不讨论. KPL 编程重要的规则之一是每一行 KPL 代码在程序文件中都必须 是单独的一行.比如,下面的 KPL 代码跟上面的代码内容一样,但是 没有单独成行,因此程序无法运行: 所有的电脑编程语言都有一些规则,电脑会按照编程的指令执行 代码.人与人的交流也有很多规则-我们如此多得使用这些规则,只 是我们时常并没有意识到我们在使用这些规则.比如,我们不会拿起 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

6 6 电话就说 再见! ,也不会挂机的时候说 你好! ,当然,这只是简 单的举例,但非常类似.因此 KPL 也要求一个特殊的方式表明开始和 结束.所有的 KPL 代码都必须象下面第

1 行:Program Helloworld 开头的,所有的 KPL 代码都必须以象下面第

5 行End Program 结束: 你可以任意命名程序名称,但最好的命名应该描述程序的用途. 在这个例子中,我选择 HelloWorld 作为程序名称.你也可以使用一 个完全不同的名字,比如程序命名为:MyFirstProgram. 然后,要重点了解 KPL 编程的 Method Main()方法.所有的 KPL 程序从这个方法开始执行.你会看到这个结构里面的执行语句是: Print( Hello World! ) Method Main()用来定义成程序开始执行的起始方法-这一点与现 代编程语言如出一辙.跟预料的一样,End Method 与Method Main ()匹配结对出现. 本教程不深入地解释什么是方法,但是,你会从包含print( Hello World! )代码的 Method main()这样的结构中感 受到. 以上就是这段仅包含一句有效指令的特殊程序的全部解释.该指 令告诉电脑执行 Print( Hello World! ). 好的,总结一下:代码第

1 行和第

5 行告诉电脑开始和结束.第2行和第

4 行告诉电脑 Method Main()的开始和结束. 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

7 7 现在让我们重新运行程序,看看窗口会出现什么.注意,在窗口 的 内部 ,电脑只做了一件事情,我们通过 KPL 告诉它该做的一件 事情.电脑输出了:Hello World ! 什么是电脑图形? Hello World 是一个经典程序-但是, 它一点都不让人激动! 好吧, 我们来聊聊有趣的图形编程吧! 我们从如何在屏幕上放置图形为例来说明电脑图形.电脑上使用 的坐标体系跟我们在学校里学的坐标体系有所不同.不过,好在电脑 坐标也非常容易使用,特别是因为它非常方便于在屏幕上定位. 电脑使用(x,y)的坐标体系定位屏幕,屏幕左边(Left)定义 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

8 8 为X=0,顶部(Top)定义为 Y=0.这意味着这样的 x=0 和y=0 这样的 位置,就是屏幕的左上角.向右移动,X 值增加,向下移动,Y 值增 加. 如果你还不能理解,这有一个详细的图示,表明了在 KPL 程序中 几个(x,y)坐标的显示定位. 请留意上面的数字.在屏幕上方的第一个坐标的 X 值,正如你看 到的一样,从左到右移动,X 的值会增加.在屏幕下方的第二个坐标 的Y值,也如你所见,随着从顶部到底部的移动,Y 值也会增加. 接下来,我们开始写第一个 KPL 的图形程序.在这个过程中,我 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

9 9 们会展示如何在图形坐标系统中应用 KPL 在屏幕上做出很酷的图形. 首先,我们运行这个完整的 KPL 程序实例:程序运行后,会创建一个 图形. 然后, 我们逐步地详解 KPL 代码的细节, 说明它是如何工作的. 注意,在Method Main()方法里,从第

3 行到第

10 行,一共有

8 行KPL 指令.指令要比我们学的第一个程序略为多一点,但仅仅通 过8行指令,我们可以在电脑屏幕上画出一个蓝色的五星来.这真是 很酷的事情! 注意,这段程序的开始和结束方式,跟我们前面提到的第一个程 序是一样的.除了程序的名称命名成 DrawingWithThePen: 现在,让我们开始加入指令,看看每一次都做了些什么: 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

10 10 我们先加入两行指令,正如你所见,程序不显示任何东西. Color(Blue)告诉 KPL 我们想用蓝色的画笔.PenWidth(5)告诉 KPL: 当我们画画时,我们希望画笔画出的宽度是

5 象素的宽度.当然,你也可以设置 其 它的 任 意值 .PenWidth(2) 会 画出 细 一点 的线,PenWidth(10)画出的线会粗一些.然而,我们虽然告诉了 KPL 该如何 画画,但我们没有告诉它要画什么.好吧,现在就让我们来画五星的 第一条线. 我们加的第一条指令是 Move(100,0).告诉 KPL 移动画笔到屏幕 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

11 11 上的(100,0)位置,就是五星开始的顶点.KPL 的画笔位置总是从 左上角(0,0)的位置开始,然后如所见,水平移动到(100,0)的 位置. 新增的第二条指令是 Move(50,150).这条指令画出了五星的第一 条线,想一想这两个点的(X,Y)值.这条指令告诉 KPL 把画笔从 X=100 移到 X=50,线条向左移,然后 Y=0 到Y=150,线向屏幕的下方 移动. 现在,让我们增加更多的指令,告知 KPL 画出下一条线: 新增的指令是:Move(180,50).KPL 继续从先前的(50,150)移动.你曾经见过 Etch-A-Sketch-那种可以切换两个开关在屏幕上画 画的红色酷玩吗?KPL 的画笔非常象是电子的 Etch-A-Sketch.让我 们来完成五星新增其余的线条吧: 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

12 12 如你所见,新增的三条 KPL 指令画出了其余三条五星线.总之, 按照我们的 KPL 程序指令,我们移动了

6 次画笔的位置,画出了

6 条 直线,得到了一个五星. 完成上诉工作,KPL 只需做很少的工作:仅仅用了

8 条指令.在KPL 图形编程里面最难的事可能就是要理解(X,Y)坐标系统.关于 这一点, (X,Y)的位置到底代表什么,如果你还不是非常清楚的话, 你可能需要回到前面的解释中去反复阅读.如果对(X,Y)坐标体系 没有直接的体会,你可以在电脑上编写一些的 KPL 代码,体验一下在 屏幕的不同位置画一些线条. 可能你需要画一个矩形和一个三角形? 如果你要马上开始 KPL 编程,你可以先跳过本节,先阅读 用KPL 编程 章节的相关帮助.当你适应了(X,Y)坐标系统,你再回到这里 来继续. 花足够的时间和精力在适应和了解 KPL 的(X,Y)坐标体系上是 非常重要的.因为这是所有图形编程的基础.其他的图形编程也是这 样.因此,当你学习 KPL 时,你也正在学习大多数电脑语言的图形编 程的最基本的概念. 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

13 13 让我们来为程序增加一个细节:给KPL 画笔一些额外的控制.这 些事情 Etch-A-Sketch 可做不成, 你无法控制 Etch-A-Sketch 画笔的 颜色,但KPL 却不费吹灰之力: 如所见,我们只是把 Color(blue)变成 Color(Green).非常简 单! 还有, 我们在 Move (100, 0) 前, 新增了 Pen(false),Pen(false) 告诉 KPL 在移动过程中,不要画线.所以,当画笔从(0,0)移动到 (100,0)的过程中,不会再画出一条水平直线-这样五星看起来更 好看! 记住,当我们说 Pen(false)的时候,电脑会严格执行该指令, 当画笔移动时,KPL 停止画线.所以当我们希望 KPL 开始画五星时, 我们同样需要给 KPL 一条指令: Pen (True) , 当它移动时, 开始画线. 总结一下, Pen (False) 告知 KPL 移动画笔时关闭画线, Pen(True) 告知 KPL 移动画笔时开启画线.Etch-A-Sketch 可做不到这些!当你 要想画各种各样的物体时,你可以随心所欲的开关画笔.这里有一个 简单的例子:移动时关闭,画画时打开. 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

14 14 电脑精灵 画线的例子通常用于来说明显示图形的(X,Y)坐标体系.但游 戏图形通常不需要画图.他们总是装入现成的图片:UFO、小行星或 小飞侠.KPL 使用精灵作为图形显示的方法,这使得一切都变得非常 简单! 跟上次课一样,我们先演示一个已经完成的程序,然后详细讲解 程序工作的细节.然后你可以参照这个编写自己的程序. 这就是完整的 KPL 程序-跟上次的例子一样,在Meth Main()中也 只有

8 条指令.这8条指令,告知 KPL 在屏幕的上方显示一个 UFO, 然后 UFO 再缓慢的移动到屏幕的下方: 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

15 15 注意, 程序的开始和结束跟先前的例子相同-正如所有的 KPL 程序 要做的一样-但程序名命名为 UFO: 我们来看看 KPL 包含的一些图片文件. 在KPL 中提供了

65 张图片, 但你可以使用任意的图片文件:添加现成的或自己创建的图片. 现在你已经看了 KPL 提供的图片了,我们开始新增 KPL 指令,在 屏幕的上方显示 UFO 图形: 我们加的第一条指令是:LoadSprite( UFO , UFO.gif ) . 敏捷培训大巴 KPL 编程入门 www.atsoft.com.cn

16 16 如前所说,KPL 有一些保留指令的关键词.LoadSprite 这个关键词, 用法不算复杂,但要求明确!LoadSprite 要求两个确定的变量值才 能正确运行.第一个变量值必须是我们所指的精灵的名字-在这个例 子中,我们命名为 UFO.第二个变量值必须是指定精灵的图片文件所 在的位置.变量值必须用双引号引用,变量间用逗号分隔. 下面有几个用 KPL 装入精灵的不正确的示例.重复一次:下面的 四个指令都不能正确运行,因为 KPL 不能理解不正确的 LoadSprite 指令.你能修正其中的错误,使之能正确运行吗? LoadSprite('

UFO'

,'

UFO.gif'

) LoadSprite(UFO,UFO.gif) LoadSprite( UFO . UFO.gif ) LoadSprite( UFO ) 总结: LoadSprite( UFO , UFO.gif )告知 KPL 用UFO.gif 图片建 立一个新的精灵,并把这个精灵命名为:UFO 现在 KPL 要知道在屏幕的什么位置显示该精灵.我们给出下一条 指令:MoveSpriteToPoint( UFO ,50,0).MoveSpriteToPoint 要 求输入三个变量. 第一个........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题