学习java朋友们,福利来了,今天小编给大家带来了一款仙剑源码。注意:此源码仅供学习使用!!
并不是实现完整的仙剑游戏,仅供java开发者学习的代码!!!
演示视频地址
https://githubs.xyz/show/211.mp4
代码采用原生java类库编写, 利用java swing作为界面框架,完整源码获取地址:
gitee.com/hadluo/java_game01.git
源码搭建和讲解
代码采用原生的java类库编写,界面用swing,启动main入口:
package cn.tedu.xjqxz; import javax.swing.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** * 游戏案例的窗口类 * 窗口大小:1024 * 768 * */ public class GameFrame { public static void main(String[] args) { /* * 1.创建窗口类的实例化对象 * 2.让窗口对象显示出来 * 3.设置窗口对象的相关属性 */ final int width = 1024; final int height = 768; JFrame jFrame = new JFrame(); jFrame.setSize(width, height); jFrame.setLocationRelativeTo(null); jFrame.setResizable(false); jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); jFrame.addWindowListener(new WindowAdapter() { // 当窗口正要关闭的时候,会自动调用该方法 @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); // 弹出确认对话框 int ch = JOptionPane.showConfirmDialog(null,"确认退出游戏吗?","提示",JOptionPane.YES_NO_OPTION); if (ch == JOptionPane.YES_OPTION) { System.exit(0); } } }); jFrame.setTitle("仙剑奇侠传 - Version 1.0"); GamePanel gamePanel = new GamePanel(); jFrame.addKeyListener(gamePanel); jFrame.add(gamePanel); jFrame.setVisible(true); } }
NPC 对象
package cn.tedu.xjqxz; import java.awt.*; /** * 配角人物Npc 类 * */ public class Npc { private String name; private boolean chatOver = false; // npc在背景图片中的坐标 private int x; private int y; private int index = 0; int chatIndex = 0; private Image[] image; private String[] words; public Npc(String[] words, Image[] image, int x, int y, String name) { this.words = words; this.image = image; this.x = x; this.y = y; this.name = name; } public int getX() { return x; } public int getY() { return y; } public String getName() { return name; } public int getWidth() { return image[0].getWidth(null); } public int getHeight() { return image[0].getHeight(null); } public Image getImage() { return image[index]; } public void updateIndex() { index++; if (index > image.length - 1) { index = 0; } } public void updateChatContent() { chatIndex++; if (chatIndex > words.length - 1) { chatOver = true; chatIndex = 0; } } public String getWords() { return words[chatIndex]; } public boolean isChatOver() { return chatOver; } public void setChatOver(boolean b) { chatOver = b; } }
运行工具
代码是一个普通的java工程,我们直接导入到eclipse或者idea就可以运行了。
操作方式
方向键控制角色上下左右移动
空格键与npc对话
ESC键退出对话或退出游戏
回车键切换场景(切换位置在地图最右侧小路尽头)
结尾语
源码仅供学习使用。
标签:练手,jFrame,JAVA,int,image,return,源码,java,public From: https://www.cnblogs.com/hadluo/p/18678761