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

项目-坦克大战学习-游戏结束

当boos受到伤害时游戏结束,游戏结束时我们需要将窗体全部绘制从别的画面,这样我们可以在游戏运行类中的update设置条件,在游戏运行类thread创建一个枚举类型定义是否游戏结束

public enum Game { play, over };//定义现在游戏运行状态

如果游戏没结束(play)或者游戏结束(over)运行不同的程序

if (game == Game.play)//如果没结束
{
    duixiangweizhi.update(); //每帧调用集合   
}
else if (game == Game.over) { duixiangweizhi.gameover(); }//如果结束调用绘制结束页面方法

我们需要在子弹类检测如果人机的子弹碰撞到boos那么就将游戏运行类的枚举类型修改为over

if (zd == zidanen.renji)//如果子弹是由人机发射出
{
    if (duixiangweizhi.boospengzhuang(rec)!=null)
    {
        duixiangweizhi.boom(boomx, boomy);//爆炸特效
        xiaohui = true;
        tankthread.game = tankthread.Game.over;
    }
}

然后定义一个可调用的方法,在游戏结束后绘制结束界面

首先定义一个画布变量获取到当前窗体画布

public static Graphics g=tankthread.g;

在在开始我们就将游戏运行类的画布变量获取到窗体画布了,所以这里直接赋值就可以

然后在方法中绘制游戏结束页面,顺便调整绘制位置保证结束页面在窗体中心

 public static void gameover()//游戏结束
 {
     int x = 450 / 2 - Resources.GameOver.Width / 2;
     int y =450/2-Resources.GameOver.Height / 2;
     g.DrawImage(Resources.GameOver, x, y);//绘制结束页面
 }

游戏结束


http://www.kler.cn/news/335537.html

相关文章:

  • 深入剖析 Golang 的错误处理机制:让你的代码更加健壮与优雅
  • pillow常用知识
  • Leetcode 1631. 最小体力消耗路径
  • SpringBoot实现:校园资料分享平台开发指南
  • STM32重启源深度解析
  • Vite多环境配置与打包:
  • 题解:SP1741 TETRIS3D - Tetris 3D
  • AVL树的实现
  • 【LeetCode-热题100-128题】官方题解好像有误
  • Django学习笔记五:templates使用详解
  • 二叉搜索树(c++版)
  • No module named ‘_ssl‘
  • 通信工程学习:什么是B/S浏览器服务器模式
  • 内网穿透工具ngrok
  • 彻底释放服务器空间:多用户环境下Anaconda共享与优化指南
  • YOLOv7改进:Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU
  • 【颜色平衡树 / E】
  • 【ubuntu】Ubuntu20.04安装中文百度输入法
  • 力扣刷题 | 两数之和
  • web网页项目--用户登录,注册页面代码