项目-坦克大战笔记-子弹的生成

子弹的生成就像人机的生成一样,只不过没那么多种类的图片对象,而且不用设置初始方向,但是需要对子弹进行分类成wanjia和renji,在创建子弹的时候将方向传参就行了

首先在zidan类写一个枚举类型定义子弹的标签

enum zidanen

{

wanjia, renji

}

然后在zidan类写一个构造函数

public zidan(int x, int y, int speed, zidanen zid, fangxiang fx)//构造函数

{

this.x = x;

this.y = y;

this.speed = speed;//速度

BitmapUp = Resources.BulletUp;//设置对应方向图片

BitmapDown = Resources.BulletDown;

BitmapLeft = Resources.BulletLeft;

BitmapRight = Resources.BulletDown;

Fangxiang = fx;

this.x -= kuan / 2;//将中心点设置为坦克的生成点好确定位置

this.y -= gao / 2;

}

在物体位置设置类创建方法实例化以及归类子弹

public static void zidan(int x,int y,zidanen zid,fangxiang fx)//控制子弹的生成

{

zidan zd=new zidan(x,y,5,zid,fx);//实例化子弹

zidanlist.Add(zd);//将实例化的子弹放入列表

}

创建一个子弹列表在调用生成子弹函数的时候就将生成的子弹放入列表

将子弹列表遍历后绘制

foreach(zidan zid in zidanlist)

{

zid.update();

}

在wanjia类型中设置按下Q键调用生成子弹方法

在按下事件方法中设置

case Keys.Q://发射子弹

zidanshengcheng();

break;

我们发现创建出来的子弹位置有些歪,因为创建出来的时候子弹的中心点我们是在坦克创建是的point点位,要想子弹刚好在炮口位置上,我们需要创建一个临时的x和y根据方向的不同将修改后的位置放入

private void zidanshengcheng()//子弹生成

{

int x=this.x;//设置临时point

int y=this.y;

switch(Fangxiang)//检测当前坦克方向

{

case fangxiang.Up:

x += kuan / 2;//修改子弹生成位置

break;

case fangxiang.Down:

x += kuan / 2;

y += gao;

break;

case fangxiang.Left:

y += gao / 2;

break;

case fangxiang.Right:

y += gao / 2;

x += kuan;

break;

}

duixiangweizhi.zidan(x, y, zidanen.wanjia, Fangxiang);//传入修改后的point实例化子弹

}

这样子再次运行程序发射子弹就会发现位置刚刚好了

下节再说怎么让子弹动起来以及子弹超出边界的销毁

相关推荐
d111111111d1 分钟前
江协科技-PID基本原理-(学习笔记)-主页有所有STM32外设的笔记基本都是万字起步。
笔记·科技·stm32·单片机·嵌入式硬件·学习
啦哈拉哈6 分钟前
【Python】知识点零碎学习3
开发语言·python·学习
ℳ₯㎕ddzོꦿ࿐10 分钟前
先立后破:Linux 下“新建管理员 → 验证 → 禁用 root 远程 SSH”的零翻车笔记
linux·笔记·ssh
LO嘉嘉VE11 分钟前
学习笔记二十九:贝叶斯决策论
人工智能·笔记·学习
2401_8345170718 分钟前
AD学习笔记-33 丝印位号的调整
笔记·学习
萤虫之光19 分钟前
常见进制介绍以及之间的转换(二)
学习
hssfscv22 分钟前
Mysql学习笔记——多表查询
笔记·学习·mysql
相思半26 分钟前
机器学习模型实战全解析
大数据·人工智能·笔记·python·机器学习·数据挖掘·transformer
知识分享小能手27 分钟前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 中人工智能 —语法详解与实战案例(14)
人工智能·学习·centos
开开心心_Every1 小时前
Word转PDF工具,免费生成图片型文档
网络·笔记·pdf·word·powerpoint·excel·azure