项目-坦克大战学习笔记-按键按下控制方向

对于键盘按键按下控制玩家坦克方向我能需要在窗体属性中找到触发事件KeyDown(按下触发)以及KeyUp(松开触发)

着两个方法是连用的,按住不放就会一直触发KeyDown,在窗体类中会对次方法进行检测,我们需要通过窗体类中的按下检测方法调用玩家坦克类中的信息并修改,那么就需要一层层将按下这个信息传递下去

在窗体类中进行检测后在方法中调用另一个方法,此方法为调用玩家坦克类中 的方法

private void Form1_KeyDown(object sender, KeyEventArgs e)

{

duixiangweizhi.KeyDown(e);

}

传参为KeyEventArgs,将检测到按下的按键发送过去

在到玩家坦克类中创建一个方法接收传递过来的KeyEventArgs类型,然后检测传递过来的按键信息来调用case选择函数做到4个方向图片对象切换

public void KeyDown(KeyEventArgs Fangxiang)//接受调用函数时传递过来被按下按键信息

{

switch (Fangxiang.KeyCode)//检测方向参数中存储的按键信息

{

case Keys.W :

fangxiang = fangxiang.Up;//修改默认方向,在下一帧调用时更改绘制对象

yidong = true;

break;

case Keys.S:

fangxiang= fangxiang.Down;

yidong = true;

break;

case Keys.D:

fangxiang=fangxiang.Right;

yidong = true;

break;

case Keys.A:

fangxiang = fangxiang.Left;

yidong = true;

break;

}

}

这样,就可以设置按键,根据在窗体运行时按下的按键来更改坦克方向了

相关推荐
csdn_aspnet4 小时前
C# List 移除某个属性值中最大的值
开发语言·c#·list
OBiO20134 小时前
AAV在肠道研究中的应用:从血清型选择到炎症性肠病研究案例解析
学习
段一凡-华北理工大学4 小时前
工业领域的Hadoop架构学习~系列文章16:实时流处理架构 - 工业数据的实时动脉
大数据·数据仓库·hadoop·分布式·学习·架构·高炉炼铁
MartinYeung54 小时前
[论文学习]隐私保护联邦学习于入侵侦测系统之调查研究
学习
钟灵9215 小时前
C++【模板初阶】
开发语言·c++·笔记·c#
稷下元歌5 小时前
aifei学习前置基础:全套完整教程:Anaconda 安装→环境配置→YOLOv8+OpenCV 安装 + OpenCV 实操 + 标注→训练→导出→部署
opencv·学习·yolo
江屿风5 小时前
【C++笔记】vector流食般投喂
开发语言·c++·笔记
星恒随风5 小时前
Python 基础语法详解(3):顺序语句、条件语句和循环语句一篇讲清楚
开发语言·笔记·python·学习
worilb5 小时前
Spring Cloud 学习与实践(6):Nacos 配置中心
数据库·学习·spring cloud
零陵上将军_xdr5 小时前
API 签名防重放机制:基于 HMAC-SHA256 的设计与实现
java·学习·安全架构