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

对于键盘按键按下控制玩家坦克方向我能需要在窗体属性中找到触发事件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;

}

}

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

相关推荐
雨落倾城夏未凉2 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
唐青枫3 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫4 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
咕白m6254 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net
用户91721561902114 天前
C# 通信协议增量解析:用状态机处理半包和粘包
c#
小码编匠5 天前
C# 工控上位机必备:数据转换工具类与十个核心模块
后端·c#·.net
LinXunFeng6 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
唐青枫7 天前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
Artech7 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf
Scout-leaf9 天前
C#摸鱼实录——IoC与DI案例详解
c#