利⽤Greenfoot制作简单的⼩游戏——记忆翻牌游戏(⼀)
今天来学习怎样⽤Greenfoot制作⼀款记忆翻盘游戏。
游戏规则如下:⾸先在牌桌上摆放⼀系列的扑克牌,游戏开始时牌的背⾯朝上,玩家⽆法看到牌的点数(保证扑克牌的点数成对)。玩家任意翻开两张扑克牌,若起点数相同则从桌⾯上移除这两张扑克牌,若点数不同,则将其翻转,使牌的背⾯重新朝上,直⾄桌⾯上的所有牌都被移除,游戏结束。
先来看看最终效果
⽬录
⼀、 Greenfoot概述
⼆、Greenfoot安装
三、基本操作⽅法
四、记忆翻牌游戏
⼀、Greenfoot概述
Greenfoot是由英国肯特⼤学的Michael和Martin设计的⼀款Java 游戏设计⼯具,是⼀个功能完整的开发环境,可以使⽤Java⽅便地编写游戏和进⾏模拟。
下图为Greenfoot的主界⾯
⼆、Greenfoot安装
选择适合的版本下载即可。
下载完成后,双击安装
单击next
Install just for you,单击next
选择安装路径,next
点击Install,等待安装即可
单击Finish,完成安装
想改为中⽂界⾯的朋友,双击打开安装好的Greenfoot 选择Tools——Preferences
选择Interface,将Language改为中⽂
重启,再次打开Greenfoot,已经是中⽂界⾯了
三、基本操作⽅法
1. 创建游戏场景
单击剧本,选择新建⼀个Java剧本
在弹出来的对话框中设置名字和存储位置,
点击确定,出现⼀个空的游戏场景界⾯。界⾯右侧有两个类,场景类World和⾓⾊类Actor。
需要注意的是,这两个类都是抽象类,不能直接被使⽤,需要创建它们的⼦类才⾏。这⾥,有⼀个系统⾃动⽣成的⼦类MyWorld。
下⾯介绍如何新创建⼀个⼦类。
右键单击World,选择新建⼦类
在弹出的新建类的对话框中,输⼊新的类名,
点击确定,⼀个新的⼦类就创建好了。
双击新建好的⼦类,可看到系统⾃动⽣成的代码框架
其中super(60,400,1);表⽰的是创建⼀个尺⼨为600像素×400像素⼤⼩的游戏场景。
右键单击新建的⼦类,单击设置图像。
在打开的对话框中选择⼀个图⽚,确定
右键点击myGame,new myGame(),此时游戏的背景图则被替换为我们刚才选择的图⽚
也可以从本地上传图⽚作为背景图,
同样,右键单击myGame⼦类,选择设置图像,单击左下⾓的设置,选择从库中导⼊,选择本地图⽚,确定
再次右键单击myGame,new myGame(),则背景换为我们⾃⼰从本地导⼊的图⽚
2. 添加游戏⾓⾊
在添加游戏⾓⾊之前,需要在游戏中创建⼀个⾓⾊,Greenfoot提供了⼀个⾓⾊类Actor。
右键单击Actor类,选择新建⼦类
输⼊新的类名
右键点击新建好的⼦类,选择设置图象,基本步骤和选择背景图⼀样
按住shift键选择⾓⾊,移动⿏标,可重复向该场景中添加多个对象
3. 运⾏游戏
点击下⽅的运⾏,即可运⾏程序
四、记忆翻牌游戏
1. 游戏整体设计
游戏场景和⾓⾊设计
作为记忆翻牌游戏,⾸先需要若⼲扑克牌参与游戏,⼀个放置扑克牌的牌桌,所以⾄少需要两个类,⼀个为扑克牌类(Card),⼀个为牌桌类(Table)。
游戏规则设计
若有相同点数的牌被翻开,则两张牌被移除,若翻开的两张牌点数不同,则重新将其翻⾯,当牌桌上所有的牌被移除后,游戏结束。
2. 游戏程序实现
初始化游戏场景,创建Card类和Table类,加⼊扑克牌背⾯图和牌桌图⽚
为Card类定义相关的字段和⽅法
private int value =-1;//初始点数为-1,表⽰还没有⽣成确定的扑克牌。⼀旦⽣成了⼀张牌,其点数就不为-1
private boolean isFaceUp =false;//isFaceUp=true,则牌正⾯朝上,否则背⾯朝上
private GreenfootImage faceUpImage = null;//faceUpImage表⽰牌的正⾯图案⽂件
抽象类的使用private GreenfootImage faceDownImage = null;//faceDownImage表⽰牌的背⾯⾯图案⽂件
为Card类编写构造⽅法
public Card(int cardValue){//cardValue是构造⼀张Card对象时传⼊的牌的点数
value = cardValue;
isFaceUp =false;//所有被构造的牌都是背⾯朝上的
String fileName ="hearts"+ value +".png";//根据牌点数匹配的正⾯图案⽂件名
//⽣成牌的正⾯图像对象
faceUpImage =new LowerCase());
faceDownImage =new GreenfootImage("blueflip.png");//⽣成牌的背⾯图案对象
setImage(faceDownImage);//让牌背⾯朝上放在牌桌上
}
因为设置的图⽚的名字和扑克牌的点数对应,可以根据扑克牌的点数来获取完整的图⽚⽂件名,根据此⽂件名来获取扑克牌正⾯的图像String fileName ="hearts"+ value +".png";//根据牌点数匹配的正⾯图案⽂件名
faceUpImage =new LowerCase());//⽣成牌的正⾯图像对象
设置图⽚背⾯的图像,将其设置为扑克牌的默认图像
faceDownImage =new GreenfootImage("blueflip.png");//⽣成牌的背⾯图案对象
setImage(faceDownImage);//让牌背⾯朝上放在牌桌上
编写其他需要⽤到的⽅法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论