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

当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);//绘制结束页面

}

游戏结束

相关推荐
想你依然心痛15 小时前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与HMAF的“鸿蒙代码导师“——PC端AI智能体沉浸式编程学习系统
人工智能·学习·harmonyos
玄米乌龙茶12315 小时前
LLM 应用开发学习笔记:RAG 评估、参数调优与 Transformer 注意力机制
笔记·学习
吃好睡好便好16 小时前
在Matlab中绘制三维直方图
开发语言·学习·算法·matlab·信息可视化
大志若愚YYZ16 小时前
FreeRTOS中的两个Delay函数(vTaskDelay vs vTaskDelayUntil)
学习
烤麻辣烫16 小时前
计算机思维--经典互联网应用
开发语言·学习·搜索引擎·数据库开发
a588081116 小时前
Win10/11能玩暗黑破坏神1,经典游戏回复,详细安装教程,附下载安装包
游戏
wuxinyan12316 小时前
工业级大模型学习之路018:LangChain零基础入门教程(第一篇):LangChain架构与生态介绍
人工智能·python·学习·langchain
Jackyzhe16 小时前
从零学习Kafka:调优
分布式·学习·kafka
噜噜噜阿鲁~16 小时前
python学习笔记 | 11.0、面向对象高级编程
笔记·python·学习
暗冰ཏོ16 小时前
PHP 全栈开发学习手册:从基础到高级实战、Laravel、Redis、面试题完整版
学习·php·laravel