制作一款打飞机游戏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
相关推荐
梅梅9663 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
JQweryuiop3 天前
中小型游戏陪练工作室数字化管理实践:基于七彩屋电竞护航小程序订单、履约与绩效系统的落地复盘
大数据·游戏·小程序·架构
乌萨达4 天前
低配电脑玩手游怎么设置?4GB、8GB内存与模拟器选择指南
游戏·电脑·安卓模拟器·雷电模拟器
林川~016 天前
Unity 万能物理检测工具:射线检测 / 范围检测 / 层级过滤 / 编辑器可视化(可直接拿去用)
游戏·unity·c#·射线检测·通用工具
一孤程7 天前
游戏测试专题第七篇:游戏自动化测试实战
游戏·测试
一孤程7 天前
游戏测试专题第八篇:游戏安全测试与反外挂
游戏·测试
河南花仙子科技8 天前
小游戏社交裂变功能的高阶设计思路
大数据·科技·游戏
一孤程8 天前
游戏测试专题第五篇:游戏兼容性测试与多端适配
游戏·测试
狂人开飞机9 天前
23、实战平台跳跃游戏
游戏·游戏引擎·godot
甲维斯9 天前
0代码,0建模,3句话开发一个3D游戏!
前端·游戏·游戏开发