JAVA课程设计打砖块
打砖块游戏设计报告(共五则)

打砖块游戏设计报告(共五则)第一篇:打砖块游戏设计报告*************面向对象方法及程序设计课程设计报告打砖块游戏的设计与开发分组:第九组组员姓名:******************** 班级:*********** 指导教师: ****完成日期:2014年 06月21日面向对象方法及程序设计课程设计题目:打砖块游戏的开发与设计为了加强计算机科学与技术专业学生的学科实践能力,巩固和强化所学专业知识,提高学生的学习兴趣,本课程设计实践周特别强调理论与实践相结合,利用所学专业知识,进行实践项目的开发,提高学生的实践编程能力和技术文档的写作能力,提高学生的学习兴趣,为后期的学习奠定一定的实践基础。
目录第一章课程设计的目的与要求.............................................................................................3 1.1课程设计目的................................................................................................................3 1.2 课程设计的实验环境...................................................................................................3 1.3 课程设计的预备知识 (3)1.4课程设计要求 (3)1.4.1人员分配,形成课程设计小组............................................................................3 1.4.2 分析课程设计的题目要求.................................................................................3 1.4.3写出详细的设计说明............................................................................................3 第二章课程设计内容.............................................................................................................3 2.1设计思路 (3)2.2功能介绍 (4)2.3相关素材 (4)2.4程序整体设计说明........................................................................................................4 2.5程序部分源代码及注释................................................................................................4 2.6程序结构流程图 (6)2.7程序代码 (6)2.8运行程序 (17)第三章课程设计总结 (17)/ 19 面向对象方法及程序设计课程设计第一章课程设计的目的与要求1.1课程设计目的本次课程设计是计算机科学与技术专业最重要的实践环节之一。
打砖块代码课程设计

打砖块代码课程设计一、课程目标知识目标:1. 让学生掌握编程语言的基本语法和结构,理解打砖块游戏的逻辑和规则。
2. 学习运用循环、条件语句和函数等编程概念,实现打砖块游戏的基本功能。
3. 了解游戏开发中的坐标系和碰撞检测原理。
技能目标:1. 培养学生独立编写代码、调试程序和解决问题的能力。
2. 提高学生在团队协作中沟通、分享和共同解决问题的能力。
3. 培养学生的创新思维和审美意识,能够设计美观、有趣的游戏界面。
情感态度价值观目标:1. 激发学生对编程和计算机科学的兴趣,树立学习自信心。
2. 培养学生面对困难和挑战时,保持积极、主动、坚持的态度。
3. 培养学生的团队精神和责任感,学会尊重和欣赏他人的成果。
课程性质:本课程为实践性强的编程课程,结合具体案例,让学生在动手实践中掌握编程知识和技能。
学生特点:学生处于好奇心强、求知欲旺盛的年级,喜欢探索新事物,有一定的逻辑思维能力。
教学要求:注重理论与实践相结合,关注学生个体差异,提供个性化指导,鼓励学生发挥创意,培养解决问题和团队协作能力。
通过本课程的学习,使学生达到预定的学习成果。
二、教学内容1. 编程语言基础:回顾变量、数据类型、运算符等基本概念,确保学生能够熟练运用。
2. 控制结构:讲解循环结构(for、while)、条件语句(if-else)的使用,为游戏逻辑提供支持。
3. 函数与模块:介绍函数的定义、调用和返回值,使学生能够模块化编程,提高代码可读性。
4. 游戏设计原理:学习坐标系、运动和碰撞检测等游戏开发基本原理。
5. 打砖块游戏实现:根据教材相关章节,分解游戏开发步骤,包括:- 游戏界面的设计和绘制- 砖块和球拍对象的创建与控制- 球的运动和碰撞处理- 游戏逻辑和得分系统6. 调试与优化:教授学生如何调试程序、查找和修复错误,以及优化代码性能。
7. 项目实践:安排课时让学生团队协作,完成打砖块游戏的开发,鼓励创新和美化界面。
教学进度安排:- 第一周:复习编程语言基础,讲解控制结构。
J2ME打砖块游戏

指导老师:庄景晖
游戏主要凼数
• Plank木板类:
木板的左秱和右秱: public void moveLeft(){//木板左秱 if(plank.getX()>0){ plank.move(-2, 0); } } public void moveRight(){//木板右秱 if(plank.getX()<screenWidthplank.getWidth()){ plank.move(2, 0); } } 获取木板当前的位置信息: public Sprite getPlank(){//获得挡板对象 return plank; } public int getX(){//获得位置信息:X位置 return plank.getX(); } public int getY(){//获得位置信息:Y位置 return plank.getY(); }
虫虫大作战
小组成员:林情、林清、陈家稳 指导老师:庄景晖
任务分工
林清(设 计游戏主 框架,调 试程序)。
林情(Word文档 及PPT的编写,游 戏素材的搜集修 改,协助调试程 序);
陈家稳(设 计游戏程序, 优化游戏程 序,游戏素 材的修改);
目录
前言 设计内容 游戏设计思路 系统总体架构 系统流程图
• Apple苹果类: • 苹果在整个游戏类中 应该属于相对灵活的 对象,整个游戏关键 是苹果的碰撞反弹, 苹果经过碰撞--->反 弹--->碰撞来实现打 虫虫的效果。 • 苹果的秱动:根据苹 果的位置和活动范围 迕行碰撞检测和反弹 控制,凼数如下:
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •戏是一种动作电子游戏的名称。玩家操作一 根萤幕上水平的弹板,让一颗丌断弹来弹去的“苹果”在 撞击作为过关目标消去的“虫子”的途中丌会落到屏幕底 下。苹果碰到虫虫、弹板不底下以外的三边会反弹,落到 底下会游戏结束,把虫子全部消去就可以破关。游戏的功 能包含以下内容。 • 基本的游戏操作: • 用户可以通过鼠标戒者键盘来操作弹板,尽量让苹果丌要 掉下底下。开始按钮和暂停按钮可以控制游戏的迕行。
打砖块游戏课程设计报告分解

目录第1章程序设计专题目的与要求 (1)1.1 程序设计目的 (1)1.2 程序设计的实验环境 (1)1.3 程序设计的预备知识 (1)1.4 程序设计要求 (1)第2章程序设计内容 (2)2.1概要设计 (2)2.2程序整体设计说明 (2)2.3程序部分源代码及注释 (8)2.4测试结果 (12)第3章程序设计总结 (13)参考文献 (14)第1章程序设计目的与要求1.1 程序设计目的《C#.Net程序设计》是计算机科学与技术专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是软件技术专业学生学习完《C#.Net程序设计》课程后,进行的一次全面的综合训练,C#.Net 程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2 程序设计的实验环境硬件要求能运行Windows xp操作系统的微机系统。
C#.Net程序设计语言及相应的集成开发环境visual 。
1.3 程序设计的预备知识熟悉c#语言及visual 集成开发环境。
1.4 程序设计要求按程序设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握c#.net2003的基本技能和面向对象的概念和方法;了解windows编程。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
第2章程序设计内容2.1程序设计题目打砖块游戏:作为我们一款熟知的游戏我想大家都不陌生吧,就是通过挡板把小球挡回,不让小球落地,直到打光所有砖块为止,游戏过关进入更难得模式小球速度更快,砖块组成的图案发生改变,是一个很有趣味的小游戏。
Java编程经典小游戏设计-打砖块小游戏源码

Java编程经典⼩游戏设计-打砖块⼩游戏源码[程序中使⽤的数据结构和符号说明]HitBrick类GreenBallThread控制⼩球路线xUp,yUp,bouncing定义变量存储16位数值形式x,y⼩球坐标xDx,yDy坐标增量MAX_X,MAX_Y坐标最⼤值renew初始化label标签Rx,Ry横板坐标Brick[]砖块ball⼩球HitBrick()定义⼩球横板及砖块位置坐标keyPressd(keyEent)定义⼩球启动键(按空格键启动)keyReleased(keyEvent)接收键盘事件侦听器接⼝)keyTyped(keyEvent)键⼊空格键时调⽤keyEventpaint(Graphics)对砖块填充颜⾊move定义⼩球的运动轨迹和砖块的消失main主函数BallThread类通过继承Thread类使Ball类线程化,并把⼩球的弹跳动作放进Run()中执⾏Brick类定义砖块坐标位置和砖块按钮Ball类定义⼩球坐标位置[程序设计流程]程序中使⽤的部分⽅法解释开始命令:空格键privateJLabellabel;定义⼀个标签,label=newJLabel("按空格键开始");内容为空格键开始,addKeyListener(this);定义⼀个键盘监听器,if (e.getKeyCode() ==e.VK_SPACE) {if(renew){greenBallThread=new BallThread(this);bouncing = true;greenBallThread.start();label.setVisible(false);}renew=false;重置并开始游戏移动命令:⽅向键左键和右键if(e.getKeyCode()==e.VK_LEFT){Rx=Rx-20;if(bouncing){if(Rx<0){Rx=0;}}else{if(Rx<0){Rx=0;}else{x=x-20;ball.ball_x=x;}}repaint();}同开始命令原理,如果键⼊左键,横版向左移动20个单位(Rx为横板坐标),如果⼩球还在运动,当横板移到最左侧(Rx=0),不能再向左移动,则横板靠在最左侧(Rx=0),if(e.getKeyCode()==e.VK_RIGHT){Rx=Rx+20;if(bouncing){if(Rx+80>300){Rx=220;}}else{if(Rx+80>300){Rx=220;}else{x=x+20;ball.ball_x=x;}}repaint();}}向右移动同向左移动原理,因为定义界⾯横坐标最⼤值为300,横板长度80,故Rx=220时碰最右侧砖块设定:brick[0]=new Brick(0,60,50,20);brick[1]=new Brick(50,60,50,20);brick[2]=new Brick(100,60,50,20);……brick[16]=new Brick(200,160,50,20);brick[17]=new Brick(250,160,50,20);ball=new Ball(150,450,10,10);public void paint(Graphics g){super.paint(g);ball.rect.setLocation(x,y);if(bouncing){for(int i=0;i<=17;i++){if(brick[i].visible==true){switch(i){case 0 :g.setColor(Color.blue);break;case 1 :g.setColor(Color.cyan);break;case 2 :g.setColor(Color.gray);break;……case 17 :g.setColor(Color.yellow);break;g.fill3DRect(brick[i].brick_x,brick[i].brick_y,brick[i].brick_width,brick[i].brick_height,true);}}g.setColor(Color.red);g.fillOval(x, y, 10, 10);g.setColor(Color.blue);g.fillRect(Rx,Ry,80,20);brick[0]=newBrick(0,60,50,20);设置砖块坐标,ball=newBall(150,450,10,10);和⼩球的坐标if(brick[i].visible==true)判断砖块存在,⽤switch语句,逐个对砖块填充颜⾊,最后四⾏代码是分别对⼩球和横板颜⾊坐标的定义⼩球的移动:try{Thread.currentThread().sleep(25);}catch(InterruptedException exception){System.err.println(exception.toString());}定义⼩球的速度,若发⽣错误,则执⾏catch语句,打印错误for(int i=0;i<=17;i++){if(ball.rect.intersects(brick[i].rect)&&brick[i].visible){brick[i].visible=false;yUp=!yUp;/}}当⼩球接触到砖块时,砖块不可见(消失)if(x+5>Rx&&x+5<Rx+80&&y+10>=Ry){yUp=false;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);}判断⼩球坐标和横板坐标,当⼩球落在横板坐标之内,⼩球反弹,⼩球横坐标和纵坐标都以⼀个随机值改变后运动if(xUp==true){x+=xDx;}else{x-=xDx;}if(yUp==true){y+=yDy;}else{y-=yDy;}判断⼩球横坐标如果在增加,⼩球横坐标=⼩球原横坐标+⼩球横坐标增量,否则⼩球横坐标=⼩球原横坐标-⼩球横坐标增量;纵坐标同理if(y<=0){y=0;ball.ball_y=y;yUp=true;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);}else if(y>=MAX_Y-15){yDy=(int)(Math.random()*5+2);//yUp=false;break;}判断⼩球到画⾯顶部(定义顶部的纵坐标为0),⼩球向下反弹,原理同⼩球和横板接触的反弹规则,否则,判断⼩球纵坐标是否⼤于MAX_Y-15(纵坐标最⼤值-15),反弹规则改变为横坐标不变,纵坐标随机改变if(x<=0){ball.ball_x=x;xUp=true;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);}else if(x>=MAX_X-10){x=MAX_X-10;ball.ball_x=x;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);xUp=false;}判断⼩球到画⾯最左侧(定义最左侧横坐标为0),向右侧反弹,反弹规则同⼩球和横板接触的反弹规则,或者⼩球到画⾯最右侧,向左反弹,反弹规则同上,(if(x>=MAX_X-10)判断⼩球是否到右边侧,⼩球的直径为10)int i;for(i=0;i<=17&&brick[i].visible==false;i++){}if(i==18){break;}如果所有砖块都不可见,则重新玩renew=true; //初始化bouncing=false;for(int i=0;i<=17;i++){brick[i].visible=true;}xUp=true;yUp=false;xDx=1;yDy=1;x=150;y=450;Rx=120;Ry=460; //重新开始,初始化,⼩球静⽌,所有砖块可见,⼩球在横坐标⽅向,可随横板移动⽽移动,纵坐标在未开时游戏前不能改变,定义⼩球横坐标和纵坐标增量都为1,⼩球初始位置坐标(150,450)横板初始位置坐标(120,460)[源程序]import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;public class HitBrick extends JFrame implements KeyListener{private BallThread greenBallThread;//控制⼩球的线程private Boolean xUp,yUp,bouncing;private int x,y,xDx,yDy;//⼩球坐标,增量private final int MAX_X=300,MAX_Y=500;private Boolean renew;private JLabel label;private int Rx,Ry;//横板坐标private Brick brick[]=new Brick[18];//砖块private Ball ball;//⼩球public HitBrick(){super("打砖块");Container pane=getContentPane();//设置空⽩⾯板容器label=new JLabel("按空格键开始");//标签label.setHorizontalAlignment(JLabel.CENTER);//⽔平label.setVerticalAlignment(JLabel.BOTTOM);//垂直pane.add(label);//向⾯板⾥添加标签xUp=true;//横坐标可以移动yUp=false;//纵坐标不可以移动xDx=1;yDy=1;x=150;//⼩球坐标y=450;Rx=120;//横板坐标Ry=460;renew=true;bouncing=false;addKeyListener(this);//键盘监听器brick[0]=new Brick(0,60,50,20);//砖块坐标brick[1]=new Brick(50,60,50,20);brick[2]=new Brick(100,60,50,20);brick[3]=new Brick(150,60,50,20);brick[4]=new Brick(200,60,50,20);brick[5]=new Brick(250,60,50,20);brick[6]=new Brick(0,90,50,20);brick[7]=new Brick(50,110,50,20);brick[8]=new Brick(100,130,50,20);brick[9]=new Brick(150,130,50,20);brick[10]=new Brick(200,110,50,20);brick[11]=new Brick(250,90,50,20);brick[12]=new Brick(0,160,50,20);brick[13]=new Brick(50,160,50,20);brick[14]=new Brick(100,160,50,20);brick[15]=new Brick(150,160,50,20);brick[16]=new Brick(200,160,50,20);brick[17]=new Brick(250,160,50,20);ball=new Ball(150,450,10,10);//球的坐标setSize(MAX_X,MAX_Y);//窗⼝⼤⼩setResizable(false);setVisible( true );//可视化}public void keyPressed(KeyEvent e) { if (e.getKeyCode() ==e.VK_SPACE) { if(renew){greenBallThread=new BallThread(this); bouncing = true;greenBallThread.start();label.setVisible(false);}renew=false;}if(e.getKeyCode()==e.VK_LEFT){Rx=Rx-20;if(bouncing){if(Rx<0){Rx=0;}} else{if(Rx<0){Rx=0;} else{x=x-20;ball.ball_x=x;}}repaint();}if(e.getKeyCode()==e.VK_RIGHT){Rx=Rx+20;if(bouncing){if(Rx+80>300){Rx=220;}if(Rx+80>300){Rx=220;} else{x=x+20;ball.ball_x=x;}}repaint();}}public void keyReleased (KeyEvent e) {}public void keyTyped (KeyEvent e){}public void paint(Graphics g){super.paint(g);ball.rect.setLocation(x,y);if(bouncing){for (int i=0;i<=17;i++){if(brick[i].visible==true){switch(i){case 0 :g.setColor(Color.blue);break;case 1 :g.setColor(Color.cyan);break;case 2 :g.setColor(Color.gray);break;case 3 :g.setColor(Color.green);break;case 4 :g.setColor(Color.magenta);break;case 5 :g.setColor(Color.yellow);break;case 6 :g.setColor(Color.white);break;case 7 :g.setColor(Color.black);break;case 8 :g.setColor(Color.orange);break;case 9 :g.setColor(Color.pink);break;case 10 :g.setColor(Color.darkGray);break;case 11 :g.setColor(Color.red);break;case 12 :g.setColor(Color.blue);break;case 13 :g.setColor(Color.cyan);break;case 14 :g.setColor(Color.gray);break;case 15 :g.setColor(Color.green);break;case 16 :g.setColor(Color.magenta);break;case 17 :g.setColor(Color.yellow);break;}g.fill3DRect(brick[i].brick_x,brick[i].brick_y,brick[i].brick_width,brick[i].brick_height,true); }}g.setColor(Color.red);g.fillOval(x, y, 10, 10);g.setColor(Color.blue);g.fillRect(Rx,Ry,80,20);} else{for (int i=0;i<=17;i++){switch(i){case 0 :g.setColor(Color.blue);break;case 1 :g.setColor(Color.cyan);break;case 2 :g.setColor(Color.gray);break;case 3 :g.setColor(Color.green);case 4 :g.setColor(Color.magenta);break;case 5 :g.setColor(Color.yellow);break;case 6 :g.setColor(Color.white);break;case 7 :g.setColor(Color.black);break;case 8 :g.setColor(Color.orange);break;case 9 :g.setColor(Color.pink);break;case 10 :g.setColor(Color.darkGray);break;case 11 :g.setColor(Color.red);break;case 12 :g.setColor(Color.blue);break;case 13 :g.setColor(Color.cyan);break;case 14 :g.setColor(Color.gray);break;case 15 :g.setColor(Color.green);break;case 16 :g.setColor(Color.magenta);break;case 17 :g.setColor(Color.yellow);break;}g.fill3DRect(brick[i].brick_x,brick[i].brick_y,brick[i].brick_width,brick[i].brick_height,true); }g.setColor(Color.red);g.fillOval(x, y, 10, 10);g.setColor(Color.blue);g.fillRect(Rx, Ry, 80, 20);}}public void move(){while(true){try{Thread.currentThread().sleep(25);}catch(InterruptedException exception){System.err.println(exception.toString());}for (int i=0;i<=17;i++){if(ball.rect.intersects(brick[i].rect)&&brick[i].visible){brick[i].visible=false;yUp=!yUp;//打到球不可见}}if(x+5>Rx&&x+5<Rx+80&&y+10>=Ry){yUp=false;xDx=(int)(Math.random()*5+2);//⼩球坐标增量yDy=(int)(Math.random()*5+2);}if(xUp==true){x+=xDx;//⼩球左右移动坐标改变} else{x-=xDx;}if(yUp==true){y+=yDy;} else{y-=yDy;}if(y<=0){y=0;ball.ball_y=y;yUp=true;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);} else if(y>=MAX_Y-15){yDy=(int)(Math.random()*5+2);//yUp=false;break;}if(x<=0){x=0;ball.ball_x=x;xUp=true;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);} else if(x>=MAX_X-10){x=MAX_X-10;ball.ball_x=x;xDx=(int)(Math.random()*5+2);yDy=(int)(Math.random()*5+2);xUp=false;}ball.rect.setLocation(ball.ball_x,ball.ball_y); repaint();int i;//如果所有砖块都不可见for (i=0;i<=17&&brick[i].visible==false;i++){ //则重新玩}if(i==18){break;}//}renew=true;//初始化bouncing=false;for (int i=0;i<=17;i++){brick[i].visible=true;}xUp=true;yUp=false;xDx=1;yDy=1;x=150;y=450;Rx=120;Ry=460;//repaint();repaint();label.setVisible(true);}public static void main(String[] args) {HitBrick mar=new HitBrick();}}class BallThread extends Thread{private HitBrick m;BallThread(HitBrick a){//super();m=a;}public void run(){m.move();m.repaint();}}class Brick{Rectangle rect=null;//长⽅形对象,砖块按钮的位置和宽⾼int brick_x,brick_y;//按扭的左上⾓坐标int brick_width,brick_height;//按扭的宽和⾼Boolean visible;public Brick(int x,int y,int w,int h){brick_x=x;brick_y=y;brick_width=w;brick_height=h;visible=true;rect=new Rectangle(x,y,w,h);//创建长⽅形对象---砖块按钮的位置和宽⾼。
打砖块JAVA游戏代码

#include<graphics.h>#include<conio.h>#include<windows.h>#include<stdlib.h>#include<stdio.h>void draw(int x1){int m=0,n=0,x=40,y=20;int t=0,i,j,k=1;int a=0,b=127,c=88;for(i=0;i<8;i++){n=i*20;y=n+20;for(j=0;j<16-t;j++){m=(j+i)*40;x=m+40;POINT points[]={{m,n}, {x,n}, {x,y}, {m,y}}; setfillcolor(RGB(a,b,c));fillpolygon(points, 4);a=8*k+8;b=j*3+k+200;c=20*k;k=k+8;}t=t+2;k=1;}m=300;n=160;x=340;y=180;POINT points[]={{m,n}, {x,n}, {x,y}, {m,y}}; setfillcolor(RGB(a,b,c));fillpolygon(points, 4);}void end(){settextstyle(50, 0, "宋体", 0, 0, FW_BOLD, false, false, false);settextcolor(RED);outtextxy(200,200,"游戏结束!");getch();closegraph();}void start(){int n=0;loadimage(NULL,"IMSGE","background"); while(1){setbkmode(TRANSPARENT);settextstyle(50, 0, "楷体", 0, 0, FW_BOLD, false, false, false);if(n%2==0)settextcolor(GREEN);elsesettextcolor(RED);outtextxy(80,100,"请按空格键开始游戏"); Sleep(250);if(_kbhit())break;n++;}}void main(){int x=320,y=430,m=270,n=370; int a,b,c,e=0,f=0,g=0,k[3];int i,j;char d;initgraph(640,480);start();setbkcolor(WHITE); cleardevice();setlinecolor(WHITE);draw(1);while(1){setlinecolor(LIGHTBLUE); setlinestyle(PS_SOLID, 10); line(m,445,n,445); setlinestyle(PS_SOLID, 0); setlinecolor(WHITE); setfillcolor(BROWN); fillcircle(x,y,10);Sleep(60);setfillcolor(WHITE); fillcircle(x,y,10);if(_kbhit()){d=getch();setlinecolor(WHITE); setlinestyle(PS_SOLID, 10); line(m,445,n,445);if(n<640&&d=='d'){m=m+27;n=n+27;}else if(m>0&&d=='a'){m=m-27;n=n-27;}}//确定x,y的值// if(y>=435)end();if(y==430&&x>=m-5&&x<=n+5) {if(x>m&&x<=m+25){a=0;b=2;c=2;if(10/(x-m)==0)k[0]=2;else if(10/(x-m)>3)k[0]=3;elsek[0]=10/(x-m);}else if(x>m+25&&x<=m+55) {a=2;b=0;c=2;if(15/(x-m-25)==0)k[1]=2;else if(15/(x-m-25)>3)k[1]=3;elsek[1]=10/(x-m-25);}else if(x>m+55&&x<=n) {a=2;b=2;c=0;if(10/(x-m-55)==0)k[2]=2;else if(10/(x-m-55)>3)k[2]=3;elsek[2]=10/(x-m-55);}}if(1){if(e==0){y=y-10;if(y<=10){g=1-g;e=1;}if(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)! =WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){e=1;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}else if(e==1){y=y+10;if(getpixel(x-1,y-14)!=WHITE||getpixel(x-1,y+14)! =WHITE||getpixel(x+1,y-14)!=WHITE||getpixel(x +1,y+14)!=WHITE){e=0;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}else if(y==430&&x>=m-5&&x<=n+5)e=0;}if(g==0&&a==0){x=x-k[0]*5;if(y<=10)g=1-g;else if(x<=10||x>=630)g=1;if(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)! =WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){g=1;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}}else if(g==1&&a==0){x=x+k[0]*5;if(y<=10)g=1-g;else if(x<=10||x>=630)g=0;elseif(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)! =WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){g=0;setfillcolor(WHITE);for(i=10;i<=18;i++){for(j=10;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}}if(g==0&&b==0){x=x-k[1]*2;if(y<=10)g=1-g;else if(x<=10||x>=630)g=1;elseif(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)! =WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){g=1;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}}else if(g==1&&b==0){x=x+k[1]*2;if(y<=10)g=1-g;else if(x<=10||x>=630)g=0;elseif(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)!=WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){g=0;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}}if(g==0&&c==0){x=x-k[2]*5;if(y<=10)g=1-g;else if(x<=10||x>=630)g=1;elseif(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)! =WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){g=1;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}}else if(g==1&&c==0)x=x+k[2]*5;if(x<=10||x>=630)g=0;else if(y<=10)g=1-g;elseif(getpixel(x-1,y-10)!=WHITE||getpixel(x-1,y+10)! =WHITE||getpixel(x+1,y-10)!=WHITE||getpixel(x +1,y+10)!=WHITE){g=0;setfillcolor(WHITE);for(i=8;i<=18;i++){for(j=8;j<=18;j++){floodfill(x-i,y-j,WHITE);floodfill(x+i,y-j,WHITE);floodfill(x-i,y+j,WHITE);floodfill(x+i,y+j,WHITE);}}}}} end(); }。
基于Java打砖块游戏的设计与实现

文章编号=1009 -2552(2016)07 -0016 -04DOI:10. 13274/ki.hdzj.2016. 07. 005基于Java打砖块游戏的设计与实现马巧梅(宝鸡文理学院计算机学院,陕西宝鸡721016)摘要:随着科学技术的进一步发展,益智游戏作为一种新型的休闲娱乐方式也逐步进入人们 的生活。
基于Java的打砖块游戏从操作简便、灵活、界面友好等要求考虑,并根据Java图形用 户界面而开发的一款益智游戏。
阐述了游戏的设计构思,提出了游戏的功能结构图,设计了游 戏的流程图,在构建完善的游戏构思的基础上,分析了如何使用线程来实现球的弹跳及其他的 关键技术,最终实现了基于Java打砖块游戏的开发,并验证该游戏可以顺利的运行。
关键词:Java程序;打砖块游戏;图形用户界面;eclipse;多线程中图分类号:TP311 文献标识码:ADesign and implementation of Java-based bricks gamesMA Qiao-mei(School of Computer,Baoji University of Arts and Sciences,Baoji 721016,Shaanxi Province,China) Abstract:With the further development o l the science and technology,educational games as a new wayo l entertainment also gradually go into the l i f e o l people.Java-based bricks games i s developed according t o the Java graphical user interface,which requires the easy operation,flexibility,friendly interface,etc. peculiarity.The designing idea o f game i s expounded,and the function structure o f the game i s put forward,and the flow chart o f the game i s designed in t h i s paper.On the basis o f analysis o f constructing a perfect game idea,how t o use a thread t o realize the bounce o f the ball other key technologies are analyzed.Java-based brick games i s achieved finally,which can successfully verify,the game can run smoothly.Key words:Java program;bricks games;graphical user interface;eclipse;multithreading打砖块游戏是一款老少皆宜的休闲益智游戏,操作简单,却又极具趣味。
JAVA课程设计打砖块(含代码)

Java程序课程设计任务书一、主要内容打砖块游戏是一种动作电子游戏的名称。
玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的“球”在撞击作为过关目标消去的“砖块”的途中不会落到萤幕底下。
球碰到砖块、棒子与底下以外的三边会反弹,落到底下会失去一颗球,把砖块全部消去就可以破关。
二、具体要求通过图形用户界面(Graphics User Interface,GUI)和线程,使用户和程序之间可以方便地进行交互。
运用Swing组件,编写小应用程序游戏,加深对Java语言的理解,深入地了解图形用户界面的设计,更加熟练地运用编程软件。
功能要求:(1)游戏运行需键盘的操作;(2)游戏可统计分数;(3)球落到底下会失去一颗,按ENTER可重新开始。
开发工具:JCreater软件;开发技术:J2ME。
三、进度安排12月28日:课程设计选题,查找参考资料12月29日:完成打砖块游戏程序设计分析12月30日~ 1月3日:完成程序代码的编写1月4日~ 1月5日:游戏测试与完善1月6日~ 1月7日:完成课程设计报告,准备答辩四、主要参考文献[1] (美)埃克尔著陈昊鹏,饶若楠等译. Java编程思想[J]. 机械工业出版社,2005[2](美)Gary J.Bronson著张珑刘雅文译. Java编程原理[J]. 清华大学出版社,2004[3](美)Michael Morrison著徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电出版社,2005.9[4](美)Wendy Stahler著冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗出版社,2005[5](美)克罗夫特(David Wallace Croft)著彭晖译. Java游戏高级编程[J]. 清华大学出版社,2005[6](美)David Brackeen著邱仲潘译. Java游戏编程[J]. 科学出版社,2004[7] 聂庆亮编著. Java应用开发指南[J]. 清华大学出版社,2010[8] 耿祥义,张跃平编著. Java面向对象程序设计[J]. 清华大学出版社,2010[9] 杨绍方编著. Java编程实用技术与案例[J]. 清华大学出版社,2000.11[10] 明日科技编著. Java编程全能词典[J]. 电子工业出版社,2010摘要随着Java语言的不断发展和壮大,现在的Java已经广泛的应用于各个领域,包括医药,汽车工业,手机行业,游戏,等等地方。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java程序课程设计任务书一、主要内容打砖块游戏是一种动作电子游戏的名称。
玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的“球”在撞击作为过关目标消去的“砖块”的途中不会落到萤幕底下。
球碰到砖块、棒子与底下以外的三边会反弹,落到底下会失去一颗球,把砖块全部消去就可以破关。
二、具体要求通过图形用户界面(Graphics User Interface,GUI)和线程,使用户和程序之间可以方便地进行交互。
运用Swing组件,编写小应用程序游戏,加深对Java 语言的理解,深入地了解图形用户界面的设计,更加熟练地运用编程软件。
功能要求:(1)游戏运行需键盘的操作;(2)游戏可统计分数;(3)球落到底下会失去一颗,按ENTER可重新开始。
开发工具:JCreater软件;开发技术: J2ME。
三、进度安排12月28日:课程设计选题,查找参考资料12月29日:完成打砖块游戏程序设计分析12月30日 ~ 1月3日:完成程序代码的编写1月4日 ~ 1月5日:游戏测试与完善1月6日 ~ 1月7日:完成课程设计报告,准备答辩四、主要参考文献[1] (美)埃克尔著陈昊鹏,饶若楠等译. Java编程思想[J]. 机械工业出版社,2005[2](美)Gary 著张珑刘雅文译. Java编程原理[J]. 清华大学出版社,2004[3](美)Michael Morrison著徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电出版社,[4](美)Wendy Stahler著冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗出版社,2005[5](美)克罗夫特(David Wallace Croft)著彭晖译. Java游戏高级编程[J].清华大学出版社,2005[6](美)David Brackeen著邱仲潘译. Java游戏编程[J]. 科学出版社,2004[7] 聂庆亮编著. Java应用开发指南[J]. 清华大学出版社,2010[8] 耿祥义,张跃平编著. Java面向对象程序设计[J]. 清华大学出版社,2010[9] 杨绍方编著. Java编程实用技术与案例[J]. 清华大学出版社,[10] 明日科技编著. Java编程全能词典[J]. 电子工业出版社,2010摘要随着Java语言的不断发展和壮大,现在的Java已经广泛的应用于各个领域,包括医药,汽车工业,手机行业,游戏,等等地方。
Java游戏的开发为满足人们娱乐所需而设计。
本游戏为打砖块游戏,是基于Java的图形用户界面而开发的,可以放松心情的小游戏。
游戏从系统操作简便、界面友好、灵活、上手即会的基本要求出发,完成整款游戏的开发。
游戏更设置了暂停、计分、音乐、速度,用户信息保存等功能,可以根据自己的爱好,挑战更高难度,为用户带来愉悦的体验。
本课程设计报告介绍了游戏的构想,分析,开发,实现的过程。
论述了游戏的功能开发,设计构思。
给出了游戏的设计步骤,游戏系统关键的设计思想;在游戏系统实现章节给出了部分功能流程和相关代码。
关键词:游戏,打砖块目录JAVA程序课程设计任务书.............................. 错误!未定义书签。
摘要 ................................................ 错误!未定义书签。
目录 ............................................... 错误!未定义书签。
第1章引言 ......................................... 错误!未定义书签。
背景.............................................. 错误!未定义书签。
课程设计内容...................................... 错误!未定义书签。
任务分工.......................................... 错误!未定义书签。
第二章弹砖块小游戏应用程序......................... 错误!未定义书签。
弹砖块小游戏应用程序概述.......................... 错误!未定义书签。
打砖块小游戏系统任务及目的.................. 错误!未定义书签。
主要特色系统介绍.................................. 错误!未定义书签。
本章小结.......................................... 错误!未定义书签。
第3章打砖块游戏系统的设计.......................... 错误!未定义书签。
系统需求分析...................................... 错误!未定义书签。
系统开发及运行环境................................ 错误!未定义书签。
系统主要功能要求.................................. 错误!未定义书签。
打砖块系统总体结构......................... 错误!未定义书签。
系统数据流图...................................... 错误!未定义书签。
本章小结.......................................... 错误!未定义书签。
第4章系统数据库设计................................ 错误!未定义书签。
数据库设计过程..................................... 错误!未定义书签。
需求分析..................................... 错误!未定义书签。
功能实现..................................... 错误!未定义书签。
本章小结.......................................... 错误!未定义书签。
第5章系统的具体实现................................ 错误!未定义书签。
界面设计........................................... 错误!未定义书签。
用户登录界面图.............................. 错误!未定义书签。
游戏主界面.................................. 错误!未定义书签。
程序设计及调试运行................................. 错误!未定义书签。
自动计时..................................... 错误!未定义书签。
在JPanel中画图............................. 错误!未定义书签。
用户注册登录系统............................. 错误!未定义书签。
游戏结果的存储.............................. 错误!未定义书签。
本章小结.......................................... 错误!未定义书签。
第6章结束语 ....................................... 错误!未定义书签。
致谢 ................................................ 错误!未定义书签。
参考文献 ............................................ 错误!未定义书签。
附录源代码 ......................................... 错误!未定义书签。
第1章引言背景游戏是全球最大的娱乐经济项目之一,已经被命名为“第九艺术”。
而由“游戏”派生出来的职业,除了软件开发外,游戏包装宣传推广、攻略指导、网络游戏管理员和职业游戏玩家等,已成为了一系列专门的岗位。
面对游戏产业如此巨大的市场空间,国内各大城市纷纷加大了这方面的人才培养,中国的游戏人才培训已随着游戏行业的总体发展开始逐步迈入了正轨。
虽然说中国的游戏行业开始逐步的迈入了正轨,但是现今,游戏人才出现严重的瓶颈时期,高校的扩招、金融危机的侵袭直接影响着我们最关心的就业问题,但是另一方面游戏人才的缺乏又直接制约着行业的发展,这就更加严格了对社会培训机构的稳定性和正规性的要求。
在我国,游戏人才培养体系还未健全,部分开设了相关专业的高校,游由于理论和实践的脱离无法完全满足网游公司对人才的需求。
所以,就中国目前的市场分析来看,加强游戏产业必须在多渠道人才培养体系上加快突破,尽快建立起多渠道人才培养体系,来满足社会对游戏人才的需求。
课程设计内容打砖块游戏是一种动作电子游戏的名称。
玩家操作一根萤幕上水平的弹板,让一颗不断弹来弹去的“球”在撞击作为过关目标消去的“砖块”的途中不会落到萤幕底下。
球碰到砖块、弹板与底下以外的三边会反弹,落到底下会失去一颗球,把砖块全部消去就可以破关。
游戏的功能包含以下内容:(1)基本的游戏操作用户可以通过鼠标或者键盘来操作弹板,尽量让弹球不要掉下底下。
开始按钮和暂停按钮可以控制游戏的进行。
(2)宝物获得功能用户在游戏过程中,可能获得相关的宝物,可以使弹板增长一部分。
(3)速度设置功能本游戏有5个速度设置,可以根据用户的需要,调节到用户想要的速度进行游戏。
(4)音乐设置功能用户可以根据自己的喜好,选择自己喜欢的音乐,或者是关掉它。
(5)用户注册登录功能每个用户在游戏开始时都要输入用户的信息注册,登录,并记录。
当用户退出游戏以后,系统将记录用户的游戏信息。
(6)计分,记时功能用户在游戏的过程中,系统将记录游戏的成绩,并保存在文件中,用户退出游戏后也可以查询成绩。
任务分工第二章弹砖块小游戏应用程序弹砖块小游戏应用程序概述此程序设计是一个小游戏(弹砖块)的实现,主要运用了用户图形界面,程序接口和基本函数绘制来实现,事件监听(包括鼠标事件,键盘事件,响应时间)也是这个程序的特色。
此程序用到了图片的引用,砖块、弹板应用了函数绘制和图片引用,弹球的设计外且安全是应用函数绘制。
游戏还利用JAVA Applet实现了播放声音。
再加入复选框,按钮,标签等来实现本游戏用户界面布局。
总之,本游戏在用户界面的可操作性、游戏的美观度、计分计时存储结果方便都基本完善,有一定的可玩性。
打砖块小游戏系统任务及目的此小程序是为群众闲暇消遣之用,玩家在进入游戏后输入自己的大名,按游戏规则用弹球打掉弹板上的全部砖块,获得相应的分数,进入下一关,知道全部过关,游戏结束后可记录玩家分数及排行榜名次进入游戏界面,一个文本框可以选择是否记录游戏这名字,接着是“开始”、“暂停”、“重新开始”按钮以及四个复选框分别控制背景音乐、速度、模型和关卡,还有四标签记录时间、生命分数和排行榜数据。