《仙剑奇侠传柔情版》Java的简单实现(二)
基于《仙剑奇侠传柔情版》Java的简单实现(二)
2018-12-02 by louis
需要上次的GameFrame.class中窗口框架承载:https://www.cnblogs.com/louis6575/p/10051873.html
当时没有学过JButton,于是当时就把未选中的【开发团队】【旧的回忆】【新的开始】Ps到背景层,然后把选中状态存为三张图片,并使用以下代码进行读取:
1 package firstDemo; 2 3 // 为更好说明解决方式,现已在源码上进行关键部分抽取 4 5 import javax.imageio.ImageIO; 6 import javax.swing.*; 7 import java.awt.*; 8 import java.awt.event.KeyEvent; 9 import java.awt.event.KeyListener; 10 import java.io.File; 11 import java.io.IOException; 12 13 public class GamePanel extends JPanel implements Runnable, KeyListener { 14 15 int startX = 0,startY = 0; 16 int startButtonX = 250,startButtonY = 125; 17 Image[] startButtonImages = new Image[3]; 18 Image startImage; 19 boolean isStartShow = true; 20 boolean isstartButtonShow = true; 21 22 int startButtonIndex = 0; 23 private int start_DIST = 120,resume_DIST = 109,limUP = 240,limDOWN = 566,limRIGHT = 250,limLEFT = 10; 24 25 public GamePanel() { 26 // 加载背景层,测试图片要求:图片像素大小为1024x768 27 try { 28 startImage = ImageIO.read(new File("仙剑奇侠传游戏素材/开始游戏/start0.png")); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 } 32 // 加载自制按钮图标,测试图片要求:图片大小187x630 33 for (int i = 0; i < startButtonImages.length; i++) { 34 try { 35 startButtonImages[i] = ImageIO.read(new File("仙剑奇侠传游戏素材/开始游戏/"+i+".png")); 36 } catch (IOException e) { 37 e.printStackTrace(); 38 } 39 } 40 } 41 42 //绘画方法 43 public void paint(Graphics g) { //绘画 44 super.paint(g); //清空原有画面,重新画dialogImage 45 if(isStartShow){ 46 g.drawImage(startImage,startX,startY,this); 47 if(isstartButtonShow){ 48 g.drawImage(startButtonImages[startButtonIndex],startButtonX,startButtonY,this); 49 } 50 } 51 } 52 53 @Override 54 public void keyTyped(KeyEvent e) { 55 56 } 57 58 @Override 59 public void keyPressed(KeyEvent e) { 60 int KeyCode = e.getKeyCode(); 61 if(KeyCode == KeyEvent.VK_UP){ 62 63 } else if(KeyCode == KeyEvent.VK_DOWN){ 64 65 66 } else if(KeyCode == KeyEvent.VK_LEFT){ 67 if(isStartShow){ 68 startButtonX -= start_DIST; 69 startButtonIndex++; 70 if(startButtonIndex > startButtonImages.length-1){ 71 startButtonIndex = 0; 72 startButtonX = limRIGHT; 73 } 74 } 75 } else if(KeyCode == KeyEvent.VK_RIGHT){ 76 if(isStartShow){ //RIGHT按钮切换开始游戏界面选项 77 startButtonX += start_DIST; 78 startButtonIndex--; 79 if(startButtonIndex < 0){ 80 startButtonIndex = 2; 81 startButtonX = limLEFT; 82 } 83 } 84 } repaint(); 85 } 86 87 @Override 88 public void keyReleased(KeyEvent e) { 89 90 } 91 92 @Override 93 public void run() { 94 while(true) { 95 try { 96 Thread.sleep(200); 97 } catch (InterruptedException e) { 98 e.printStackTrace(); 99 } repaint(); 100 } 101 } 102 }
原素材:
背景:https://www.cnblogs.com/images/cnblogs_com/louis6575/1354506/t_start0.png
新的开始:https://www.cnblogs.com/images/cnblogs_com/louis6575/1354506/t_0.png
旧的回忆:https://www.cnblogs.com/images/cnblogs_com/louis6575/1354506/t_1.png
开发团队:https://www.cnblogs.com/images/cnblogs_com/louis6575/1354506/t_2.png
转载于:https://www.cnblogs.com/louis6575/p/10056305.html
《仙剑奇侠传柔情版》Java的简单实现(二)相关推荐
- 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)
基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36 by Louis 一,新建一个类GameFrame.class,具体代码如下: pack ...
- VS2010+.net4.0仿照苹果手机上的消除之星写了一个电脑版的功能简单(二)
说一下设计思路,主要就是根据用户点击的是哪个星星判断他周围有多少个与他相同的星星 /// <summary>/// 给list赋值,得到点击位置周围相同的星星/// </summar ...
- Java版DBHelper【简单】(MySQL数据库)
http://www.cnblogs.com/xia520pi/archive/2012/05/22/2513920.html Java版DBHelper[简单](MySQL数据库) 1.测试数据库 ...
- java实现简单扫码登录功能(模仿微信网页版扫码)
java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端 ...
- Java入门123:一个老鸟的Java学习心得(二维码版)
Java入门123:一个老鸟的Java学习心得(二维码版)清华大学出版社 Java入门123--一个老鸟的Java学习心得(二维码版)充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进 ...
- linux控制台单人五子棋简书,Java控制台版五子棋的简单实现方法
这篇文章主要给大家介绍了关于Java控制台版五子棋的简单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 设计一个10*1 ...
- java爬虫之基于httpclient的简单Demo(二)
转载自 java爬虫之基于httpclient的简单Demo(二) 延续demo1的 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一),demo2出炉啦,大家想学爬虫都可以从这 ...
- 如何使用JAVA代码生成一个简单的二维码
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.二维码是什么? 二.使用步骤 1.引入依赖 2.开始操作 3.二维码容错 4.结果展示 总结 前言 二维码大家应该 ...
- 仙剑4 linux,仙剑奇侠传98柔情版 for Linux——SDLPAL打包
是否还记得曾经的感动? "平凡的客栈小伙计李逍遥因为机缘巧合结识了女娲族后裔赵灵儿.赵灵儿所居之仙灵岛意外遭人袭击,李逍遥遂担任起护送灵儿往苗疆寻母的重任.在旅程中,李逍遥先后结识了林月如. ...
最新文章
- LeetCode简单题之检查字符串是否为数组前缀
- 学校开展计算机培训活动,计算机学院学习筑梦班开展义务清扫机房活动
- 中国python之父是谁-Python之父:谈Python
- python编程入门指南磁力下载-使用python 将bt转磁力链接
- shell中的小括号与大括号
- IIS 之 Asp.Net项目内部运行详解
- kdbchk: the amount of space used is not equal to block size
- 爬虫必备技能!开发者工具技巧总结
- ASP.NET Core 2.1基于SignalR和Vue实时通讯
- 第三方支付易宝支付的具体实现
- python 有限域函数库_有限域(4)——程序实现有限域的运算
- 昂达v819i安卓bios
- 集成电路设计的一种运作模式(Fabless/Foundry/IDM模式)
- 科普 [分子力学总势能(或者LJ势能)能量最小化]
- 基于第三方QQ授权登录
- 适合手机运行的服务器系统,同样2GB内存 手机为啥不如电脑运行好?
- Android传感器——传感器监听器及摇一摇案例
- 行秩列秩一定相等吗_从不同角度看行秩与列秩
- 条码打印软件中如何插入特殊字符
- java mail imap 附件下载_Java Mail 发送带有附件的邮件
热门文章
- mongodb gridfs java_MongoDB基于GridFS管理文件
- 武汉五一自驾车出行合理选择出行时间和线路
- 培训机构真实落地方案,利用地摊一次招生247人,只用了3招!
- K8S环境的Jenkin性能问题处理
- 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩 纹理映射技术 二
- c++三种实例化对象方式
- [stm32][ucos][ucgui] 2、LED闪烁、串口、滑块、文本编辑框简单例程
- PDF文件如何提取页面,一分钟学会
- python进行B站av号和bv号的转换
- C++基础之什么是谓词、什么是仿函数