网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月21日漏签0天
greenfoot吧 关注:219贴子:569
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 9回复贴,共1页
<<返回greenfoot吧
>0< 加载中...

基础官方教程2:移动和键控

  • 只看楼主
  • 收藏

  • 回复
  • randvac
  • 高级粉丝
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Tutorial 2: Movement and Key Control
教程2:移动和键控
本篇将讲解如何实现移动以及如何通过键盘控制对象。
打开GF(Greenfoot),在类视图的Actor上右击,选择“new subclass”建立一个新类,设置好名字和图像,我这里设置的名字是“Crab”,图像是一只螃蟹,确定后,将Crab类放置到舞台上,此时点击Run螃蟹不会有任何反应,看来这是只懒螃蟹,我们检查下它会干些什么。
打开Crab类的代码编辑器查看其代码,当前act()下面的大括号内没有任何代码,这说明这只螃蟹目前什么都不会!
在这里添加代码就能够设置该对象的行为模式,这里我们要让它学会移动,在大括号内添加代码,完成后如下所示:
//====================
public void act()
{
move(4);
}
//====================
注意move是小写的,句末还有分号。
完成后进行compile编译,编译完成后,舞台会被重新实例化(调用世界的构造函数),你需要重新将螃蟹Crab类放置到舞台上。
点击Run运行,螃蟹开始向右侧滑动,最后卡在了边界上。你可以暂停程序,然后将螃蟹从右边拖到左边后再点击Run,它又开始动了。
多放置几只螃蟹到舞台上,随意放置,然后点击Run,这些螃蟹会集体向右移动,直到卡在边界上。
实际上螃蟹碰触到边界后,它们并没有停止“移动”这个行为,只是GF不允许它们移动到舞台区域以外,想想如果它们跑到外面去了,你怎么还能把它们拖回来。
move的作用请参照greenfoot api,就在GF的帮助里面,名字叫Greenfoot class documentation,后面将用到的turn也能查到,isKeyDown则要查JDK API了。
你可以通过设置代码中move后面括号内的数字来改变螃蟹的移动速度,增大该数字可以加快速度,减小则减慢速度。
试试设置一个负数。(螃蟹会向左移动)
我们继续给螃蟹设置新的行为模式,让他不要总是在直线上运动。打开Crab类的代码编辑器,在move命令后面另起一行继续添加代码:turn(3),改变后的act()如下所示:
//====================
public void act()
{
move(4);
turn(3);
}
//====================
编译并运行程序(别忘了重新设置舞台),螃蟹开始做圆周运动了!
摸索下如何设置move和turn的参数来控制螃蟹圆周运动的半径变小或变大。
turn(N)改变对象的方向,使得对象绕自身中心开始旋转,N表示旋转速度,大于零时顺时针转,小于0时逆时针转。
move(N)使对象沿当前方向移动(当前方向可以被turn(N)改变)
两者配合起来,就可以产生圆周运动。
前面说过,螃蟹碰触到边界时实际上并没有停止“移动”这个行为,只是他不能移动到舞台外,而现在,螃蟹碰触到边界后并不会像之前那样卡住,它会继续旋转并移动,然后就会离开边界。
下面我们来添加一些互动:用键盘上的左方向键和右方向键来控制螃蟹左转和右转。
新的act方法代码如下:
//====================
public void act()
{
move(4);
if(Greenfoot.isKeyDown("left"))
{
turn(-3);
}
if(Greenfoot.isKeyDown("right"))
{
turn(3);
}
}
//====================
编译,运行(别忘了重新设置舞台,这是第三次提醒了),现在你可以通过左右键来控制螃蟹转弯了。
检查按键的方法Greenfoot.isKeyDown(),括号内的参数就是待检测的按键的名称,比如"left"代表键盘上的左方向键,"right"代表右方向键。
如果你向用“a”和“d”键来控制左转和右转,那么相应的将代码中的left改成a,right改成b,引号保留不变(注意是英文引号)。
改变turn()方法括号内的数字,可以控制转向速度。
如果你在舞台中放入了多只螃蟹,运行时会发现,你的操作可以控制全部螃蟹同步运动,因为这些螃蟹都是基于同一个类:crab,它们执行着相同的代码。
试试看如果我们同时按下←键和→键会发生什么?
==========================================
完,参照了官方教程


  • randvac
  • 高级粉丝
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
终于发出了......


2025-05-21 16:55:34
广告
  • 尐_日月
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶起


  • 淡定淡定就好88
  • 中级粉丝
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我想请问一些关于greenfoot的问题 能帮帮我吗


  • 风骚rap之歌
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢lz


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回greenfoot吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示