制作一款打飞机游戏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
相关推荐
开开心心就好19 小时前
手机虚拟化学实验室,混合燃烧都能模拟
jupyter·智能手机·ffmpeg·计算机外设·电脑·音视频·visual studio
tianyatest19 小时前
魔兽争霸 III 接入大语言模型:基于文件通道的混合式游戏 AI 智能体系统设计与实现
人工智能·游戏·语言模型·war3
开开心心_Every21 小时前
黄金价格软件国内外价格实时监控超方便
运维·服务器·游戏·智能手机·pdf·lua·perl
开开心心就好21 小时前
手机电池健康怎么查?看容量温度循环次数
spring·智能手机·ffmpeg·计算机外设·电脑·maven·音视频
hflmwl82 天前
Wise Game Booster 游戏加速软件
游戏·wisegamebooster·游戏加速软件
Solange__2 天前
工业产线怎么用AI生成3D场景?从现场采集、部件重建到数字孪生交付的完整方案
人工智能·游戏·3d·ai·语言模型·自然语言处理·关卡设计
开开心心_Every2 天前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
一次旅行2 天前
2026.10.13 AI产业深度解读|硬件互联标准更新;Agent工程启示;开源社区AI政策转向;游戏与科研AI双线突破
人工智能·游戏·开源
xiaolang_8616_wjl2 天前
预告_c++游戏
游戏
乌萨达2 天前
绿梦时空之声pc怎么玩?预下载、模拟器安装与键鼠设置指南
游戏·安卓模拟器·雷电模拟器