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

    1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是介绍如何在Visual S ...

  2. nginx重新整理——————http请求的11个阶段中的preaccess[十四]

    前言 简单整理一下preaccess. 正文 主要是介绍一下上文提及到的limit_req以及limit_conn. 里面是http_limit_conn_module 默认编译进去. 生效范围: 全 ...

  3. 力扣205(java)-同构字符串(简单)

    题目: 给定两个字符串 s 和 t ,判断它们是否是同构的. 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的. 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序 ...

  4. C++ 访问说明符详解:封装数据,控制访问,提升安全性

    C++ 访问说明符 访问说明符是 C++ 中控制类成员(属性和方法)可访问性的关键字.它们用于封装类数据并保护其免受意外修改或滥用. 三种访问说明符: public:允许从类外部的任何地方访问成员. ...

  5. 【Serverless实战】B站每日自动签到&&传统单节点网站的Serverless上云

    简介: Serverless好哇!这里将针对个人与生产两个应用方向的测评 使用Serverless实现自动获取每日B站的经验值,让你更快冲到LV6! 你的业务站点还是一台服务器All in One吗? ...

  6. 耗时又繁重的SQL诊断优化,以后就都交给数据库自治服务DAS吧!

    在我们业务系统中,数据库越来越扮演着举足轻重的角色. 和其它公司一样,在阿里巴巴业务场景下,大部分业务跟数据库有着非常紧密的关系,数据库一个微小的抖动都有可能对业务造成非常大的影响, 如何让数据库更稳 ...

  7. Alibaba/IOC-golang 正式开源 ——打造服务于go开发者的IOC框架

    简介: IOC(inversion of control)即控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.IOC-golang 是一款服务于Go语言开发者的依赖注入框架 ...

  8. 如何使用Delta Lake构建批流一体数据仓库

    ​简介:Delta Lake是一个开源存储层,它为数据湖带来了可靠性.Delta Lake提供了ACID事务.可扩展的元数据处理,并统一了流式处理和批处理数据处理.Delta-Lake运行在现有数据湖 ...

  9. [FAQ] VsCode 同时多行编辑

      [多光标自定义编辑] 按住 alt 键,鼠标左键点击,出现多个光标. [批量选中匹配编辑] 鼠标选中字符,按快捷键 ctrl + shift + L,字符的右侧都出现光标,可同时编辑. Tool: ...

  10. [Go] 浅谈 Golang Chan 通信与死锁:all goroutines are asleep - deadlock

    Channel创建方式: var c1 chan [value type] c1 = make([channel type] [value type], [capacity]) [value type ...