Project1

标题: 鼠标点击敌人自动攻击 [打印本页]

作者: 霜月寒冬    时间: 2015-5-1 16:27
标题: 鼠标点击敌人自动攻击
这个一直是我解不开的迷,之前写过但是失败了,所以特来此向各位大神请教
作者: 芯☆淡茹水    时间: 2015-5-1 19:56
本帖最后由 芯☆淡茹水 于 2015-5-1 20:26 编辑

一个大体的思路:
  1. ##以一般的鼠标脚本为例:

  2. #定义一个获取鼠标指向的敌人的方法。
  3. def get_enemy
  4.   #获取当前鼠标指向的坐标。
  5.   x, y = Mouse.get_mouse_pos
  6.   #循环敌人队伍。
  7.   for enemy in $game_troop.enemies
  8.     #跳过不存在的敌人。
  9.     next unless enemy.exist?
  10.     #获取敌人战斗位图。
  11.     bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
  12.     #判断鼠标是否在敌人的战斗图片内。
  13.     width = bitmap.width / 2
  14.     height = bitmap.height
  15.     if x > enemy.screen_x - width and x < enemy.screen_x + width and
  16.      y > enemy.screen_y - height and y < enemy.screen_y
  17.       #判断当前鼠标指向的图片点是否透明。
  18.       b_x = x - enemy.screen_x + width
  19.       b_y = y - enemy.screen_y + height
  20.       #如果指向的图片点不透明,返回该 enemy 。
  21.       if bitmap.get_pixel(b_x, b_y).alpha > 0
  22.         return enemy
  23.       end
  24.     end
  25.   end
  26.   # 返回 nil 。
  27.   return nil
  28. end
复制代码
在战斗中选择行动时,点击鼠标左键时,就这样判断是否指向敌人。
如果不是 nil ,那么该角色的行动是普通攻击,攻击对象就是上面获取的 enemy 。
作者: 霜月寒冬    时间: 2015-5-3 12:22
这个应该放在那里
作者: 芯☆淡茹水    时间: 2015-5-3 13:21
这个只是一个获取敌人的思路,具体做的时候可以放 战斗场景 里,也可以放鼠标脚本里,那就看你自己的意愿。
当然放的地方不同,写法也不一样。
作者: 霜月寒冬    时间: 2015-6-3 13:40
那如何制作全动画点击敌人呢?给个范例?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1