当前位置: 首页 > news >正文

绿色蔬菜网站模板如何查询网站快照

绿色蔬菜网站模板,如何查询网站快照,朋友圈的广告推广怎么弄,房地产公司网站模板前言: 许多游戏都可以通关胜利,但是贪吃蛇不一样。贪吃蛇,因贪而生,因贪而亡。人生也是一样,千万不要倒在“贪”字上。 游戏Java知识:变量、数据类型、判断语句、循环结构、类的继承、简单窗口创建、图形…

前言:

许多游戏都可以通关胜利,但是贪吃蛇不一样。贪吃蛇,因贪而生,因贪而亡。人生也是一样,千万不要倒在“贪”字上。

游戏Java知识:变量、数据类型、判断语句、循环结构、类的继承、简单窗口创建、图形图片的绘制、双缓存、鼠标事件、键盘事件

代码运行环境:jdk-14.0.2

主要功能:

1.按空格键开始游戏、暂停游戏或重新开始游戏

2.方向键控制蛇移动方向。w,a,s,d

3.蛇吃掉食物可以增长,并添加游戏分数(不会加快游戏速度)。

4.蛇咬到自己会结束游戏

5.蛇撞到游戏区域外会自动从对面过来。

游戏素材包:

游戏代码框架:

游戏代码:

1.GameWin(窗口类):

package com.sxt;import Obj.BodyObj;
import Obj.FoodObj;
import Obj.HeadObj;import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;public class GameWin extends JFrame {//游戏状态 0未开始 1游戏中 2暂停 3失败 4通关 5.失败后重新开始public static int state = 0;//分数public  int score = 0;//定义双缓存的图片Image offScreenImage = null;//窗口宽高int winWidth = 800;int winHeight = 600;//蛇头的对象HeadObj headObj = new HeadObj(GameUtils.rightImg, 60, 570, this);//蛇身的集合public List<BodyObj> bodyObjsList = new ArrayList<>();//食物public FoodObj foodObj = new FoodObj().getFood();public void launch() {//设置窗口是否可见this.setVisible(true);//设置窗口的大小this.setSize(winWidth, winHeight);//设置窗口的位置在屏幕上居中this.setLocationRelativeTo(null);//设置窗口的标题this.setTitle("贪吃蛇");//蛇身初始化bodyObjsList.add(new BodyObj(GameUtils.bodyImg, 30, 570, this));bodyObjsList.add(new BodyObj(GameUtils.bodyImg, 0, 570, this));//键盘事件this.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_SPACE) {switch (state) {case 0://未开始state = 1;break;case 1://游戏中state = 2;repaint();break;case 2://游戏暂停state = 1;break;case 3://失败后重新开始state = 5;break;default:break;}}}});while (true) {if (state == 1) {//游戏中才调用repaint();}//失败重启if (state == 5) {state = 0;resetGame();}//线程休眠try {//1秒1000毫秒Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}}@Overridepublic void paint(Graphics g) {//初始化双缓存图片if (offScreenImage == null) {offScreenImage = this.createImage(winWidth, winHeight);}//获取图片对应的grapics对象Graphics gImage = offScreenImage.getGraphics();//灰色背景gImage.setColor(Color.gray);gImage.fillRect(0, 0, winWidth, winHeight);//网格线gImage.setColor(Color.BLACK);//for循环横线for (int i = 0; i <= 20; i++) {//横线gImage.drawLine(0, i * 30, 600, i * 30);//竖线gImage.drawLine(i * 30, 0, i * 30, 600);}//绘制蛇身for (int i = bodyObjsList.size() - 1; i >= 0; i--) {bodyObjsList.get(i).paintSelf(gImage);}//绘制蛇头headObj.paintSelf(gImage);//食物绘制foodObj.paintSelf(gImage);//绘制分数GameUtils.drawWord(gImage, score + "分", Color.BLUE, 50, 650, 300);//绘制提示语gImage.setColor(Color.gray);prompt(gImage);//将双缓存图片绘制到窗口中g.drawImage(offScreenImage, 0, 0, null);}//绘制提示语void prompt(Graphics g) {//未开始if (state == 0) {g.fillRect(120, 240, 400, 70);GameUtils.drawWord(g, "按下空格开始游戏", Color.yellow, 35, 150, 290);}//游戏暂停if (state == 2) {g.fillRect(120, 240, 400, 70);GameUtils.drawWord(g, "游戏暂停", Color.yellow, 35, 150, 290);}//游戏失败if (state == 3) {g.fillRect(120, 240, 400, 70);GameUtils.drawWord(g, "咬到自己,游戏失败", Color.red, 35, 150, 290);}//通关if (state == 4) {g.fillRect(120, 240, 400, 70);GameUtils.drawWord(g, "达成条件,游戏通关", Color.green, 35, 150, 290);//游戏暂停if (state == 2) {g.fillRect(120, 240, 400, 70);GameUtils.drawWord(g, "游戏暂停", Color.yellow, 35, 150, 290);}}}//游戏重置void resetGame() {//关闭当前窗口this.dispose();//开启新窗口String[] args = {};main(args);}public static void main(String[] args) {GameWin gameWin = new GameWin();gameWin.launch();}
}

2.GameUtils(工具类):

package com.sxt;import java.awt.*;//工具类
public class GameUtils {//图片的种类//蛇头public static Image upImg = Toolkit.getDefaultToolkit().getImage("img/up.png");public static Image downImg = Toolkit.getDefaultToolkit().getImage("img/down.png");public static Image leftImg = Toolkit.getDefaultToolkit().getImage("img/left.png");public static Image rightImg = Toolkit.getDefaultToolkit().getImage("img/right.png");//蛇身public static Image bodyImg = Toolkit.getDefaultToolkit().getImage("img/body.png");//食物public static Image foodImg = Toolkit.getDefaultToolkit().getImage("img/food.png");//绘制文字public static void drawWord(Graphics g, String str, Color color, int size, int x, int y) {g.setColor(color);g.setFont(new Font("仿宋", Font.BOLD, size));g.drawString(str, x, y);}
}

http://www.yayakq.cn/news/147234/

相关文章:

  • 做阿里网站的分录有限责任公司怎么注册
  • 最专业的网站建设团队网站搭建怎么弄的
  • 有没有做公章的网站白杨seo课程
  • 建设论坛网站用什么cms上海珍岛做网站怎么样
  • 免费建设游戏对战平台网站wordpress自己写代码
  • flex 做网站石家庄建站模板
  • 比较好的网站开发公司制作企业网站多少钱
  • 优秀企业网站建设漳州做网站制作
  • 低价网站制作企业宁浩wordpress
  • 做公益网站需要什么资质深圳网站优化方式
  • 网站后台制作品牌网站案例
  • 大连网站网页设计公司企业网站营销的典型案例
  • 网站建设方案书 腾讯松江品划网站建设维护
  • 电商网站开发会遇到哪些问题山东君天建设工程有限公司网站
  • 汕头网站安全开发系统wordpress free template
  • 网站建设推广专家服务兰州企业网络优化方案
  • php美食网站开发的意义做网站容易吧
  • 电商网站建设规划东莞市国外网站建设报价
  • 要想用谷歌访问外国网站怎么做wordpress制作公司
  • 溧阳 招网站开发建设报名系统
  • 太仓做网站济南官网
  • 优推宝可以做自己网站吗免费数据网站
  • wordpress快速建站视频 wordpress
  • 小语种网站制作html网页模板大全
  • 自己做电影网站违法吗淘宝网站建设方式
  • 专门做库存处理的网站有什么网站可以接手工加工做
  • 做网站要注意什么问题长沙住房建设部网站
  • 如何做网站支付接口优秀网站
  • 设计师做网站效果图小程序短链接生成网址
  • 电子商业网站建设步骤做APP好还是建设网站好