网络版GoC常见绘图命令说明 (V3.8) 目录 l 基本画图命令 l 设置笔状态命令 l 状态命令 show, hide, speed, showXY, wait, pause, cls, clsRec l 增强画图命令 l 坐标命令 moveTo, lineTo, getX, getY, getAngle, setAngle l 文字命令 l 图片命令 l 声音命令 l 输入输出命令
l 键盘检测命令 l 鼠标检测命令 l 按钮命令 l 新版增加命令 getTime, getYear, getMonth, getDate, getHour, getMinute, getSecond,ctime l 数学函数
|
||
命令类型 |
命令格式 |
功能说明 |
本 画 图 命 令 |
名称:前进 格式:pen.fd( length ); |
功能:笔向前移动指定长度,以当前颜色画一条直线。 说明:fd是forward(前进)的缩写;length可为整数或小数。 样例:pen.fd( 50 ); |
名称: 后退 格式:pen.bk( length ); |
功能:笔向后移动指定长度,以当前颜色画一条直线。 说明:bk是back(后退)的缩写;length可为整数或小数。 样例:pen.bk( 80 ); |
|
名称:顺时针旋转 格式:pen.rt( angle ); |
功能:笔的方向在当前位置和方向顺时针旋转指定角度,一周是360度。 说明:rt是right(向右)的缩写,所以也称为右转命令;angle可为整数或小数。 样例:pen.rt( 60 ); |
|
名称:逆时针旋转 格式:pen.lt( angle ); |
功能:笔的方向在当前位置逆时针旋转指定角度,一周是360度。 说明:lt是left(向左)的缩写,所以也称为左转命令;angle可为整数或小数。 样例:pen.lt( 60 ); |
|
置 笔 状 态 命 令 |
名称:设置颜色 格式:pen.c( color ); |
功能:设置笔的颜色为指定颜色,以后笔将使用这个颜色画图。颜色有16种,编号0到15。 说明:c是color(颜色)的缩写,简称颜色命令;color一般为0到15的整数;第16号颜色是pen.rgb()设置的颜色。 样例:pen.c( 1 ); pen.fd( 80 ); |
名称:设置RGB颜色 格式:pen.rgb(r, g, b ); |
功能:设置第16号颜色为指定的RGB格式定义的颜色。 说明:第16号颜色默认是淡绿色。可以设置一百多万种颜色。 样例:p.rgb(166,254,167).c(16).oo(50); |
|
名称:设置粗细 格式:pen.size( width ); |
功能:设置笔的粗细为指定宽度,以后笔将使用这个宽度画图。 说明:size的意思是大小,所以简称大小命令。宽度width的值为正整数。 样例:pen.size( 1 ). fd( 100 ); 和 pen.size( 8 ). fd( 100 ); |
|
名称:抬笔 格式:pen.up( ); |
功能:把笔抬起悬空(阴影表示),以后笔移动时不会画出直线。 说明:没有参数。抬笔只是影响fd和lineTo命令,对画圆、椭圆、矩形等命令没有影响。 样例:pen.rt(90).fd(100).up( ).fd( 100 ); |
|
名称:落笔 格式:pen.down( ); |
功能:把笔落下,以后笔移动时又会正常画出直线。 说明:没有参数。 样例:pen.rt(90).fd(50).up( ).fd( 50 ).down( ).fd(50); |
|
态 命 令 |
名称:显示笔 格式:pen.show( ); |
功能:把笔当前的颜色、位置和方向等状态用笔头动态显示出来。配合speed命令,可以演示笔的移动、转弯过程。 说明:没有参数;可用与hide命令配合,转换会显示/隐藏笔。 相关的:在已经显示笔的情况下再用pen.drawH()命令,会在画布上静态留下笔头图形。 |
名称:隐藏笔 格式:pen.hide( ); |
功能:取消笔的显示状态。 说明:没有参数。一般是为了提高绘图速度或图形中不出现笔。 样例:pen.hide().rt(90).fd(100); |
|
名称:速度 格式:pen.speed( v ); |
功能:调整笔移动、旋转的速度。速度分为10个等级,v=1最慢,v=10最快。 说明:速度值 v为1到10的数值。speed配合show命令可以方便调试程序,演示绘图过程。 |
|
名称:画坐标 格式:pen.showXY(len,color,size ); |
功能:显示一个简单的网格线坐标。网格线间隔距离len,网格线颜色color号,网格线粗细size。 说明:showXY绘制坐标到画布上,与面板的“坐标”按钮无关。 样例:pen.showXY(100,1,1); 和showXY(1000,0,2);的2种效果:
|
|
名称:等待 格式:wait( second ); |
功能:程序运行到这里会等待指定时间,再继续运行。等待的时间单位是秒,可以是小数。 说明:wait不是pen的命令,格式不能“pen.”开头。适当的使用wait不仅方便调试程序和演示绘图过程,还是实现动画的必要方法。second要保证>=0。 样例:wait(0.2); 表示程序在这里停留0.2秒。 |
|
名称:暂停 格式:pause( ); pause( second ); |
功能:使程序暂时停止运行。按任意键或鼠标点击时,程序继续运行。pause( second )格式时,second秒后,结束等待,程序继续运行。 说明:不是pen的命令,格式不能“pen.”开头。没有参数时,一直等待。 样例:pause(5.5); 表示程序在这里等待5.5秒,但按键就会终止等待,继续运行。 |
|
|
名称: 清屏 格式:pen.cls( ); |
功能:清除整个绘图区域。笔的位置回到坐标原点,笔的方向朝上(0度)。 说明:cls是clearScreen(清除屏幕)的缩写。 样例:p.cls(0); |
|
名称: 清矩形 格式:pen.clsRec( w, h ); pen.clsRec( ); |
功能:对笔位置为中心的矩形区域清除颜色(变成无色透明),w为宽,h为高。 说明:clsRec是clearRectangular (清除矩形)的缩写,没有参数的clsRec()表示清整个屏幕,它与cls()不同,pen位置不会坐标回原点。如果picU(1);方向会随笔头。 样例:p.oo(200).clsRec(100,150); |
强 画 图 命 令 |
名称:画圆 格式:pen.o( r ); pen.o( r,c ); pen.oo( r ); pen.oo(r,c); |
功能:以笔位置为圆心,r为半径,画圆。oo命令是画实心圆。c为颜色编号。 说明:命令中如果省略c,用当前笔的颜色画图。 样例:pen.o(70).oo(50,3); |
名称:画椭圆 格式:pen.e( w, h ); pen.e( w, h, c ); pen.ee( w, h ); pen.ee(w, h, c); |
功能:以笔位置为圆心,横半径为w纵半径为h画椭圆。ee命令是画实心椭圆。c为颜色编号。 说明:命令中省略c时用当前笔的颜色画图。如果picU(0);方向会随笔头。 样例:pen.rt(45).picU(0).ee(40,70,13).e(30,60,1); |
|
名称:画矩形 格式:pen.r( w, h ); pen.r( w, h, c ); pen.rr( w, h ); pen.rr(w, h, c); |
功能:以笔位置为中心,画宽为w高为h的矩形。rr命令是画实心矩形。c为颜色编号。 说明:命令中省略c时用当前笔的颜色画图。如果picU(0);方向会随笔头。 样例:pen.rt(45).picU(0).r(70,100,2).rr(60,90,3); |
|
标 命 令 |
名称:移动 格式:pen.moveTo( x, y ); |
功能:直接把笔的位置移动到指定的坐标,但不画图。 说明:moveTo命令不会画出线条,笔的方向也不会改变。 样例:pen.oo(20,1).moveTo(40,0).oo(20,2).moveTo(80,0).oo(20,3); |
名称:连线 格式:pen.lineTo( x, y ); |
功能:笔的位置移动到指定的坐标,并画出线段。 说明:lineTo命令会画出线条,但笔的方向不改变。 样例:pen.lineTo(50,50).lineTo(0,50).lineTo(0,0); |
|
名称:获取X坐标 格式:getX( ) |
功能:获得笔当前位置的X坐标值,并返回这个值。 说明:getX( )没有参数,但会返回X坐标值,是函数型命令。格式可以不用“pen.”开头。 样例:p.rt(60).fd(200).text(getX(),1); |
|
名称:获取Y坐标 格式:getY( ) |
功能:获得笔当前位置的Y坐标值,并返回这个值。 说明:getY( )没有参数但会返回Y坐标值,是函数型命令。格式可以不用“pen.”开头。 样例:pen.rt(60).fd(200); pen.text(getY()); |
|
名称:获取角度 格式:getAngle( ) |
功能:获得笔当前的方向角度值,并返回这个值。 说明:getAngle( )没有参数但会返回角度值,是函数型命令。格式可以不用“pen.”开头。 样例:pen.rt(60).fd(100); pen.text(pen.getAngle()); |
|
名称:设置角度 格式:pen.setAngle( a ); |
功能:直接设置笔的方向为指定的角度。 说明:setAngle命令不管现在笔的方向,直接定位到角度a。 样例:pen.rt(60).fd(100).setAngle(180).fd(50); |
|
字 命 令 |
名称:画写文字 格式:pen.text(x); pen.text(x, c); |
功能:以笔的当前位置为中心,以c号颜色输出 x 的内容。x可以是数字、变量或字符串。 说明:pen.text(x)每次输出都是以笔的位置为字符串中心。 如果x是浮点数字,按照指定精度输出。 如果缺省c,以笔的颜色为文字颜色。 样例:pen.text("圆周率=",10).moveTo(80,0).text(3.1415); 备注:如果设置了pen.picU(0),输出文字的方向跟随pen的方向旋转。 |
名称:设置浮点数精度 格式:pen.precision( len ); |
功能:pen.text命令输出小数时,默认精度为小数点后2位。可以用本命令设置指定的精度。 说明:len过长时,不填充0。 样例:pen.precision(4).text("圆周率="+d2s(3.141592),1,40); |
|
名称:设置文字大小 格式:pen.textSize( i ); |
功能:设置画出的字符的字体大小为i号。 说明:改变pen.text命令输出的文字大小。 样例:pen.textSize(50).text("GoC程序"); |
|
名称:设置字体 格式:pen.font( f ); |
功能:设置画出的文字的字体。f可以是字体编号或名称,字体编号参见附录1。 说明:字体要当前计算机系统里有字库的才可以显示。 样例:pen.textSize(40).font(3).text("你好",0); pen.moveTo(80,0).font("华文新魏").text("你好",1); |
|
名称:增强显示文字 格式: pen.text(s,col,size,dir,x,y,c2); pen.text(s,col,size,dir,x,y); pen.text(s,col,size,dir); pen.text(s,col,size); |
功能:这4给命令text的补充,增强了text的功能。有c2参数说,表示的是底色编号。c2=-1时,相当于无色(清除原来的颜色)。 说明:text参数有1、2、3、4、6、7个六种格式。 样例:pen. text("GoC程序",11,50,45); |
|
名称:设置字体方向 格式:pen.textU( 0/1 ); |
功能:执行pen.textU(1),设置文字的方向始终向上;执行pen.textU(0),设置的文件方向随笔的方向旋转。(U是up的意思) 说明:默认文字方向是始终朝上的。有角度参数text按照参数的方向。 样例: p.textU(0); for (int i=0; i<6; i++)
p.fd(150).text(i,i,100).bk(150).rt(60); |
|
名称:字转字符串 格式:d2s( double ) |
功能:d2s的是double to string的简称,就是数转化为字符串。 说明:在需要字符串和数字连接在一起显示时,使用这个函数比较方便。不是pen的命令,格式不能“pen.”开头。 样例: pen.hide().up(); for (int i=0; i<12; i++) p.fd(150).text(d2s(i)+"点",0,30).bk(150).rt(360/12); |
|
片 命 令 |
名称:设置文件路径 格式:pen.setPath(ps ); |
功能:GoC单机版的图片、声音等文件的默认路径是pub子目录。可以用setPath命令指定文件在名字为ps的子目录,方便文件分类。 说明:必须是pub下的子目录。 样例:
|
名称:调入设置一张图片 格式:pen.picL( id,fname ); |
功能:把文件名为fname的图片调入,并设置对应为编号id,供后面显示图片pic等命令使用。(L表示load) 说明: 图片格式可以是png、bmp、jpg等多种; 调入图片文件比较“费时间”,通常在程序开头就完成picL命令。 样例: p.picL(1,"bird.png"); |
|
名称:调入设置多张图片 格式: pen.picL( idBeign,idEnd,fnames ); pen.picL( idBeign,idEnd,fname,sBegin ); |
功能:一次调入多张图片,并设置对应为编号idBegin到idEnd,供后面显示图片pic等命令使用。 说明:参考” 调入设置一张图片”命令。 第1种命令格式中的idBegin是id的开始编号,idEnd是id的结束编号。fnames是多个图形文件名的字符串,文件名中间用”,”隔开。 第2种命令格式中的sBegin是图片文件的开始编号,图片文件名格式为:文件名+编号+.+后缀。 样例1:pen.picL(0,2,"car.png,pen.png,tree.png"); 这个命令相当于: pen.picL(0,"car.png").picL(1,"pen.png").picL(2,"tree.png"); 样例2:pen.picL(3,6,"bike.png",0); 这个命令相当于: pen.picL(3,"bike0.png").picL(4,"bike1.png").picL(5,"bike2.png").picL(6,"bike3.png"); |
|
名称:显示图片 格式:pen.pic( id ); pen.pic(id, w, h); pen.pic(cav,id,w,h,angle,x,y); |
功能:把编号为id的图片在笔位置显示。如果缺省w,h(宽和高)参数,就以图片原始大小显示。有7个参数的是增强格式,参数意义分别是:图层号、图片号、宽度、高度、方向、X坐标、Y坐标。 说明:默认的,笔的位置是图片的中心位置,显示时图片向上,如样例所示。 可以参看picO和picUp命令来修改默认项。 样例: p.picL(1,"bird.png"); for (int i=0; i<4; i++) p.fd(150).pic(1).bk(150).rt(90); |
|
名称:设置绘图位置 格式:pen.picO( 1/0 ); |
功能:如果执行pen.picO(1),就是设置笔的位置是图片的中心;如果执行pen.picO(0),就是设置笔的位置是图片的左下角。 说明:默认笔的位置是图片的中心位置。 样例: p.picL(1,"bird.png").picO(0); for (int i=0; i<4; i++) p.fd(150).pic(1) .o(10,1).bk(150).rt(90); |
|
名称:设置图片方向 格式:pen.picU( 1/0 ); |
功能:执行pen.picU(1),设置图片的方向始终向上;执行pen.picU(0),设置的图片方向不是一直向上,而是按照笔的方向显示。(U是up的意思) 说明:默认图片方向是始终朝上的。 样例: p.picL(1,"bird.png").picU(0); for (int i=0; i<6; i++) p.fd(150) .pic(1).bk(150).rt(60); |
|
名称:设置画布的层 格式:pen.cav( -1/0/1 ); |
功能:网络版GoC目前有三次画面供画笔绘图。pen.cav(-1)设置画笔在最下面一层;pen.cav(1)设置画笔在最上面一层;pen.cav(0)设置画笔在中间一层。 说明:默认画笔在中间层;cav对绘图命令和图片命令都影响。 样例: p.cav(1).ee(80,200,1).rt(60); p.cav(0).ee(80,200,2).rt(60); p.cav(-1).ee(80,200,3).rt(60); |
|
名称:动画图片 格式:pen.ani(cavId, picId ); pen.ani(cavId, picId, w, h); pen.ani(cav,id,w,h,angle,x,y); |
功能:与pic命令类似,但每次显示图片时,会自动清除画布上所以图形。cavId指定在第几层画布上显示,具体参见cav命令;picId为图形编号,具体参见cpicL命令。有7个参数的是增强格式,参数意义分别是:图层号、图片号、宽度、高度、方向、X坐标、Y坐标。 说明:这个命令在指定的画布层上,每次清除前面的图形,显示指定图片,比较方便一些动画制作。 样例:p.speed(10).picL(1,"car.png"); for (int i=0;i<20; i++) p.fd(50).ani(-1,1).rt(18); |
|
音 命 令 |
名称:调入声音文件 格式:pen.soundL(id, fname); pen.soundL( idBeign,idEnd,fnames ); pen.soundL( idBeign,idEnd,fname,sBegin );
|
功能:和把图片文件调入命令picL相似,要播放声音也需要先吧声音文件调入并设置对应为编号id,供后面播放声音sound等命令使用。 说明: 声音文件格式可以是mp3、wav等多种;也有批量调入多个文件格式,具体参数格式可以查看命令picL的说明;文件位置也受setPath命令影响。 调入声音文件比较“费时间”,通常在程序开头就完成soundL命令。 样例: p.soundL(1,"rub.mp3"); p.soundL(1,2,"rub.mp3,mus.wav"); |
名称:播放声音 格式:pen.sound(id);
|
功能:播放编号为id的声音。 说明:只播放一次。程序结束时所有声音停止。 样例: p.soundL(1,"rub.mp3").sound(1);wait(5); |
|
名称:循环播放声音 格式:pen.soundLoop(id); |
功能:循环播放编号为id的声音。 说明:如果再执行sound( id ),编号id的就会解除循环。 样例: p.soundL(1,"rub.mp3").soundLoop(1);wait(10); |
|
名称:设置音量大小 格式:pen.soundVol(id, v ); |
功能:设置编号为id的声音的音量为v。 说明:v是1到0之间的小数,默认1为最大音量。 样例: p.soundVol(1,0.5); 设置音量为1半。 |
|
名称:暂停播放 格式:pen.soundPause(id); |
功能:如果正在播放id号声音,这个命令会暂停编号为id的声音播放。 说明:后面如果再播放id号声音,会接着播放。 样例: p.soundPause(1); |
|
名称:停止声音播放 格式:pen.soundStop( id ); pen.soundStop(); |
功能:如果正在播放id号声音,soundStop( id )命令会停止编号为id的声音播放。 说明:后面如果再播放id号声音,会从头开始重新播放。没有指定id的soundStop()命令,将会停止所有声音播放。 样例: p.soundStop(1); |
|
入 输 出 命 令 |
名称:键盘输入 格式:cin>> x; |
功能:从键盘输入数据到变量x。 说明:是在笔的位置附近输入数据,回车结束输入。不是pen的命令,格式不能“pen.”开头。 样例:int x; cin >> x; |
名称:键盘输入提示 格式:cinTitle( string ); |
功能:改变键盘输入窗口的提示“请输入:”为 string。 说明:自动设置为键盘输入模式。不是pen的命令,格式不能“pen.”开头。 样例:int x; cinTitle("第1个人输入:"); cin >> x; |
|
名称:设置窗口输入模式 格式:cinWin(); |
功能:设置从输入窗口获取数据(数字或字符串)模式,后面的cin>>x将从输入窗口取值赋值给x。 说明:类似从文件读入数据,程序运行前要在输入窗口准备好数据。不是pen的命令,格式不能“pen.”开头。 样例:int a,b; cinWin(); cin >> a >>b; pen.rr(a,b);
|
|
名称:窗口输出 格式:cout << x; |
功能:在下面输出窗口打印出表达式x的值。 说明:换行可以用cout<<endl; 浮点数时可用pen.precision命令设置精度,默认精度是2。不是pen的命令,格式不能“pen.”开头。 样例:cout << "面积=" <<12*5; |
|
盘 检 测 命 令 |
名称:获取按键的码值 格式:getKey() |
功能:这是一个获取键盘输入码的函数,可以取得按键的键码值(具体参见附录2)。是函数型命令。程序执行getKey()时如果有按键,取出这个键的码值,并返回。如果没有按键,返回值为0。 说明:不是pen的命令,格式不能“pen.”开头。几个特殊的键码值:空格---32, 回车---13,左箭头---37,上箭头--38, 右箭头---39, 下箭头---40 样例:一个用上下左右键画图的小程序。 |
名称:暂停,等按键继续 格式:waitKey(); |
功能:当程序执行到这个语句时,程序暂停运行,等待用户按任意键继续执行程序。 说明:不是pen的命令,格式不能“pen.”开头。waitKey()清除以前的按键纪录,并等待按键;键后的值保存到按键纪录里。如果后面使用getKey()、getDigit()等命令,可以取到这个按键值。 |
|
名称:获取按数字键的值 格式:getDigit() |
功能:与getKey()函数不同,程序执行getDigit()时如果有按数字键,取出这个数字值(0到9),并返回。如果没有按数字键,返回值为-1。是函数型命令。 说明:不是pen的命令,格式不能“pen.”开头。返回值是0到9的整数,或-1。 在只检测按键是数字键时,getDigit()函数比getKey()函数方便使用。 |
|
名称:获取正按下键的码值 格式:getDownKey() |
功能:与getKey()函数不同,程序执行getDownKey()时,如果这时正在按键,才取出码值,并返回。否则返回值为0。是函数型命令。 说明:不是pen的命令,格式不能“pen.”开头。getKey()、getDigit()会取键盘纪录(缓冲区)里的键值,而getDownKey()只看“眼前”是否按键,有细微的区别。 |
|
鼠 标 检 测 命 令 |
名称:暂停,等待鼠标按键 格式:waitMouse(); |
功能:当程序执行到这个语句时,程序暂停运行,等待用户按鼠标左键后继续执行程序。 说明:不是pen的命令,格式不能“pen.”开头。一般后面配合使用getMDX()、getMDY)等命令,可以取到鼠标按键时的坐标。 |
名称:获取鼠标坐标值 格式:getMX() getMY() |
功能:getMX()是get mouse X-co的简写,是获取当前鼠标X坐标的函数;getMY()是获取当前鼠标Y坐标的函数。 说明:不是pen的命令,格式不能“pen.”开头。鼠标要在绘图窗口上才可以。 样例:绘鼠标轨迹的小程序。 for (;;) pen.moveTo(getMX(), getMY()).oo(5,1);
|
|
名称:获取按鼠标时的坐标 格式:getMDX() getMDY() |
功能:getMDX()是get mouse down X- coordinate的简写。getMDX()和getMDY()是获取按鼠标时鼠标位置坐标的函数。 说明:不是pen的命令,格式不能“pen.”开头。鼠标要在绘图窗口上才可以。GoC只纪录最后一次按鼠标的位置。 样例:按鼠标画图的小程序。 for (;;) pen.moveTo(getMDX(), getMDY()).oo(5,1); |
|
名称:鼠标是否在某点附近 格式:mouseIn(x,y,r) |
功能:判断鼠标是否在坐标(x,y)半径r的圆形范围内。 说明:不是pen的命令,格式不能“pen.”开头。鼠标要在绘图窗口上才可以。如果在范围内,返回1,否则返回0。 样例:if (mouseIn(0,0,10)==1) … |
|
名称:鼠标是否按在某点附近 格式:mouseDown(x,y,r) mouseDown(); |
功能:判断鼠标是否在坐标(x,y)半径r的正方形范围内有按键动作。没有参数的mouseDown(),就是对整个画图区判断。 说明:不是pen的命令,格式不能“pen.”开头。如果在范围内按鼠标,返回1,否则返回0。 样例:if (mouseDown(0,0,10)==1) … |
|
名称:改变光标形状 格式:cursor( s ); |
功能:判断光标(鼠标)的形状。s参数常见的有:default | crosshair | move | help | wait | text | w-resize |s-resize | n-resize |e-resize | ne-resize |sw-resize | se-resize | nw-resize |pointer|等。 说明:不是pen的命令,格式不能“pen.”开头。”none”取消鼠标的光标;还可以自定义光标形状,例如:返回1,cursor("url(images/goc1.ico),auto");。 样例:cursor("move"); |
|
钮 命 令 |
名称:显示一个按钮 格式: pen.button(id,string,col,size); pen.button(id,string,col,size, dir,x,y); pen.button(id,string,col,size, dir,x,y,bgcol); pen.button(id,string,col,size, dir,x,y,bgcol,edgecol); |
功能:buton命令生成一个编号是id的按钮,按钮上的文字为string字符串,col指定了文字的颜色,size指定了文字的大小,dir是方向,坐标(x,y)是文字的中心位置,bgcol为按钮背景色,edge是边框颜色。 说明:如果是简单格式的button(id,string,col,size);就在pen当前位置显示文字。缺省的bgcol为白色,缺省edgecol为灰色。 样例:pen.button(1,"确认按钮",0,30,20,100,200,5,3); |
名称:鼠标点击按钮 格式:buttonMP(id); buttonMI(id); |
功能:buttonMP是buton mouse press的简写,buttonMP(id)是判断鼠标是否在点击编号为id的按钮,是返回1,否则返回0。 buttonMI是button mouse in的简写,buttonMI(id)是判断鼠标位置是否在编号为id的按钮内,在按钮内返回1,否则返回0。 说明:不是pen的命令,格式不能“pen.”开头。通常使用buttonMP函数配合button来简单实现判断点击按钮功能。 样例:p.c(1).rt(90); p.button(1,"点这里画黑色点",02,40,0,0,150,5); p.button(2,"移动到这里画绿点",10,40,90,-200,0,4); for (;;){ if ( buttonMP(1)) p.oo(10,0); if ( buttonMI(2)) p.oo(10,3); p.fd(1).rt(1); } |
|
版 增 加 命 令 |
名称:设置透明度 格式:pen.alp( d ); |
功能:设置笔画图的透明度,d范围0~1。 说明:alp(0)设置完全透明;alp(1)设置不透明;对显示图片命令pic也有影响。 样例:for (int i=1; i<=5; i++) p.ee(90,30,i).alp(0.5).rt(75); |
名称:画圆弧 格式:pen.a( r, A, mod, c ); pen.aa( r, A, mod, c ); |
功能:画一段圆弧。r表示半径,A表示弧度,mod可以取0或1两种模式,分别表示从笔的位置画一段弧或以笔为圆心画一段弧;c表示颜色。 说明:颜色c缺省时,以笔的颜色画;aa画一段实心扇形;画弧和画圆一样,笔的位置不变。如果picU(1);方向会随笔头。 样例1:p.a(100,90,0); 样例2:p.a(100,90,1,3); 样例3:p.aa(100,180,0,3).a(100,90,0,0); |
|
名称:换笔头 格式:pen.CH ( id ); |
功能:把笔头显示换成编号id(由picL设置)的图形。(c是change、h是head意思) 说明:这个命令可以方便快速制作简单的动画;笔头显示在所有画布的上方;可以使用drawH()把图片固定显示到画布上。 样例:p.picL(1,"pen.png").CH (1); for (int i=0; i<10; i++) p.fd(100).rt(36); |
|
名称:画笔头 格式:pen.drawH( ); |
功能:复制当前笔头形状,在画布当前图层上画一个固定的笔头图形。 说明:在需要留下笔头图形的地方使用drawH。 样例:for (int i=0; i<5; i++) p.drawH().fd(100).rt(72); |
|
名称:设置多边形坐标 格式:pen.polXY(x, y); pen.polXY( ); |
功能:设置多边形的顶点坐标,为pol命令画多边形(polygon)做准备。(x,y)为坐标参数。 说明:如果缺省x,y就是清除以前polXY命令设置的坐标点。 样例:p.polXY(0,80).polXY(80,80).polXY(80,0); p.pol(0,1); |
|
名称:画多边形 格式:pen.pol( mod ); pen.pol( mod, col ); |
功能:按照polXY命令设置的多边形(polygon)顶点坐标,画多边形。mod=0时,只是画边;mod=1时,多边形会填充颜色。col是画图的颜色编号。 说明:如果缺省颜色号col就以当前笔的颜色画图。 样例:p.polXY(0,80).polXY(80,80).polXY(80,0).pol(1,1); |
|
名称:设置线端形状 格式:pen.cap( mod ); |
功能:画线是,点的形状有圆形和方形,线端的转折点也有3种不同模式,对应mod取0,1,2。 说明:默认mod=0。 样例:p.size(20).speed(10); p.cap(0).c(0).fd(80).o(30,10).rt(90).fd(80); p.cap(1).c(1).fd(80).o(30,10).rt(90).fd(80); p.cap(2).c(2).fd(80).o(30,10).rt(90).fd(80); |
|
名称:保存/恢复笔的状态 格式:pen.save( ); pen.load( ); |
功能:save命令把当前笔的颜色、大小、速度、角度、坐标等状态都保存起来;load命令是把save保存的状态恢复。 说明:可以多次save和load,类似“括号”匹配,每个load只恢复到最近的一次save状态。 样例:for (int i=0; i<6; i++){ p.fd(150).rt(60); if (i>0 && i<4) p.save().c(10).size(1).lineTo(0,0).load(); } |
|
名称:播放视频 格式:pen.videoL( vId, fname); videoPlay(vId,left,top,width, height,loop,volume); pen.videoStop( vId ); pen.videoPause( vid ); pen.videoGo( vid ); |
功能:videoL把文件名fname的视频文件调入,编号vId。videoPlay在左上坐标为(left,top)宽为width高为height的窗口内播放vId号视频。loop=0表示只播放一次,lopp>0表示循环播放;volume为0到1的小数,指定音量。 说明: 支持3种格式视频。MP4 = MPEG 4文件;WebM = WebM 文件;Ogg = Ogg 文件。缺省也支持mp3等声音文件播放。有停止、暂停、继续命令。 样例: p.videoL(1,"lesson1/mov.mp4"); p.videoPlay(1,-100,50,300,200,0,0.6); wait(10); |
|
名称:获取运行时间 格式:getTime() |
功能:获取程序运行到这里一共花了多少秒。 说明:不是pen的命令,格式不能“pen.”开头。返回值类型是浮点数。 样例: pen.speed(3).fd(100).text( getTime() ); |
|
名称:获取日期时间 格式:getYear() getMonth() getDay() getHour() getMinute() getSecond() |
功能:getYear, getMonth, getDate, getHour, getMinute, getSecond分别获取当前计算机时间的年、月、日、小时、分钟、秒。 说明:不是pen的命令,格式不能“pen.”开头。返回值类型是整数。 样例: pen.text( getYear() ); |
|
名称:倒计时 格式: pen.ctime( s ); pen.ctime(title,s,c,size,x,y); |
功能:显示一个倒计时器,s是秒。还可以指定提示字符串、底色、大小、中心位置 说明:用鼠标点击这个倒计时器,中断倒计时,程序继续执行。 样例: pen.ctime( "时间还有:",15,6,50,0,0 );
|
|
数学 函数
|
名称:随机函数 格式:rand() rand(a,b) |
功能:随机函数就像从很0到65535这些整数中,随机取一个。rand(a,b)是在a到b之间随机取一个整数。 说明:不是pen的命令,格式不能“pen.”开头。rand(a,b)不是C++函数,相当于a+rand()%(b-a+1)。 |
名称:三角函数 格式:sin( a ) cos( a ) |
功能:就是数学里的正弦函数、余弦函数。参数a的单位是度。 |
|
名称:幂函数 格式:pow(a,b) |
功能:就是数学里计算a的b次方的函数。参数a、b是浮点数。 样例: pen.text(pow(2,0.5)).hide(); |
|
名称:字符串长度 格式:strlen( s )
|
功能:求字符串s的长度。 样例:pen.text(strlen("abcde"),1).hide(); |
附录1:
字体编号 |
字体名称 |
0 |
Arial |
1 |
Times New Roman |
2 |
微软雅黑 |
3 |
仿宋 |
4 |
宋体 |
5 |
黑体 |
6 |
楷体 |
7 |
细明体 |
8 |
幼圆 |
9 |
隶书 |
10 |
华文细黑 |
11 |
华文楷体 |
12 |
华文宋体 |
13 |
华文中宋 |
14 |
华文仿宋 |
15 |
方正舒体 |
16 |
方正姚体 |
17 |
华文彩云 |
18 |
华文琥珀 |
19 |
华文隶书 |
20 |
华文行楷 |
21 |
华文新魏 |
键盘的ASCII码表
字母和数字键的键码值 |
|||||||
按键 |
键码 |
按键 |
键码 |
按键 |
键码 |
按键 |
键码 |
A |
65 |
J |
74 |
S |
83 |
1 |
49 |
B |
66 |
K |
75 |
T |
84 |
2 |
50 |
C |
67 |
L |
76 |
U |
85 |
3 |
51 |
D |
68 |
M |
77 |
V |
86 |
4 |
52 |
E |
69 |
N |
78 |
W |
87 |
5 |
53 |
F |
70 |
O |
79 |
X |
88 |
6 |
54 |
G |
71 |
P |
80 |
Y |
89 |
7 |
55 |
H |
72 |
Q |
81 |
Z |
90 |
8 |
56 |
I |
73 |
R |
82 |
0 |
48 |
9 |
57 |
控制键键码值 |
|||||||
按键 |
键码 |
按键 |
键码 |
按键 |
键码 |
|
|
BackSpace |
8 |
Esc |
27 |
Right Arrow |
39 |
|
|
Tab |
9 |
Spacebar |
32 |
Down Arrow |
40 |
|
|
Clear |
12 |
Page Up |
33 |
Insert |
45 |
|
|
Enter |
13 |
Page Down |
34 |
Delete |
46 |
|
|
Shift |
16 |
End |
35 |
Num Lock |
144 |
|
|
Control |
17 |
Home |
36 |
;: |
186 |
|
|
Alt |
18 |
Left Arrow |
37 |
=+ |
187 |
|
|
Cape Lock |
20 |
Up Arrow |
38 |
,< |
188 |
|
附录3
Web版GoC中命令与以前的2016年PC版本有一些新的变化:
1)取消了pen.up()对增强命令的影响,o,oo,e,ee,r,rr等命令总是会画出图形。
2)画椭圆命令pen.e(),pen.ee()的参数与画圆命令的参数一致,改为半径。
3)move、line命令改为比较正规的:moveTo、lineTo。
4)cin的方式有2种模式,可以改成类似文件的cinWin的窗口模式读入。
5)增加了一些键盘检测函数,为编写交互式的游戏提供了方便。
6)增加了多种显示图片的命令。