设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1198|回复: 6
打印 上一主题 下一主题

[已经解决] 写了个坐标判断脚本,有问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
127 小时
注册时间
2010-10-17
帖子
10
跳转到指定楼层
1
发表于 2012-11-13 20:16:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 666sero 于 2012-11-14 17:37 编辑

刚学会脚本,就写了一个用来做射击arpg,但是发现一旦超过两个敌人无论坐标都会一起“被攻击”,找到原因是因为都是(@event.id)所以都是本事件的坐标,但一时想不出如何解决。
可能不应该这样写?
  1. def aexy(eid) #用刀时判断
  2. ex = $game_map.events[eid].x
  3. ey = $game_map.events[eid].y
  4. @direction = $game_player.direction
  5. if $game_player.x==ex-1 and ey == $game_player.y
  6.   if @direction == 6
  7.     return $game_switches[2]=true
  8.   end
  9. end
  10. #如果角色在事件左方
  11. if $game_player.y==ey+1 and ex == $game_player.x
  12.   if @direction == 8
  13.     return $game_switches[2]=true
  14.   end
  15. end
  16. #事件下方
  17. if $game_player.y==ey-1 and ex == $game_player.x
  18.   if @direction == 2
  19.     return $game_switches[2]=true
  20.   end
  21. end
  22. #事件上方
  23. if $game_player.x==ex+1 and ey == $game_player.y
  24.   if @direction == 4
  25.     return $game_switches[2]=true
  26.   end
  27. end
  28. end
  29. #------------------------------------------------------
  30. def gunxy(mid) #用枪是
  31.   ex = $game_map.events[mid].x
  32.   ey = $game_map.events[mid].y
  33.   @direction = $game_player.direction
  34. #主处理↓
  35.   if ex > $game_player.x and ey == $game_player.y
  36.     if @direction == 6
  37.     return $game_switches[5]=true
  38.     end
  39.   end

  40.   if ex < $game_player.x and ey == $game_player.y
  41.     if @direction == 4
  42.     return $game_switches[5]=true
  43.     end
  44.   end

  45.   if ey > $game_player.y and ex == $game_player.x
  46.     if @direction == 2
  47.     return $game_switches[5]=true
  48.     end
  49.   end

  50.   if ey < $game_player.y and ex == $game_player.x
  51.     if @direction == 8
  52.     return $game_switches[5]=true
  53.   end
  54. end
  55. end
复制代码
敌人事件

mk.jpg (39.99 KB, 下载次数: 4)

mk.jpg

Lv1.梦旅人

梦石
0
星屑
66
在线时间
91 小时
注册时间
2012-8-15
帖子
57
2
发表于 2012-11-14 09:06:56 | 只看该作者
event.id没有指定事件对象?
aexy(@event.id) 写在事件上,应该可以调用。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
127 小时
注册时间
2010-10-17
帖子
10
3
 楼主| 发表于 2012-11-14 17:40:34 | 只看该作者
虾米£浪子 发表于 2012-11-14 09:06
event.id没有指定事件对象?
aexy(@event.id) 写在事件上,应该可以调用。

我就是这么做的,问题是超过两个敌人就会重定义event.id
——图片应该可以看了..
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
4
发表于 2012-11-14 18:45:47 | 只看该作者
lz的原因不知道,不过建议用下面的脚本..若lz需要"枪"的脚本,可再次说明
RUBY 代码复制
  1. class Interpreter
  2.   Face_Event = [nil,[0,-1],[1,0],[-1,0],[0,1]]
  3.   def aexy
  4.     return false unless @event_id
  5.     [2,4,6,8].any?{|i|$game_player.direction==i and [$game_player.x-$game_map.events[@event_id].x,$game_player.y-$game_map.events[@event_id].y] == Face_Event[i/2]}
  6.   end
  7. end

评分

参与人数 1梦石 +1 收起 理由
hcm + 1 认可答案

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
127 小时
注册时间
2010-10-17
帖子
10
5
 楼主| 发表于 2012-11-14 20:01:18 | 只看该作者
沙漠点灰 发表于 2012-11-14 18:45
lz的原因不知道,不过建议用下面的脚本..若lz需要"枪"的脚本,可再次说明
class Interpreter
  Face_Event = ...

非常感谢...那枪脚本要怎么写.? 另外,我又发现事件开始条件为并行处理,那怎么才能设置事件接触,角色被攻击呢?

点评

(续)明天lz系统地说明吧.事件攻击角色和角色攻击事件差不多,lz可以将2个的x,y对调一下就行了  发表于 2012-11-14 23:29
之所以没有写枪,因为考虑得不够全面,比如地面上是栅栏,人不能通过,但是子弹能,地面上是大山,人不能通过,子弹也是。这只能用地形标记  发表于 2012-11-14 23:26
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
127 小时
注册时间
2010-10-17
帖子
10
6
 楼主| 发表于 2012-11-15 19:57:37 | 只看该作者
沙漠点灰 发表于 2012-11-14 18:45
lz的原因不知道,不过建议用下面的脚本..若lz需要"枪"的脚本,可再次说明
class Interpreter
  Face_Event = ...

枪能穿透没关系,我只需要一个大概的无bug脚本用来判断坐标
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
7
发表于 2012-11-16 23:21:53 | 只看该作者
  1. class Interpreter
  2.   def gunxy
  3.     return false unless @event_id
  4.     [2,4,6,8].any?{|i|$game_player.direction==i and [$game_player.x <=> $game_map.events[@event_id].x,$game_player.y<=>$game_map.events[@event_id].y] == Face_Event[i/2]}
  5.   end
  6. end
复制代码
没试过,可能会错
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 04:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表