实现这个游戏的基本功能包含几个对象:玩家,怪物,墙砖,炸弹,通关的门。玩家通过上下左右方向键移动,放置炸弹,被怪物杀死,被炸弹炸死。怪物随机方向移动,能杀死玩家。炸弹有爆炸功能,炸弹的火花长度。通过的门就是一个坐标点。
 
实现这个游戏,最主要的我认为就是理解坐标点,其实很多判断比如 玩家死亡,通过,怪物移动,可移动路径其实都是判断坐标点来的。这个游戏作为消磨周末时间来做,还是能有成就感的,虽然用不上什么高级的知识,但能存粹的享受到编程带来的乐趣。我写代码有个缺点尤其是平时业余时间写的代码,只想实现自己心中所想,不会顾及代码质量,所以代码风格,代码清晰度都很差,我自认为重要的是,把心中想做的事能完成了,我都很满足了。但其实也只是实现了基本的功能。
 
炸弹爆炸 炸死玩家的思路是,获取玩家矩形的四个角的坐标点,判断这四个点是否在炸弹爆炸范围内。炸弹爆炸范围是矩形的集合,我可以循环这个爆炸矩形集合,然后把玩家的四个点依次判断是否在每次循环的炸弹矩形内就行了,百度可以搜索 判断点在不在矩形内,其实也就一句if判断。
判断炸弹炸死怪物的思路也是一样的。不同的是,炸弹和怪物长宽一样,而玩家的长和宽要小些,判断稍微有点区别。
 
怪物杀玩家的思路 是判断坐标点相同就可以了。
 
玩家移动的思路是键盘按下打开移动定时器,键盘抬起,关闭移动定时器。
 
怪物移动的思路是把怪物临近的上下左右四个方向的通路加入集合 然后随机选一个通路移动,然后移动到这个被随机到的通路后,在进行下一次的临近通路判断。
 
我这个花最长时间是花在了玩家在移动过程中 判断临近的四个方向是否可走上,因为我这个玩家对象的长和宽都小于砖块的长宽,所以判断上有难度。
 
最后,我发现这个winform在界面渲染上,没有像web里的css一样有层叠样式之说,所以当人物 炸弹 火花 怪物 门相互重叠时,就会发生正在移动的对象,会把不动的对象给挡住,因为移动的对象是会调用绘制事件的,所以移动的对象能显示,但是被压住的对象就只能被遮挡了。我感觉想要解决这个问题,对于我来讲,不直到怎么做更好,不过有个折中办法,控件相互堆叠时,把静态的对象隐藏掉,到运动对象传过去后,在显示出来。
 
下载:

Game.BoomerManUI.zip

 

C# 炸弹人 winform版的更多相关文章

  1. RDIFramework.NET V3.3 WinForm版角色授权管理新增角色对操作权限项、模块起止生效日期的设置

    在实际应用在我们可能会有这样的需求,某个操作权限项(按钮)或菜单在某个时间范围内可以让指定角色访问.此时通过我们的角色权限扩展设置就可以办到. 在我们框架V3.3 WinForm版全新增加了角色权限扩 ...

  2. 任务驱动,Winform VS WEB对比式学习.NET开发系列第一篇------身份证解析(不断更新的WEB版本及Winform版本源码)

    一 本系列培训随笔适用人群 1. 软件开发初学者 2. 有志于转向Web开发的Winform程序员 3. 想了解桌面应用开发的Web程序员 二 高效学习编程的办法 1 任务驱动方式学习软件开发 大部分 ...

  3. C# Winform版批量压缩图片程序

    需求 上周,领导给我分配了一个需求:服务器上的图片文件非常大,每天要用掉两个G的大小的空间,要做一个自动压缩图片的工具处理这些大图片.领导的思路是这样的: 1)打开一个图片,看它的属性里面象素是多少, ...

  4. RDIFramework.NET开发框架WinForm版新增编码管理

    1.概述 编码管理是企业管理和信息化建设过程中一个至关重要的环节.各信息化系统是通过编码来标识业务对象的,统一的编码方案可以作为各系统的通话语言,也可以为信息化系统的集成提供便利.建设数据编码的基本原 ...

  5. RDIFramework.NET WinForm版新增通知公告、系统新闻模块

    1.系统新闻功能描述 系统新闻模块,用户可以根据实际情况做相应应用,如用在内部业务系统的展示中或网站上新闻的展示.新闻可以分类进行管理,非常的实用.系统新闻管理主要分为添加.修改.删除与移动系统新闻. ...

  6. RDIFramework.NET WinForm版新增报表管理功能模块

    在Web版本中有报表管理功能模块,非常实用的功能,重量级推荐.在WinForm应用中,我们也增加了支持."报表管理"模块主要用于对日常常用的报表做定制展示,可以自动发布到模块,同时 ...

  7. winform版弹框操作

    公共弹框帮助类操作手册 1.说明 封装了对于winform操作的一些提示框,包括数据加载耗时的时候,提示数据正在加载,请稍后的提示窗体,动态提示给用户一些有用的信息.例如网吧里面续费提醒等. 2.操作 ...

  8. C# winform版 nbtstat

    参考:http://www.cnblogs.com/geqinggao/archive/2013/01/21/2869644.html 一.nbtstat命令 显示基于 TCP/IP 的 NetBIO ...

  9. 用C#开发一个WinForm版的批量图片压缩工具

    我们在实际项目开发过程中,曾经遇到过一个需求,就是要开发一个对大量图片进行整理(删除掉一些不符合要求的图片).归类(根据格式进行分类,比如jpg格式.bmp格式等).压缩(因为有的图片很大很占空间,看 ...

  10. RDIFramework.NET V3.3 WinForm版新增订单管理主从表事例

    功能描述 无论什么系统,除了常规的单表处理外,主从表的应用都是非常普遍的,RDIFramework.NET V3.3 WinForm版本中新增了一个主从表的事例供大家参考.主从表的界面设计大同小异,主 ...

随机推荐

  1. Python 爬虫初探

    准备部分 0x01 爬虫的简介和价值 a. 简介 自动抓取互联网数据的程序,是基础技术之一 b. 价值 快速提取网络中有价值的信息 0x02 爬虫的开发环境 a. 环境清单 Python3.7 开发环 ...

  2. EDA(Exploratory Data Analysis)数据探索性分析

    EDA目的:通过了解数据集的分布情况,数据之间的关系,来帮我们更好的后期进行特征工程和建立模型. 本文主要是一个根据coco数据集格式的json文件,来分析数据集中图片尺寸,宽高比,bbox尺寸,宽高 ...

  3. three.js实现数字孪生3D仓库一期(开源)

    大家好,本文使用three.js实现了3D仓库一期项目,给出了代码,分析了关键点,感谢大家~ 关键词:数字孪生.three.js.Web3D.WebGL.智慧仓库.开源 代码:Github 我正在承接 ...

  4. dbeaver导出结果集中乱码

    重要的一步 需要点击

  5. All in one:如何搭建端到端可观测体系

    ​简介:一文看懂可观测! 作者:西杰 & 白玙 可观测的前生今世 系统的可观测与故障可分析作为系统运维中重要的衡量标准,随着系统在架构.资源单位.资源获取方式.通信方式演进过程,遇到了巨大挑战 ...

  6. 京东:Flink SQL 优化实战

    简介: 本文着重从 shuffle.join 方式的选择.对象重用.UDF 重用等方面介绍了京东在 Flink SQL 任务方面做的优化措施. 本文作者为京东算法服务部的张颖和段学浩,并由 Apach ...

  7. [GPT] 如何配置抓包工具以解密HTTPS流量才能看到明文的域名地址

    要配置抓包工具以解密HTTPS流量,您需要执行以下步骤: 1. 安装抓包工具:首先,确保您已经安装了支持HTTPS解密的抓包工具,例如Wireshark. 2. 获取SSL证书:抓包工具需要使用目标网 ...

  8. JavaScript数组Array方法介绍,使用示例及ES6拓展

    数组定义 有次序和编号的一组值 类似数组对象 函数agruments对象,字符串,DOM元素集 实例属性 Array.prototype.length length可以赋值,用以改变数组长度 arr. ...

  9. netcore依赖注入通过反射简化

    aspnetcore里面用到许多的service,好多业务代码都要通过Service.AddScoped.Singleton.Transient等注入进去,类太多了写起来和管理起来都很麻烦,所以借鉴了 ...

  10. vue关于this.$refs.tabs.refreshs()刷新组件,缓存

    当更改了用户信息后,需要刷新页面或者组件. 1.当前组件刷新.定义一个请求用户信息的方法,在需要时调用: sessionStorage.setItem('userInfo',JSON.stringif ...