实现这个游戏的基本功能包含几个对象:玩家,怪物,墙砖,炸弹,通关的门。玩家通过上下左右方向键移动,放置炸弹,被怪物杀死,被炸弹炸死。怪物随机方向移动,能杀死玩家。炸弹有爆炸功能,炸弹的火花长度。通过的门就是一个坐标点。
 
实现这个游戏,最主要的我认为就是理解坐标点,其实很多判断比如 玩家死亡,通过,怪物移动,可移动路径其实都是判断坐标点来的。这个游戏作为消磨周末时间来做,还是能有成就感的,虽然用不上什么高级的知识,但能存粹的享受到编程带来的乐趣。我写代码有个缺点尤其是平时业余时间写的代码,只想实现自己心中所想,不会顾及代码质量,所以代码风格,代码清晰度都很差,我自认为重要的是,把心中想做的事能完成了,我都很满足了。但其实也只是实现了基本的功能。
 
炸弹爆炸 炸死玩家的思路是,获取玩家矩形的四个角的坐标点,判断这四个点是否在炸弹爆炸范围内。炸弹爆炸范围是矩形的集合,我可以循环这个爆炸矩形集合,然后把玩家的四个点依次判断是否在每次循环的炸弹矩形内就行了,百度可以搜索 判断点在不在矩形内,其实也就一句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. DS-Net:可落地的动态网络,实际加速1.62倍,快改造起来 | CVPR 2021 Oral

    论文提出能够适配硬件加速的动态网络DS-Net,通过提出的double-headed动态门控来实现动态路由.基于论文提出的高性能网络设计和IEB.SGS训练策略,仅用1/2-1/4的计算量就能达到静态 ...

  2. Luogu P3007 奶牛议会

    观前须知 本题解使用 CC BY-NC-SA 4.0 许可. 同步发布于 Luogu 题解区. 更好的观看体验 请点这里. 笔者的博客主页 正文 Luogu P3007 [USACO11JAN] Th ...

  3. jenkins 持续集成和交付——pipeline(五)

    前言 整理一下pipeline. 正文 介绍 什么是pipeline呢? 根据前面的所得,我们知道,以前都是模板形式,但是如果有些复杂的项目,需要用更加自定义的写法,那么就有了pipeline,也就是 ...

  4. aop 阶段性概况

    前言 对aop进行一个阶段性的总结. 正文 首先什么是aop呢? 那么首先看aop的解决什么样的问题. public class Program { public static void Main(s ...

  5. 力扣602(MySQL)-好友申请Ⅱ:谁有最多的好友(中等)

    题目: 在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请. RequestAccepted 表: (requester_id, accepte ...

  6. HarmonyOS NEXT应用开发案例——列表编辑实现

    介绍 本示例介绍用过使用ListItem组件属性swipeAction实现列表左滑编辑效果的功能. 该场景多用于待办事项管理.文件管理.备忘录的记录管理等. 效果图预览 使用说明: 点击添加按钮,选择 ...

  7. 基于SLS构建RDS审计合规监控

    简介: 数据库是企业业务的数据核心,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源.因此,对数据库的操作行为尤其是全量 SQL 执行记录的审计日志,就显得尤为重要. 背景 数据库是企业业务 ...

  8. [Unreal] 虚拟现实理论与最佳实践

    优秀的虚拟现实场景所需要具备的特点: 真实感.沉浸感.舒适性.流畅性. VR的这些特点上有其它媒体所不具备的优势,主要通过硬件来实现. VR 的沉浸感让用户置身于周围世界,也引发了一些独特的症状: 眼 ...

  9. [Go] godoc 打开本地文档, windows 同样适用

    godoc 提供了在无网环境下 浏览官方文档的便利. 示例: $ go get golang.org/x/tools/cmd/godoc $ godoc -http=localhost:6060 Li ...

  10. [PHP] composer, PHP Fatal error: Allowed memory size of xx bytes exhausted

    终端执行 composer 命令时经常会遇到内存不够的情况. 视情况升级一下 composer,使用 composer self-update. 默认 php 的内存限制是 128M,临时取消 php ...