制作一款打飞机游戏39:鼠标控制

绘制敌人指示器

接下来,我想在时间线上绘制敌人指示器,以便更直观地看到敌人的生成情况。我调整了指示器的位置,使其与界面上的按钮相匹配。这虽然增加了一些工作量,但也让界面看起来更加整洁。

解决敌人重叠问题

然而,当我滚动时间线时,发现了一个问题:如果两个敌人在相近的时间生成,它们在时间线上会显示为重叠。这是因为我们在绘制时没有考虑到敌人的生成位置。为了解决这个问题,我添加了一个系统来计算每个敌人的生成位置,并在时间线上相应地绘制它们。

按钮功能的实现

现在,我想让按钮真正工作起来。首先,我想通过键盘按下按钮来执行操作。但随后,我还会添加鼠标控制功能,让用户可以同时使用键盘和鼠标来操作界面。

添加敌人按钮

我创建了一个名为"添加敌人"的按钮,并为其编写了相应的更新函数。现在,当我按下键盘上的"X"键时,会弹出菜单,然后我可以选择"添加敌人"命令来生成一个新的敌人。不过,目前我还不能移动这些敌人,也无法与它们进行交互。

实现鼠标控制

接下来,我想让鼠标能够选择不同的按钮。我遍历了所有按钮,并检查鼠标是否悬停在某个按钮上。如果是的话,就改变当前选中的按钮。为了实现这个功能,我编写了一个鼠标碰撞检测函数来判断鼠标是否与按钮发生了碰撞。

经过一番调试,我终于让鼠标能够悬停在按钮上并触发相应的操作了。随后,我还添加了左键点击功能,让用户可以通过点击按钮来执行操作。

敌人交互功能的实现

现在,我想让用户能够与敌人进行交互。例如,当用户点击某个敌人时,可以删除它或者移动它。为了实现这个功能,我为每个按钮添加了一个属性来存储与之关联的敌人信息。

当用户点击"编辑敌人"按钮时,程序会查找与之关联的敌人并删除它。同时,我还添加了一个高亮显示功能,当用户悬停在某个敌人按钮上时,会在游戏中高亮显示对应的敌人。

优化界面显示

最后,我想进一步优化界面的显示效果。例如,当敌人生成在屏幕外时,用户无法看到它。为了解决这个问题,我在敌人生成位置绘制了一些线条来指示敌人的生成方向。这些线条的颜色和样式也经过了一番调试才最终确定下来。

复制代码
function domouse()
 mousex=stat(32)
 mousey=stat(33)
 
 if stat(34)==0 then
  clkwait=false
 end
 clkl=false
 clkr=false
 if not clkwait then
  if stat(34)==1 then
   clkl=true
   clkwait=true
  elseif stat(34)==2 then
   clkl=true
   clkwait=true  
  end
 end
 
end
相关推荐
棒棒AIT12 小时前
mac 苹果电脑 Intel 芯片(Mac X86) 安卓虚拟机 Android模拟器 的救命稻草(下载安装指南)
android·游戏·macos·安卓·mac
Hi_kenyon15 小时前
Vscode的常用快捷键(摆脱鼠标计划)
ide·vscode·计算机外设
lijiabin41715 小时前
selenium自动化鼠标和键盘操作
selenium·自动化·计算机外设
Deng94520131416 小时前
24点数学游戏(穷举法求解表达式)
游戏·穷举法·递归回溯算法
用户61204149221319 小时前
C语言做的井字棋小游戏
c语言·后端·游戏
★YUI★1 天前
学习游戏制作记录(剑投掷技能)7.26
学习·游戏·unity·c#
我要学习别拦我~2 天前
kaggle分析项目:steam付费游戏数据分析
python·游戏·数据分析
呉師傅2 天前
佳能iR-ADV C5560复印机如何扫描文件到电脑
运维·网络·windows·计算机外设·电脑
Sui_Network2 天前
探索 Sui 上 BTCfi 的各类资产
大数据·人工智能·科技·游戏·区块链
★YUI★2 天前
学习游戏制作记录(克隆技能)7.25
学习·游戏·unity·c#