2048小游戏设计.docx

上传人:灯火****19 文档编号:134959627 上传时间:2020-06-10 格式:DOCX 页数:18 大小:212.45KB
返回 下载 相关 举报
2048小游戏设计.docx_第1页
第1页 / 共18页
2048小游戏设计.docx_第2页
第2页 / 共18页
2048小游戏设计.docx_第3页
第3页 / 共18页
2048小游戏设计.docx_第4页
第4页 / 共18页
2048小游戏设计.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《2048小游戏设计.docx》由会员分享,可在线阅读,更多相关《2048小游戏设计.docx(18页珍藏版)》请在金锄头文库上搜索。

1、2048小游戏(1) 程序介绍2048是一款益智小游戏,玩家需要在l6个格子中通过数字叠加的方法将最初的数字2凑成数字2048。有16个格子,初始时会有两个格子上安放了两个数字2, 每次可以选择上下左右其中一个方向去滑动, 每滑动一次, 所有的数宇方块都会往滑动的方向靠拢外, 系统也会在空自的地方随即出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。 2o48是比较流行的一款数字游成a本课程设计通过设计与开发 JvM平台上的2048游戏,进一步掌握所学Java课程的知识, 体验 Java的跨平台性, 同时将 Java设计方面的知识拓展应用(二) 功能需求描述l、图形用户界面: 2048的最

2、大特点就是玩家对图形界面里的数字进行操作, 也就是是玩家与游戏的互动2、当前分数 scoRE 与最高分数的显示:在我们设计的2048游戏中当前分数取了页面i内所有数字相加的值为分数, 对玩家玩游戏的进展有直接性、 客观性的展现, 同时, 最高分数取了以往玩家退出游戏时所保存分数的最高分3、数字颜色游戏中数宇的颜色以2为首項的等比数列变化,即2、4、8、l6、32、 “、128、256、5l2、l024、2048_.对应的数字卡片变色4、游戏的退出:游戏退出时,我们采用弹出对话框的确认玩家是否真的要退出游戏, 当然这样做更符合游戏人性化设计的观念 。(三)玩法技巧:1、 最大数尽可能放在角落 2

3、、数字按顺序紧邻排列3、 首先満足最大数和次大数在的那一列/行是满的 4、 时刻注意活动较大数旁边要有相近的数 5、 以大数所在的一行为主要移动方向6、不要急于“清理桌面”(四)程序说明一个类 Copy2048继承JFrame, 类中包括, 一个构造方法 Copy2048,构造方法中设定游戏界面的大小,背景颜色,边框,字体,标签,布局,位置,记录剩余空方块数目,记录分数,用于判断游成是否失败,用于判断游戏是否失败,设置字体类型和大小, 为最高分标签添加接键监听器, 一个 KeyEvent按键事件, 构造方法中创建游戏主面板,设置主面板位置尺寸,设置空布局,创建文本框二维数组,创建标签,调用时间

4、处理方法, 一个Create2方法,是在随机位置产生一个2号方块的方法, ll到l4同时被键盘赋値为1说明任何方向键都不能产生新的数字2,那就说明游戏失败GAME OVER! 一个setColor方法,是为了产生2l:)48小游戏方块的颜色。(五) 程序结构l.重新开始,若是初次运行游戏,则从文件中读入最高分void restart02.控制方法ptlblic void keyPtessed(KeyEvent e)3.结图方法public void paint(iraphics g)4.判断是否己经失败,若失败则返回true,否则返回falsepablic boolean judgeFai10

5、5.向下滑动,若各列均投有方块相相或移动,则返回false,否则返回true; public void moveDown06.向左滑动,若各行均投有方块相相或移动,则返回false,否则返回true; ptlblic void moveLeft07.向右滑动,若各行均投有方块相相或移动,则返回false,否则返回true, public void moveRight08.向上滑动,若各行均投有方块相消或移动,则返回false,否则返回true; Public void moveUp09.在游戏区空用处随机生成2public void generateRandom2 0(6) JAVA制作204

6、8小游戏详细代码import java.awt.Color;import java.awt.EventOueue;import java.awt.BorderLayout;impol1 java.awt.FlowLayout;import java.awt.Font;import java.awt.event.;import java.util. Random;import javax.swing_BorderFactory;import javax.swing_lcon;import javax.swing. lmagelcon;import javax.swing_JFrame;impor

7、t javax.swing.JLabel;import javax.swing_JPanel;import javax.swing.SwingConstants;import java)(.swing_border.*;import java)(.swing.JTextField;public class Copy2048 extends JFrameprivate JPanel scoresPane;private JPanel mainPane;private JLabel labelMaxScores;private JLabel labelScores;private JLabel t

8、ips;private JTextField textMa)(Scores; private JLabel textScores;private JLabel texts;privatelcorl icon2;private int times= 16;private int scores= 0;private int11 ,l2,l3,l4,l5;/提示操作t示签/-记录剩余空方块数目/-记最分数/用 -判断游戏是否失败Font font= new Font(”H, Font.BOLD,14); Font font2 = new Font(-, Font.BOLD,30); Random r

9、andom= new Random0;/般置字体类型和大小/设置字体类型和大小/随机类实例化public static void main(StringI args)EventOueue.invokeLater(new Runnable0public void run0tryCopy2048 ffame= new Copy20480;frame.setVisible(true);catch(Exception e1)e1 .prlntStact(Trace0;);public Copy20480super0;setFiesizable(false); getContentPane0.setLa

10、yout(null);setBounds(500, 50, 500, 615);setDefaultCoseOperation(J Frame. EX0N_CLOSE) ; setTltle(2048PC版) scoresPane= new JPanel0; scoresPane.setBackground(Color.green); scoresPane.setBounds(20, 20, 460, 40);scoresPane.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2,Color.YELLOW);getContentPane0

11、.add(scoresPane);scoresPane.setLayout(null);labelMaxScores= new JLabel(最高分:); labelMaxScores.setFont(font) ;labelMaxScores.setBounds(10, 5, 50, 30);scoresPane.add(labelMaxScores); textMaxScores= new JTextField( );textMaxScores.setBounds(60, 5, 150, 30);textMaxScores.setFont(font);textMaxScores.setEd

12、itable(false);scores Pane.add(textMaxScores) ;数面ili , 1 labelScores= new JLabel(”得 分:); labelScores.setFont(font) ;labelScores.setBounds(240, 5, 50, 30); scoresPane.add(labelScores);textSoores= new JLabe1(String.valueOf(scores); textSoores.setFont(font);textSoores.setBounds(290, 5, 150, 30);scores P

13、ane.add(textScores) ;mainPane= new JPanel0; mainPane.setBounds(20, 70, 460, 500); this.getContentPane0.add(mainPane);mainPane.setLayout(null); /设置空布用texts= new JLabel44;for(int i= 0; i4; i+)for(int j= 0; j4; j+)textsilm= new JLabel0;textsilm.setFont(font2);/创建文本框二维数组/遍历数组/创建 t示签textsilm. setHorizont

14、alAlign me nt(SwingConstants.CENTE R) ; textsilm. setText(-) ;textsilm.setBounds(120* j, 120*i, 100, 100); /设置方块的大小位置setColor(l, j, ”);te),(tsilm. setOpaque(true) ;textsilm.setBorder(BorderFactory.createMatteBorder(2, 2, 2,2, Color.green);/设置方決边框颜色main Pane.add(textsilm) ;文本框放在tips=newJLabel(Tips:使用上、下、左、右键或者W、 S、 A、 D键控制H);tips.setFont(font);tips.setBounds(60,480,400,20)main Pane.add(tips) ;textMaxScores.add KeyListe:ner( new KeyAdapte r0高分标签添加接键监所器publicvoid keyPressed( KeyEvente)(do_label_keyPressed(e) ;);/调用时同处理方法Create20;Create20; /t* 接键输入事件的处理方法

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号