ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:249.50KB ,
资源ID:9867235      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9867235.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(Java实训报告greenfoot游戏制作.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Java实训报告greenfoot游戏制作.doc

1、 Java实训报告greenfoot游戏制作 - 20 - 2020年4月19日 文档仅供参考 《Java实训报告》 ——Green foot游戏程序设计 班 级:微应1211 成 员:胡文亚 吴 桐 安徽水利水电职业技术学院 第一部分 1.1 设计目的 2 1.2 设计要求 2 1.3 实现功能 2 1.4 界面设计 3 第二部分 2.1开发平台 3 2.2环境搭配 4 第三部分 3.1 Space代码 4

2、 3.2 Obstacle代码 6 3.3 SmoothMover代码 7 3.4 Body代码 11 第四部分 心得体会 第一部分 1.1设计目的 Green foot是针对那些想让自己熟悉如何使用JAVA的人而设计的,是一个功能完整的开发环境,能够使用Java方便地编写游戏和进行模拟。我们设计的是一款简单易操作的游戏,我们希望能经过自己的所学知识把它分析开来,真正的了解它的本质。虽然我们的编程能力不是很强,可是我们组有信心,经过本学期对JAVA语言程序设计的学习,经过老师对greenfoot软件的介绍及实际举例、耐心的讲解,我们能够试着用greenfoot来

3、制作简单的小游戏了,虽然不娴熟还有待提高,可是一些技术含量较低的小游戏还是很容易让我们掌握的。 此次游戏程序设计的目的,主要是经过greenfoot来制作游戏来更好的掌握java语言。经过greenfoot这个平台,熟习greenfoot在制作游戏方面所需要的技巧,将自己的游戏尽可能多的运用所学到的技术,而且将在平时java课程上面学到的知识付诸于实践,并从实践和实际的项目中提高自己的编程能力。找出自己的不足之处进行弥补。 1.2设计要求: 这次实训任务的课程设计的要求是选择greenfoot软件作为我们游戏编程的平台。因为我们平时学习的就是java语言,而greenfoot便是一个

4、以Java语言为基础的游戏开发平台,因此在编程的过程中能够提高效率,也让我对java语言和greenfoot之间衔接的关系有了更深了解,同样,也让我更加熟习了这个游戏开发平台的环境。 1.3 实现功能 此款《疯狂之音》游戏的设计思路就是解放双手的弹奏,经过向空白处随意放入不同颜色、不同大小的球,当球下落和上升时触碰到黄色板块会触发出不同的音调,当多个声音同时出现时能够准确的分辨出来。就成为了一首自己创作的优美神曲,并给大家带来娱乐,为听者增加不少乐趣。 1.4 界面设计 第二部分 2.1开发平台 greenfoot是一个以Java语言为基础的游戏开发平台,编程的

5、过程中能够提高效率,而且对象的可视化和对象的交互性比较清晰。 2.2 环境配置 1、计算机的环境变量需要设置,计算机需要安装JDK版本为1.6。由于greenfoot需要绑定JDK。 2、greenfoot的安装,需要到官网上下载正确的greenfoot版本,安装后需要测试时候能够使用,是否与JDK绑定。 第三部分 3.1 Space代码 import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; public class

6、 Space extends World{ private String[] soundFiles = { "2c", "2d", "2e", "2f", "2g", "2a", "2b", "3c", "3d", "3e", "3f", "3g", "3a", "3b" };//十四个声音档 /** *对于类空间对象的构造函数。 */ public Space() { super(960, 620, 1); createObstacles(); randomBodies(5

7、);//初始球的数量 } /** *创立一个排在我们的世界中的障碍。 */ public void createObstacles(){ int i = 0; while (i < soundFiles.length) { //声音档的长 addObject (new Obstacle (soundFiles[i] + ".wav"), 80 + i*60, 310); //声音资源文件 i++; } } /** *创立

8、一个给定的宇宙中的物体的数量。每一个身体都有一个随机的初始状态(size 大小,mass集中, direction方向, speed速度, color颜色, location位置). //世界里创立了一个给定的数量的球,每个球都有一个随机的初始状态 */ public void randomBodies(int number){ while (number > 0) { int size = 20 + Greenfoot.getRandomNumber(30); //从一组数据中随机取出一定数量的随机数 double mas

9、s = size * 7.0; int direction= Greenfoot.getRandomNumber(360);//方向 double speed = Greenfoot.getRandomNumber(150) / 100.0; //速度 int x = Greenfoot.getRandomNumber(getWidth()); //取宽度 int y = Greenfoot.getRandomNumber(getHeight()); //取长度 int r = Greenfoo

10、t.getRandomNumber(255); int g = Greenfoot.getRandomNumber(255); int b = Greenfoot.getRandomNumber(255); addObject (new Body (size, mass, new Vector(direction, speed), new Color(r, g, b)), x, y); number--; } } } 3.2 Obs

11、tacle代码 import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) public class Obstacle extends Actor{ private String sound; private boolean touched = false; /** *创立一个具有相关的声音文件的一个障碍。 */ public Obstacle(String soundFile){ sound = soundF

12、ile;//声音档 } /** *每一次循环,检查是否被击中。如果我们发挥我们的声音。 */ public void act() { Actor body = getOneIntersectingObject(Body.class); if (touched && body == null) //不用触碰 { touched = false; setImage ("block.png"); }

13、 else if (!touched && body != null){ //暂时的触碰 touched = true; setImage ("block-light.png"); Greenfoot.playSound(sound); //播放声音 } } public void playSound(){ Greenfoot.playSound(sound); } } 3.3 SmoothMover代码 import greenfoot.

14、// (World,Actor,GreenfootImage,and Greenfoot) /** *一个变化的一个Actor,保持精确的位置(使用双打的坐标而不是整数)。它还保持当*前的运动矢量的运动形式。 */ public abstract class SmoothMover extends Actor{ private Vector movement; private double exactX; private double exactY; public SmoothMover(){ this(new

15、 Vector()); } /** * 创造新事物以给定的速度初始化的 */ public SmoothMover(Vector movement){ this.movement = movement; } /** * 在当前的运动方向移动 */ public void move(){ exactX = exactX + movement.getX(); exactY = exactY + movement.getY();

16、 super.setLocation((int) exactX, (int) exactY); } /** * 设置位置使用精确坐标(double) */ public void setLocation(double x, double y){ exactX = x; exactY = y; super.setLocation((int) x, (int) y); } /** * 设置的位置。重新定义标准的Greenfoot方法来确定

17、确切的坐标更新同步 */ public void setLocation(int x, int y){ exactX = x; exactY = y; super.setLocation(x, y); } /** * 返回确切的x */ public double getExactX(){ return exactX; } /** * Return the exact y co-ordinate (as a doubl

18、e).返回确切的y */ public double getExactY(){ return exactY; } /** *修改当前的运动经过添加一个新的向量到现有的运动 */ public void addForce(Vector force){ movement.add(force); } /** *加速这种原动力的速度给定的因素。(因子小于1 * 减速)。方向保持不变。 */ public void accel

19、erate(double factor){ movement.scale(factor); if (movement.getLength() < 0.15) { movement.setNeutral(); } } /** * 返回这个球的速度. */ public double getSpeed(){ return movement.getLength(); } /** * 返回该对象的当前运动 */

20、 public Vector getMovement(){ return movement; } } 3.3 Body代码 import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; import java.util.List; /** *“Body”是任何类型的对象在空间,有一个大的,或其它任何漂浮在周围空间。 */ public class Body extends Smooth

21、Mover{ private static final double GRAVITY = 7.8; private static final Color defaultColor = new Color(255, 216, 0); // 黄色的球 private double mass; /** *.构造一个球是默认大小,方向,运动,和颜色 */ public Body(){ this (20, 300, new Vector(0, 0.0), defaultColor); } /**

22、 * 构造一个球是默认大小,方向,运动,和颜色 */ public Body(int size, double mass, Vector movement, Color color){ this.mass = mass; addForce(movement); GreenfootImage image = new GreenfootImage (size, size); image.setColor (color); image.fillOval (0, 0, size-1, s

23、ize-1); setImage (image); } /** *行为。那就是将引力部份从所有其它体的周围,然后移动。 */ public void act(){ applyForces(); move(); bounceAtEdge(); } /** * 检查是否到达背景的边缘,如果是就反弹. */ private void bounceAtEdge(){ if (getX() == 0 || getX() == ge

24、tWorld().getWidth()-1) { setLocation((double)getX(), (double)getY()); getMovement().revertHorizontal(); accelerate(0.9); } else if (getY() == 0 || getY() == getWorld().getHeight()-1) { setLocation((double)getX(), (double)getY());

25、 getMovement().revertVertical(); accelerate(0.9); } } /** *应用重力的力量从这个宇宙中其它天体 */ private void applyForces(){ List bodies = (List) getWorld().getObjects(Body.class); for (Body body : bodies){ if (body != thi

26、s){ applyGravity (body); } } // 确保不会太快:如果当前速度非常快,减速. if (getSpeed() > 7){ accelerate (0.9); // 加速因子< 1实际上减慢 } } /** *适用于一个给定的球的重力 */ private void applyGravity(Body other){ double dx = oth

27、er.getExactX() - this.getExactX(); double dy = other.getExactY() - this.getExactY(); Vector force = new Vector (dx, dy); double distance = Math.sqrt (dx*dx + dy*dy); double strength = GRAVITY * this.mass * other.mass / (distance * distance); double accele

28、ration = strength / this.mass; force.setLength (acceleration); addForce (force); } /** * //适用于一个给定的身体的重力这一套 */ public double getMass(){ return mass; } } 第四部分 心得体会 经过一个星期对greenfoot的学习,我们基本掌握了greenfoot的比较基础的编程方法。因为greenfoot是以java语言为基础的游

29、戏制作平台,它的语言标准和java的没有什么本质的不同,因此经过以往对java的学习和认识,真正的操作起来,并不是很难着手。只要上课认真听老师细心的讲解,我们觉得greenfoot这个软件还是很容易上手的,甚至在某些方面还比eclipse还容易一点。至少在greenfoot里面,有的类或者对象能够直接拖动,不用在生成和调用了。 看似简单容易操作的游戏背后,确实异常复杂的算法。在网上查看了类似的逻辑算法和代码,也是各有不同,让我们更认识到了自身学习的不足之处,也更进一步产生了对游戏开发的兴趣。受益匪浅,感悟颇多。游戏开发是一个创新的过程,不是一个人就能够完成的,它更需要的是团队合作,由于我们的编程能力有待进一步加强,因此就做了一个很普通的项目。我们相信只要多用心、多努力一定能做出更好的游戏。这次很感谢老师给我们提供这样一个平台,我们会加倍努力的!

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服