基于C#弹幕类射击游戏的实现——(三)子弹的实现

本文介绍了如何在C#中实现弹幕类射击游戏的子弹功能。首先,将游戏中可显示的物体抽象为GameObject类,以便统一管理。接着,详细讲述了子弹的实现,包括以游戏中心为坐标原点,使用速度和加速度更新子弹位置,以及通过碰撞检测触发爆炸效果。最后,提出了子弹管理类的设计,用于存储和管理多个子弹实例,支持不同飞行轨迹和速度的子弹创建。
摘要由CSDN通过智能技术生成

我写博客喜欢做完一个东西,一口气写很多章。。。貌似这样不太好啊~


到这里,我们似乎该让主角上场了,好就让我们来显示一颗子弹吧~

慢着,显示子弹之前,我们需要小小的抽象一下,把游戏中所有能显示的物体抽象成GameObject,好处是什么?好处是看起来很帅。。

当然不是,好处简单来说,整合公共部分、利于管理~~好吧我也不知道好处。。。。

/// <summary>
	/// Description of GameObject.
	/// </summary>
	public class GameObject
	{
		public Vector2 Position;
		public Box BoxCollider;
		
		protected int Width;
		protected int Height;
		protected int HalfWidth;
		protected int HalfHeight;
		
		public GameObject()
		{
		}
		
		public virtual void Update(float elapsedTime)
		{
			
		}
		
		public virtual void Render(Graphics g)
		{
			
		}
	}

封装了一些基础属性和方法~~特别说明下:HalfWidth和HalfHeight只是用于计算的时候少一个除法,可以不需要的,后面的代码会看到

对了,特别说明下:一般的坐标系是以左上角为(0,0)点,向右为X正方向,向下为Y正方向。

而这个游戏是以屏幕的中间为远点,绘制图片的时候也是,以图片的中间为绘制点。。。至于为什么这样。。我当时脑抽了,忘了为什么了

接下来就是主角

/// <summary>
	/// Description of GameBullet.
	/// </summary>
	public class GameBullet : GameObject
	{
		public bool IsOwn; // 是否为自己的子弹
		public int Type; // 子弹样式
		public int Color; // 子弹颜色(0-6ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值