nginx网站建设,网站显示wordpress,怎么创建一个软件,博物馆网站建设方案书本文实例为大家分享了java版贪吃蛇小游戏的具体代码#xff0c;供大家参考#xff0c;具体内容如下项目结构新建一个JFrame窗口,作为程序入口public class GameStart{public static void main(String[] args) {JFrame jFrame new JFrame();jFrame.setBounds(100,100,900,720…本文实例为大家分享了java版贪吃蛇小游戏的具体代码供大家参考具体内容如下项目结构新建一个JFrame窗口,作为程序入口public class GameStart{public static void main(String[] args) {JFrame jFrame new JFrame();jFrame.setBounds(100,100,900,720);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);jFrame.setResizable(false);jFrame.add(new GameJPanel());jFrame.setVisible(true);}}创建一个面板类//面板public class GameJPanel extends JPanel implements ActionListener {int length;//蛇的长度int[] snakeX new int[600];//蛇的X的最大长度int[] snakeY new int[500];//蛇的Y的最大长度String fx R;boolean isStart false;//默认不开始//定时器Timer timer new Timer(100, this);//100毫秒1秒int foodX;int foodY;Random random new Random();//随机数boolean isFail false;//失败条件int score;public GameJPanel() {init();this.setFocusable(true);//获取焦点事件addKeyListener(new GameKeyListener(this));//开启定时器timer.start();}//初始化void init() {length 3;snakeX[0] 100;snakeY[0] 100;//第一个身体snakeX[1] 75;snakeY[1] 100;//第二个身体snakeX[2] 50;snakeY[2] 100;//第三个身体fx R;//食物随机分布foodX 25 25 * random.nextInt(34);foodY 75 25 * random.nextInt(24);score 0;}//绘制面板,所有东西都是通过graphics这个画笔绘制Overrideprotected void paintComponent(Graphics graphics) {super.paintComponent(graphics);//清屏//添加静态布局GameData.header.paintIcon(this, graphics, 25, 11);graphics.fillRect(25, 75, 850, 600);//积分板graphics.setColor(Color.white);graphics.setFont(new Font(微软雅黑, Font.BOLD, 18));graphics.drawString(长度length,750,35);graphics.drawString(得分score,750,55);//先画食物防止吃掉有延迟GameData.food.paintIcon(this, graphics, foodX, foodY);//画小蛇switch (fx) {case R:GameData.right.paintIcon(this, graphics, snakeX[0], snakeY[0]);break;case L:GameData.left.paintIcon(this, graphics, snakeX[0], snakeY[0]);break;case U:GameData.up.paintIcon(this, graphics, snakeX[0], snakeY[0]);break;case D:GameData.down.paintIcon(this, graphics, snakeX[0], snakeY[0]);break;}//身体for (int i 1; i length; i) {GameData.body.paintIcon(this, graphics, snakeX[i], snakeY[i]);}//游戏状态if (!isStart) {graphics.setColor(Color.white);graphics.setFont(new Font(微软雅黑, Font.BOLD, 40));//设置字体graphics.drawString(按下空格开始游戏, 300, 300);}//游戏失败if (isFail) {graphics.setColor(Color.red);graphics.setFont(new Font(微软雅黑, Font.BOLD, 40));graphics.drawString(游戏失败,请按空格继续, 300, 300);}}//事件监听--固定事件刷新一次1s100msOverridepublic void actionPerformed(ActionEvent actionEvent) {if (isStart !isFail) {//吃食物if (snakeX[0] foodX snakeY[0] foodY) {//长度1length;score10;//重新随机绘制食物foodX 25 25 * random.nextInt(34);foodY 75 25 * random.nextInt(24);}//后一节移动到前一节从而由头带动身体移动for (int i length - 1; i 0; i--) {snakeX[i] snakeX[i - 1];snakeY[i] snakeY[i - 1];}switch (fx) {case R:snakeX[0] 25;//头部移动// 边界判断if (snakeX[0] 850) { snakeX[0] 25; }break;case L:snakeX[0] - 25;//头部移动if (snakeX[0] 25) { snakeX[0] 850; }break;case U:snakeY[0] - 25;//头部移动if (snakeY[0] 75) { snakeY[0] 650; }break;case D:snakeY[0] 25;//头部移动if (snakeY[0] 650) { snakeY[0] 75; }break;}//失败判定for (int i 1; i length; i) {if (snakeX[0] snakeX[i] snakeY[0] snakeY[i]) {isFail true;break;}}repaint();//重绘}//开启定时器timer.start();}}所有组件添加流程基本一致即先定义数据然后在画笔paintComponent方法中绘制最后添加到监听事件。更多有趣的经典小游戏实现专题分享给大家以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。