package game;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Game_Start extends JFrame{

JFrame frame = new JFrame();

JButton btn1 = new JButton("开始游戏");

JButton btn2 = new JButton("游戏介绍");

JButton btn3 = new JButton("退出游戏");

Image start = (new ImageIcon("src/icon/start.jpg")).getImage();

Font f = new Font("微软雅黑",Font.BOLD,30);

public Game_Start() {

setSize(1400,1200);

setLocationRelativeTo(null);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

setResizable(false);

setTitle("贪吃蛇开始界面");

add(new Pane());

}

public class Pane extends JPanel{

public Pane() {

setLayout(null);

Button();

btn1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

new Operation();

dispose();

}

});

btn2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JDialog dialog=new JDialog();

dialog.setSize(800,600);

dialog.setLocationRelativeTo(null);

dialog.setVisible(true);

dialog.setTitle("游戏介绍");

String strMsg1 = "____通过键盘的上下左右键控制小蛇的移动";

String strMsg2 = "____当小蛇吃到食物会增长身体一单位长度";

String strMsg3="____当蛇头碰到墙壁或身体则游戏结束";

String strMsg4="____点击空格游戏开始,游戏结束可点击空格重新开始游戏";

String strMsg = "

" + strMsg1 + "
" + strMsg2 + "
"+strMsg3+"
"+strMsg4+"";

JLabel label = new JLabel(strMsg);

label.setFont(f);

dialog.add(label);

}

});

btn3.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

}

public void paintComponent(Graphics g) {

super.paintComponents(g);

g.drawImage(start,0,0,1400,1200,this);

}

public void Button() {

add(btn1);

add(btn2);

add(btn3);

btn1.setBounds(575,350,200,100);

btn2.setBounds(575,500,200,100);

btn3.setBounds(575,650,200,100);

btn1.setFont(f);

btn2.setFont(f);

btn3.setFont(f);

}

}

public static void main(String[]args) {

new Game_Start();

}

}

package game;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.Random;

import javax.swing.*;

public class Operation extends JFrame {

public Operation() {

setSize(1400,1200);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setResizable(false);

setLocationRelativeTo(null);

setTitle("贪吃蛇小游戏");

add(new Panel());

}

public class Panel extends JPanel implements ActionListener, KeyListener {

Image up = (new ImageIcon("src/icon/up.png")).getImage();

Image down = (new ImageIcon("src/icon/down.png")).getImage();

Image left = (new ImageIcon("src/icon/left.png")).getImage();

Image right = (new ImageIcon("src/icon/right.png")).getImage();

Image body = (new ImageIcon("src/icon/body.png")).getImage();

Image food = (new ImageIcon("src/icon/food.png")).getImage();

Image gamebg = (new ImageIcon("src/icon/gamebg.jpg")).getImage();

String fx;

boolean isStart = false;

boolean isOver = false;

int len;

int[]snakex = new int[1400];

int[]snakey = new int[1200];

Timer timer = new Timer(100,this);

int foodx;

int foody;

Random random = new Random();

int score = 0;

public Panel() {

Snake();

timer.start();

this.setFocusable(true);

this.addKeyListener(this);

}

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(Color.ORANGE);

g.setFont(new Font("黑体",Font.BOLD,70));

g.drawImage(gamebg,0,0,1400,1200,this);

if(fx == "U") {

g.drawImage(up, snakex[0], snakey[0], 50, 50, this);

}else if(fx == "D"){

g.drawImage(down, snakex[0], snakey[0], 50, 50, this);

}else if(fx == "L") {

g.drawImage(left, snakex[0], snakey[0], 50, 50, this);

}else if(fx == "R") {

g.drawImage(right, snakex[0], snakey[0], 50, 50, this);

}

for(int i = 1;i

g.drawImage(body,snakex[i],snakey[i],50,50,this);

}

g.drawImage(food, foodx, foody, 30, 30, this);

g.drawString("分数: "+score, 1000, 100);

if(isStart == false) {

g.drawString("按下空格键开始游戏",380,600);

}

if(isOver == true) {

g.drawString("按下空格键开始游戏", 380, 600);

}

}

public void Snake() {

len = 3;

fx = "R";

score = 0;

snakex[0] = 200;

snakey[0] = 40;

snakex[1] = 160;

snakey[1] = 40;

snakex[2] = 120;

snakey[2] = 40;

foodx = 40*random.nextInt(31);

foody = 40*random.nextInt(28);

}

public void actionPerformed(ActionEvent e) {

if(isStart&&!isOver) {

for(int i = len-1;i>0;i--) {

snakex[i] = snakex[i-1];

snakey[i] = snakey[i-1];

}

if(snakex[0] == foodx && snakey[0] == foody) {

len++;

score++;

foodx = 40*random.nextInt(31);

foody = 40*random.nextInt(28);

for(int i = len-1;i>0;i--) {

snakex[i] = snakex[i-1];

snakey[i] = snakey[i-1];}

}

if(fx == "R") {

snakex[0] += 40;

}else if(fx == "L") {

snakex[0] -= 40;

}else if(fx == "U") {

snakey[0] -= 40;

}else if(fx == "D") {

snakey[0] += 40;

}

for(int i = 1;i

if(snakex[i] == snakex[0] && snakey[i] == snakey[0]||snakex[0]>1380||snakex[0]<0|| snakey[0]<0 || snakey[0]>1120) {

isOver = true;

}

}

repaint();

}

timer.start();

}

public void keyPressed(KeyEvent e) {

int keyCode = e.getKeyCode();

if(keyCode == KeyEvent.VK_SPACE) {

if(isOver) {

isOver = false;

Snake();

}

isStart = !isStart;

repaint();

}else if (keyCode == KeyEvent.VK_LEFT && fx! = "R"){

fx="L";

}else if (keyCode == KeyEvent.VK_DOWN && fx! = "U"){

fx = "D";

}else if(keyCode == KeyEvent.VK_UP && fx! = "D") {

fx = "U";

}else if(keyCode == KeyEvent.VK_RIGHT && fx! = "L") {

fx = "R";

}

}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent e) {

}

}

}

贪吃蛇小游戏代码html,自制贪吃蛇小游戏代码相关推荐

  1. 【机器视觉案例】(12) 自制AI视觉小游戏--贪吃蛇,附python完整代码

    各位同学好,今天和大家分享一下如何使用 mediapipe+opencv 自制贪吃蛇小游戏.先放张图看效果. 规则:食指指尖控制蛇头,指尖每接触到黄色方块,计数加一,蛇身变长,方块随机切换位置.如果指 ...

  2. python100行代码-怎样写贪吃蛇小游戏?用100行python代码轻松解决!

    大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个简易版的贪吃蛇.在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比较短, ...

  3. Pygame实战项目:用300行代码写出贪吃蛇小游戏

    贪吃蛇是一款逻辑清晰.操作简单.老少咸宜.备受欢迎的休闲小游戏. 下面就给大家介绍一下贪吃蛇游戏的基本原理,以及实现贪吃蛇所需要的相关方法. 一.主要思路 我们的贪吃蛇游戏将主要包括三个核心模块,分别 ...

  4. python界面小游戏贪吃蛇_用Python实现童年贪吃蛇小游戏功能的实例代码

    贪吃蛇作为一款经典小游戏,早在 1976 年就面世了,我最早接触它还是在家长的诺基亚手机中. 尽管贪吃蛇的历史相对比较久远,但它却有着十分顽强的生命力,保持经久不衰,其中很重要的原因便是游戏厂家不断的 ...

  5. python50行小游戏_50行python代码实现的贪吃蛇小游戏

    50行python代码实现的贪吃蛇小游戏 发布于 2014-09-01 21:26:24 | 1337 次阅读 | 评论: 1 | 来源: 网友投递 Python编程语言Python 是一种面向对象. ...

  6. c++代码轻松实现贪吃蛇小游戏

    1.游戏描述 贪吃蛇可谓是从小玩到大的经典趣味小游戏,蛇每吃到一次食物,身体就会长一节,如果撞到墙或者撞到自身,游戏结束. 2.代码实现 1.首先需要思考的问题是如何指定位置输出字符?这时候就有一个非 ...

  7. java小游戏代码压缩包_java 贪吃蛇小游戏 源码下载

    [实例简介] 使用java程序设计语言制作的一个贪吃蛇小游戏.游戏的控制模块应该做到易懂.易操作,以给玩家一个很好的游戏环境.在这个游戏的设计中,牵涉到图形界面的显示与更新.数据的收集与更新,还要应用 ...

  8. 用unity开发贪吃蛇,勾起我童年乐趣的小游戏

    首先理一下贪吃蛇游戏思路: 1.首先建立好两个场景中的各种按键,图标. 2.设置蛇头:蛇头的移动,蛇头移动过程中的旋转问题.蛇头与其他物体发生碰撞时的触发. 3.食物的制作:因为食物是随机在场景中生成 ...

  9. 利用Python自制贪吃蛇游戏

         作者:丹枫无迹   来源:大龄码农的Python之路 在开始今天的正文前,首先为大家推荐一本关于数据产品经历不错的书籍: 一.游戏介绍 贪吃蛇是个非常简单的游戏,适合练手.先来看一下我的游戏 ...

最新文章

  1. 2011年工作总结和展望(上篇)
  2. HDU3208(区间指数和)
  3. 通过CISA的一些经验分享(原文写于09年)
  4. 【CCCC】L3-014 周游世界 (30分),,DFS搜索最短路,路径打印
  5. 小米手机用什么蓝牙耳机好?高颜值游戏专属蓝牙耳机推荐
  6. 在国内程序员是吃青春饭的职业吗?
  7. vs2008 sp1 regex
  8. 微信小程序云开发入门详细教程
  9. 有关错误:buffer i/o error on device fd0,logical block 0
  10. 使用PLC-Recorder快速连接PLC记录数据
  11. [-NDK 导引篇 -] 在NDK开发之前你应知道的东西
  12. 为什么word文档在前面打字会把后面的文字覆盖掉?
  13. 教你在CorelDRAW中制作水印
  14. Project中最常用的注意点
  15. Flask 学习-9. 开启调试模式(debug模式)的2种方法
  16. python 爬虫保存封面_Python爬虫Demo--获取网易云音乐专辑封面
  17. ThinkCMF框架任意内容包含漏洞
  18. 屏蔽浏览器f1帮助,启用自己的帮助
  19. PDF转CAD后比例不对怎么办
  20. 使用邮箱地址标识用户

热门文章

  1. Python采集黄色软件剧本杀数据并做可视化
  2. 猎豹移动2016研发工程师笔试题
  3. Python中Gradient Boosting Machine(GBM)调参方法详解
  4. Mac安装淘宝镜像权限问题的解决方式
  5. python爬取饿了么外卖商家销量_如何让外卖店铺销量达到9999+
  6. 智慧食堂真稳住了吗?你可千万别错过了
  7. hive学习(5)--- Partitions分区的使用(包括动态分区)
  8. 性能之Hibernate大批量保存数据优化
  9. IDRISI Andes V15.0 (交互式GIS和影像处理)\
  10. 电效应和普朗克常量的测定