wpf写的。主要是Canvas做画布 和类似的Rectangle的自定义类
采用了画面帧的思想,子弹 坦克移动 效果 都是 在主界面用一个定时器 循环,每秒60帧,这样做的好处,对比我之前做的炸弹人游戏,炸弹人是一个敌人一个移动线程,放的每颗炸弹定时爆炸也是一个线程,所以界面有好多对象,就有好多线程在运行,而采用画面帧的思想,就一个线程,搞定所有的动效,虽然 每秒运行60次,但是大大减少了线程数量。
 
 
地图有一个地图编辑器,不同颜色代表不同的砖块类型,白色为删除当前砖块,保存的时候把坐标点集合导成json,然后启动游戏时加载,加载时,把打砖块分成10个小砖块。

敌方坦克的移动方法是,判断当前地方坦克四周是否是可移动的坐标点,如果是,加入到一个数组中,然后从数组中随机一个点,最后把坦克移动到那个点。
 
游戏中的移动物体 是 来自于 复制 Rectangle的部分代码,继承Shape,然后写一个 子弹 地方坦克 玩家坦克 的父类。官方自带的类库里的Rectangle不能继承,sealead 关键字 密封了的。虽然官方也不赞同复制Rectangle的源码来作为自己的对象,但这却是我认为最快速的方法。
 
目前 只实现了 碰撞,子弹消砖块 移动 爆炸 坦克死亡 移动音效 打砖块音效 玩家发子弹音效这些基本功能。
代码写的十分混乱,只图快速完成。
如果要代码可以评论留言。

TankWarWPFUI_V2.zip

代码写得十分的烂,主要是实现思路。

C# WPF 坦克大战的更多相关文章

  1. 3D坦克大战游戏源码

    3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...

  2. 【blade04】用面向对象的方法写javascript坦克大战

    前言 javascript与程序的语言比如C#或者java不一样,他并没有“类”的概念,虽然最新的ECMAScript提出了Class的概念,我们却没有怎么用 就单以C#与Java来说,要到真正理解面 ...

  3. 3D坦克大战游戏iOS源码

    3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...

  4. 坦克大战,看你能坚持几秒 ~~Duang~~Duang

    闲来无事,写了一个坦克大战的小游戏,打开页面就能看到源码,代码还没有来得及整理.大家闲来玩玩吧,看谁玩的时间长! http://xiaohaibaomu.com/home/index

  5. FC 坦克大战 老巢铁墙

    老巢外围铁墙E2A9:AC 80 EFEF80:A5 10 85 45 A5 45 AC D2 E2 用十六进制编辑器打开坦克大战的游戏文件搜索A5 45 F0 25 A5 0B改为AC 80 EF ...

  6. nyoj 284 坦克大战 简单搜索

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=284 题意:在一个给定图中,铁墙,河流不可走,砖墙走的话,多花费时间1,问从起点到终点至少 ...

  7. nyoj-----284坦克大战(带权值的图搜索)

    坦克大战 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 Many of us had played the game "Battle city" ...

  8. [置顶] 小强的HTML5移动开发之路(9)——坦克大战游戏3

    上一篇我们创建了敌人的坦克和自己的坦克,接下来就应该让坦克发子弹了,我们下面来看一下如何让我们的坦克发出子弹. 前面我们用面向对象的思想对Tank进行了封装,又利用对象冒充实现了我们的坦克和敌人的坦克 ...

  9. javascript 面向对象制作坦克大战 (一)

    PS:这个坦克大战是在网上下的一段源码之后,自己进行的重写.   写这个的目的是为了巩固自己这段时间对js的学习.整理到博客上,算是对自己近端时间学习js的一个整理. 同时也希望可以帮助到学习js的园 ...

  10. 【java版坦克大战---准备篇】 java 绘图

    要写坦克大战当然要先画出坦克.java画图是基础. package com.game; import java.awt.*; import javax.swing.*; public class Pr ...

随机推荐

  1. Qt 实现涂鸦板三:实现鼠标绘制矩形

    .h 文件 #pragma once #include <QtWidgets/QWidget> #include "ui_xuexi.h" #include " ...

  2. MogDB/openGauss 自定义snmptrapd告警信息

    MogDB/openGauss 自定义 snmptrapd 告警信息 在实际使用中,默认的报警规则信息并不能很好的满足 snmp 服务端的需求,需要定制化报警信息,这里以添加 ip 为例,看似一个简单 ...

  3. 【鸿蒙千帆起】高德地图携手HarmonyOS NEXT,开启智能出行新篇章

    2024年1月18日下午,华为举办了鸿蒙生态千帆启航仪式,对外宣布HarmonyOS NEXT星河预览版现已开放申请,同时,首批200+鸿蒙原生应用加速开发,鸿蒙生态设备数量更是突破了8亿大关.这些进 ...

  4. HarmonyOS 自定义页面请求与前端页面调试

      一.自定义页面请求响应 Web组件支持在应用拦截到页面请求后自定义响应请求能力.开发者通过onInterceptRequest()接口来实现自定义资源请求响应 .自定义请求能力可以用于开发者自定义 ...

  5. sql 语句系列(两个日期之间)[八百章之第十七章]

    前言 进入了日期章了. 年月日加减法 分别对原有的日期进行加减法. sql server select DATEADD(DAY,-5,HIREDATE) as hd_mimus_5D, DATEADD ...

  6. 重新整理数据结构与算法(c#)——算法套路贪心算法[二十八]

    前言 贪心算法,记得学的时候还是大学的时候,再次来总结一下吧. 贪心算法并不是指具体的固定代码,而是指一种思路,加入我们每次都选最好的选择,那么很大可能会得到最好的结果. 题目: 正文 思路,加入把k ...

  7. 【Azure Developer】.Net 简单示例 "文字动图显示" Typing to SVG

    问题描述 看见一个有趣的页面,可以把输入的文字信息,直接输出SVG图片,还可以实现动图模式. 示例URL:  https://readme-typing-svg.demolab.com/?font=F ...

  8. Javscript数组的常用方法有哪些?

    数组基本操作可以归纳为 增.删.改.查,需要留意的是哪些方法会对原数组产生影响,哪些方法不会 下面对数组常用的操作方法做一个归纳 增 下面前三种是对原数组产生影响的增添方法,第四种则不会对原数组产生影 ...

  9. python websocket 参数

    websocket中就有建立连接connect.发送消息send等函数可供使用,但是websocket.WebSocketApp将这些都封装好了,只用在实例化的时候传入自定义函数即可,更方便.因此这里 ...

  10. 使用 Docker 部署 Draw.io 在线流程图系统

    1)介绍 Draw.io GitHub:https://github.com/jgraph/drawio Draw.io 是一款开源的绘制流程图的工具,拥有大量免费素材和模板.程序本身支持中文在内的多 ...