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

    前面介绍了可以给 Git 设置全局提交人,这样当前电脑所有项目提交人都会变成设置的值. 但实际开发中有时候需要给不同项目设置不同提交人. 比如工作的项目是一个提交人,自己维护的开源项目又是另一个提交人 ...

  2. 直播预告丨Hello HarmonyOS进阶课程第三课——游戏开发实践

    为了帮助初识HarmonyOS的开发者快速入门,我们曾推出Hello HarmonyOS系列一共5期课程,从最基础的配置IDE和创建Hello World开始,详细介绍HarmonyOS基础.开发环境 ...

  3. mysql 重新整理——索引优化explain字段介绍一 [九]

    前言 在七种介绍了explain这东西,那么具体来看下它是如何来运行的吧. 正文 id 来看一条语句:EXPLAIN select * from departments,dept_emp,employ ...

  4. CTFshow命令执行29-123

    命令执行 WEB29 eval是php中执行以PHP脚本执行的命令 PHP命令可以执行脚本命令 本题使用方法是先 system(cp f*.php 1.txt) 然后访问1.txt WEB30 在PH ...

  5. Python 生成带Logo的圆角带边框二维码

    Python 生成二维码方式就不累述了,不会的自己百度吧 但python生成的二维码太难看了,要么没有logo,要么logo直接贴进去的,难看死了,有的也处理了一下,但没有圆角,也难看: 以下:是不是 ...

  6. 技术人如何"结构化"高效思考?

    1 前言 你是否在解决问题时,常常觉得脑子很乱,很多零散的信息迸发出来,但就是无法形成解决方案. 之所以这样,原因就在于,我们的大脑处理不了太多零散而复杂的信息.人类大脑在处理信息的时候,有两个规律: ...

  7. 【Oracle】使用PL/SQL快速查询出1-9数字

    [Oracle]使用PL/SQL快速查询出1-9数字 简单来说,直接Recursive WITH Clauses 在Oracle 里面就直接使用WITH result(参数)即可 WITH resul ...

  8. 日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践

    导读:当今生活节奏日益加快,企业面对不断增加的海量信息,其信息筛选和处理效率低下的困扰与日俱增.由于用户营销不够细化,企业 App 中许多不合时宜或不合偏好的消息推送很大程度上影响了用户体验,甚至引发 ...

  9. 评审恩仇录——IDE也能做代码评审?

    简介: 云效Codeup推出了本地IDE插件端的评审,免除了黄药师来回华山的奔波之苦 现代科技公司的同事们平日一起交流开发规约和产品需求,肩上共同扛着业务发展和同行竞争的压力,这份还书贻剑的情谊如何能 ...

  10. 一文理解 K8s 容器网络虚拟化

    简介:本文需要读者熟悉 Ethernet(以太网)的基本原理和 Linux 系统的基本网络命令,以及 TCP/IP 协议族并了解传统的网络模型和协议包的流转原理.文中涉及到 Linux 内核的具体实现 ...