在此附上游戏画布的的代码及完成后的产品

package com.xiang.game.graph;import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Gauge;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.TextField;import com.xiang.game.api.object.Crawler;
import com.xiang.game.api.object.SingleNode;
import com.xiang.game.api.object.Snake;
import com.xiang.game.api.object.SnakeInit;
import com.xiang.game.util.GameConstant;
import com.xiangqi.control.Navigator;public class MyCanvas extends Canvas implements CommandListener {private Snake snake;private Crawler crawler;private static Displayable instance;//0表示还在游戏,1表示游戏失败结束,2表示游戏成功结束private int gameover = 0; TextField url = null;Gauge volume = null;private String gameoveralert = "";synchronized public static Displayable getInstance() {if (instance == null) {instance = new MyCanvas();}return instance;}private MyCanvas() {if(this.getWidth()/10 > this.getHeight()/10)GameConstant.mapSize =  this.getHeight()/10;elseGameConstant.mapSize =  this.getWidth()/10;setTitle("游戏");addCommand(new Command("规则介绍", Command.HELP, 1));addCommand(new Command("返回", Command.BACK, 1));setCommandListener(this);snake = SnakeInit.init();crawler = new Crawler(snake);//启动多线程drawSnakeByThread();}public void commandAction(Command c, Displayable d) {Navigator.flow(c.getLabel());}protected void keyPressed(int keyCode) {if(gameover!=1){if(getGameAction(keyCode) == Canvas.UP || getGameAction(keyCode) == Canvas.DOWN|| getGameAction(keyCode) == Canvas.LEFT || getGameAction(keyCode) == Canvas.RIGHT)if(!SnakeInit.ifGoingTouchTheSide(getGameAction(keyCode), snake)){//判断蛇不能往身体的反方向行走,true为反方向行走snake = SnakeInit.eatOrGo(snake, crawler, getGameAction(keyCode));}else{//碰到边界游戏结束gameover = 1;}repaint();}}protected void paint(Graphics g) {if(gameover == 0){g.setColor(255, 255, 255);g.fillRect(0,0,this.getWidth(),this.getHeight());g.setColor(0, 0, 0);for (int i = 0; i < GameConstant.mapSize + 1; i++) {// 绘制X线g.drawLine(0, i * GameConstant.singleSize, GameConstant.mapSize * GameConstant.singleSize, i* GameConstant.singleSize);// 绘制Y线g.drawLine(i * GameConstant.singleSize, 0, i * GameConstant.singleSize, GameConstant.mapSize* GameConstant.singleSize);}g.setColor(140, 101, 240);SingleNode[] snakeTemplate = snake.getSnakeTemplate();for (int i = 0; i < snakeTemplate.length; i++) {SingleNode singleNode = snakeTemplate[i];g.fillRect(singleNode.getxCoordinate() * 10 + 1, singleNode.getyCoordinate() * 10 + 1, 10 - 1, 10 - 1);}g.fillRect(crawler.getxCoordinate() * 10 + 1, crawler.getyCoordinate() * 10 + 1, 10 - 1, 10 - 1);}else {g.drawString(gameoveralert, 50, 50, 0);}}public void drawSnakeByThread(){Thread backgroundThread = new Thread(new Runnable() {public void run() {while(gameover == 0){if(!SnakeInit.ifGoingTouchTheSide(SnakeInit.getDirectionByNode(snake), snake)){//判断蛇不能往身体的反方向行走,true为反方向行走
//                              snake = SnakeInit.eatOrGo(snake, crawler, SnakeInit.getDirectionByNode(snake));int direction = SnakeInit.getDirectionByNode(snake);if(!SnakeInit.getIfGostraight(direction, snake)){if(SnakeInit.ifTouchTheCrawler(snake, crawler, direction)){snake = SnakeInit.eat(direction,snake);crawler = new Crawler(snake);}else {snake = SnakeInit.move(direction, snake);}}else{if(SnakeInit.ifTouchTheCrawler(snake, crawler, direction)){snake = SnakeInit.eat(direction,snake);}else{//如果为反方向,则直接保持前进方向,不做任何操作,由多线程操作移动
//                                      snake = SnakeInit.goStraight(snake);}}repaint();try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}if(snake.getSnakeTemplate().length == GameConstant.maxLength) gameover = 2;}else{//碰到边界游戏结束gameover = 1;}}if(gameover  == 1){gameoveralert = "游戏失败,下次再努力!";}else if(gameover == 2){gameoveralert = "恭喜你,成功过关!";}repaint();}}       );backgroundThread.start();}}

不懂得请详询  QQ:526151410;成品和源代码在附件里,源代码加密,请详询

利用J2ME制作的手机游戏----贪吃蛇相关推荐

  1. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)

    前言: 文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的. 据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个 ...

  2. Python制作当年第一款真正意义上的手机游戏——贪吃蛇游戏

    前言 最近有很多的同学问,能不能用Python做出一个小游戏来,而且最好要讲清楚每一段干嘛是用来干嘛的 那行,今天将来讲解一下用Python pygame做一个贪吃蛇的小游戏 据说是贪吃蛇游戏是197 ...

  3. Python制作游戏 — 贪吃蛇

    哈喽,我是小圆.我又来分享关于python制作的小游戏啦. 今天这个可是当年真正意义上的第一款手机游戏 - 贪吃蛇. ok,现在来讲解一下用python做这个游戏的所有步骤,超详解说 ! 据说是贪吃蛇 ...

  4. python贪吃蛇最简单代码_利用python实现简易版的贪吃蛇游戏(面向python小白)

    引言 作为python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序.以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world'). 这样做效率太低,正确的 ...

  5. 【从入门到入土系列】C语言制作小游戏-贪吃蛇:Copy+运行即可另附注释

    系列文章 本系列持续更新中,欢迎您的访问! 系列简介 本系列由唐文疏撰写,负责记录博主的学习生涯中的一点一滴.独乐乐不如众乐乐,故此分享给大家.欢迎大家一起讨论.学习和批评指点. 博主只是一个普普通通 ...

  6. 利用python实现简易版的贪吃蛇游戏(面向python小白)

    前言 这篇文章主要给大家介绍了关于如何利用python实现简易版的贪吃蛇游戏的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学 ...

  7. 【Python游戏】pygame模块制作飞机大战、贪吃蛇(多模式)含源码

    pygame模块制作飞机大战.贪吃蛇(多版本) 本章意在学习pygame模块以及巩固python语法. 若有需请转去个人github:https://github.com/onlyhyl/pyGame

  8. Python小游戏贪吃蛇

    欢迎大家访问我的个人博客:https://jmbaozi.top/ 我之前看到即友的一个结课作业,用python做了一个迷宫游戏,在这里放一下链接,感兴趣的可以去看看.当时我也想做一个,但是看了看源码 ...

  9. Win32小游戏--贪吃蛇

    近日里学习了关于win32编程的相关知识,利用这些知识制作了一款贪吃蛇小游戏,具体细节还是分模块来叙述 前期准备:在网上找到一些贪吃蛇的游戏素材图片,以及具体的逻辑框图 在正式写功能之前,先把一系列环 ...

最新文章

  1. Beta 冲刺 (1/7)
  2. 小白科普:Java EE vs J2EE vs Jakarta EE
  3. 切换账户、切换命令行和图形界面
  4. 成功在两台电脑上安装了spark集群,mark下
  5. JAVA链表返回子表_基于java的链表反转
  6. Git 的工作区、暂存区、版本库—— Git 学习笔记 15
  7. 【洛谷4389】付公主的背包(生成函数,多项式运算)
  8. 为什么c语言要定义变量,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  9. dbgrideh的功能
  10. “XEIM”国内开源即时通讯XEIM
  11. shell通过sshpass远程ssh执行命令
  12. rabbitmq视频教程,面试官:
  13. 中国三级流域空间分布数据/国家新区分布数据/NPP净初级生产力数据/植被覆盖空间分布数据/土地利用数据/NDVI数据/植被类型分布/土壤类型数据
  14. python超市管理系统实训报告_需求分析实验报告(小型超市管理系统)
  15. 【51单片机开发板】可调周期、占空比pwm工程
  16. Echarts制作标签云图
  17. ios点击推送闪退_苹果ios企业签名常见问题及解决方案总结,开发者必看!
  18. C/C++ libcurl CURLOPT_NOSIGNAL选项
  19. 第四批四川省工业产品绿色设计示范企业申报范围条件
  20. ClickHouse MergeTree表引擎和建表语句

热门文章

  1. linux系统中的清屏命令
  2. vue 时间戳转日期
  3. 2021-03-19SQL语句未正常结束
  4. 自定义Excle表头
  5. 千万注意!使用GetAsyncKeyState检测窗口按键时要检查是否为前端窗口!
  6. 一步步教你:如何用Qemu来模拟ARM系统
  7. CentOS7使用NTP进行时间同步
  8. Commonjs和Esmodule
  9. photoneo实例-PhoXi 3D Scanner L 机床上下料
  10. 703n各种救砖方法汇总