以下引用趙雲于2008-1-31 19:37:44的发言:
class Game_Character
def jump(x_plus, y_plus)
if x_plus.abs > y_plus.abs # 横向距离长
x_plus < 0 ? turn_left : turn_right
elsif x_plus.abs > y_plus.abs # 纵向距离长
y_plus < 0 ? turn_up : turn_down
end
if self.is_a?(Game_Player)
if !map_passable?(@x + x_plus, @y + y_plus)
p "跳跃目标#{@x + x_plus}, #{@y + y_plus}无法通行,请重新设置!"
return
end
elsif !passable?(@x + x_plus, @y + y_plus)
p "跳跃目标#{@x + x_plus}, #{@y + y_plus}无法通行,请重新设置!"
return
end
@x += x_plus
@y += y_plus
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed
@jump_count = @jump_peak * 2
@stop_count = 0
straighten
end
end
这样?
很简单啊
这个不算,再来一个.
[本贴由作者于 2008-1-31 19:46:08 最后编辑]
以下引用暴动冲锋于2008-1-31 20:05:14的发言:
烦请您再指出我那640补丁的其他错误,以及错在哪儿……
以下引用趙雲于2008-1-31 20:17:34的发言:
无可能的,按顺序第10行应该是 if !map_passable?(@x + x_plus, @y + y_plus)
可你看 def map_passable?(x, y) 这是原定义 只有两个参数
除非是他的脚本重定义过这个了
而且我发这脚本之前自己测试过 飞船,角色和NPC 的跳跃没有问题
这样:
1,我把范例发上来
还是?
2,把他的scripts.rvdata传上来
以下引用superufo于2008-1-31 20:39:20的发言:
对了LZ我也有问题
能帮我写个横板的Selectable吗……
就是输入行数自动计算列数,左右切换,如果显示不下可以通过左右键切换到……
以下引用毛利兰于2008-1-31 20:42:41的发言:
寒。。上面那个签名
以下引用superufo于2008-1-31 20:46:21的发言:
就是假设原来有99个项目,一页只能显示20个,当index为20再往下拉时可以拉到21
现在把往下拉改成往左右拉……
以下引用RMVX于2008-1-31 20:48:52的发言:
呵呵,我来迟了不知道还能申请不?
可以的话希望楼主替在下想一个绳索(即从一点向另一点射线)的模型.
(不是直接连线而是射线的.关键是执行时的效率)
以下引用美兽于2008-1-31 21:12:36的发言:
呵呵,确实不再出错了,不过与对方的要求有些出入,能否麻烦LZ再改下。
这是对方的描述:
以下引用wu3846111于2008-1-31 21:37:44的发言:
那啥,我是来支持LZ的
module Line_Target def self.player_target(x, y) xo, yo = $game_player.x, $game_player.y return self.find_target(xo, yo, x, y) end def self.find_target(x1, y1, x2, y2) (return false) unless self.find_can?(x1, y1, x2, y2) d = self.get_direction(x1, y1, x2, y2) fx = (d == 6 ? 1 : d == 4 ? -1 : 0) fy = (d == 2 ? 1 : d == 8 ? -1 : 0) new_x, new_y = x1, y1 while true new_x += fx; new_y += fy unless $game_map.passable?(new_x, new_y) return [(new_x -= fx), (new_y -= fy)] <====遮挡落点。 end break if (new_x == x2 and new_y == y2) end return true end def self.get_direction(xo, yo, xt, yt) d = 6 if xt > xo d = 4 if xt < xo d = 8 if yt < yo d = 2 if yt > yo return d end def self.find_can?(x1, y1, x2, y2) (return false) if (x1 == x2 and y1 == y2) (return false) if (x1 != x2 and y1 != y2) return true end end
def self.find_can?(x1, y1, x2, y2)
(return false) if (x1 == x2 and y1 == y2)
(return false) if (x1 != x2 and y1 != y2)
return true
end
以下引用超级无敌小白于2008-2-1 0:48:39的发言:
猫人好久不见……我一直认为你神隐了
以下引用趙雲于2008-2-1 0:25:08的发言:
彩色那句是说 当角色的XY和目标XY都不一致的话就return false 么?
那不是只能找竖线或横线的跳跃了么?
以下引用逐月于2008-2-1 22:45:59的发言: 好啊,帮忙改一下,图片血槽脚本,帮忙改成VX用的。 <<_END_ ☆图片SP、HP的描画 V1.5 by 逐月 _END_ #描画HP槽 def HP (actor,x,y) @bitmap3 = Bitmap.new("Graphics/Pictures/血槽/底") @src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height) self.contents.blt(x,y, @bitmap3, @src_rect3) #HP显示 @bitmap3 = Bitmap.new("Graphics/Pictures/血槽/hp") w3 = @bitmap3.width * actor.hp/actor.maxhp @src_rect3 = Rect.new(0,0,w3, @bitmap3.height) self.contents.blt(x+4,y+2, @bitmap3, @src_rect3) end #描画SP槽 def SP (actor,x,y) @bitmap1 = Bitmap.new("Graphics/Pictures/血槽/底") @src_rect1 = Rect.new(0,0,@bitmap1.width, @bitmap1.height) self.contents.blt(x,y, @bitmap1, @src_rect1) #SP显示 @bitmap1 = Bitmap.new("Graphics/Pictures/血槽/sp") w1 = @bitmap1.width * actor.sp/actor.maxsp @src_rect1 = Rect.new(0,0,w1, @bitmap1.height) self.contents.blt(x+4,y+2, @bitmap1, @src_rect1) end #描画exp槽 def exp (actor,x,y) @bitmap4 = Bitmap.new("Graphics/Pictures/血槽/底") @src_rect4 = Rect.new(0,0,@bitmap4.width, @bitmap4.height) self.contents.blt(x,y, @bitmap4, @src_rect4) #exp显示 @bitmap4 = Bitmap.new("Graphics/Pictures/血槽/exp") w4 = @bitmap4.width * actor.exp/actor.next_exp @src_rect4 = Rect.new(0,0,w4, @bitmap4.height) self.contents.blt(x+4,y+2, @bitmap4, @src_rect4) end
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |