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

Project1

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

关于鼠标的问题

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-6
帖子
208
跳转到指定楼层
1
发表于 2008-11-18 18:07:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

2
发表于 2008-11-18 18:14:15 | 只看该作者
应该是漏了死亡后的操作判断吧

没看见脚本 不好说
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-29
帖子
80
3
发表于 2008-11-18 20:40:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
676
在线时间
224 小时
注册时间
2006-12-7
帖子
839
4
发表于 2008-11-18 20:53:32 | 只看该作者
lz用的什么战斗脚本?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-6
帖子
208
5
 楼主| 发表于 2008-11-22 05:28:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-6
帖子
208
6
 楼主| 发表于 2008-11-29 04:59:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-6
帖子
208
7
 楼主| 发表于 2008-11-29 20:21:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

8
发表于 2008-11-29 20:23:22 | 只看该作者
要么你在定义战斗部分啊,技能啊什么的,把那个部分给冲突掉了

要么就是原鼠标里面没有这个分歧判断。

要么就是误删,复制不完全等等
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-6
帖子
208
9
 楼主| 发表于 2008-11-30 21:17:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
10
发表于 2008-12-2 23:45:34 | 只看该作者

  试试这个脚 本.


  1. class Game_Event
  2.   attr_accessor :flag
  3. end

  4. #==============================================================================
  5. # ■ Game_Map
  6. #------------------------------------------------------------------------------
  7. #  处理地图的类。包含卷动以及可以通行的判断功能。
  8. # 本类的实例请参考 $game_map 。
  9. #==============================================================================

  10. class Game_Map
  11.   def check_event_custom(x, y)
  12.     for event in $game_map.events.values
  13.       if event.screen_x/32 == x and event.screen_y/32 - 1 == y
  14.         for i in 0...event.list.size
  15.           if event.list[i].parameters[0] == "Enemy"
  16.             event.flag = 1
  17.           elsif event.list[i].parameters[0] == "Npc"
  18.             event.flag = 2
  19.           else
  20.             #print $pop
  21.             event.flag = 0 if $game_player.get_mouse_open != 2
  22.           end
  23.           return event.flag
  24.         end
  25.       end
  26.     end
  27.     return 0 if $game_player.get_mouse_open != 2
  28.     return $pop
  29.   end
  30. end
  31. #=================以下两个用来调整战斗时的手感问题,可以自己试试。
  32. $敌人选框扩大 = 20
  33. $角色选框扩大 = 30


  34. #==============================================================================
  35. # API调用
  36. #==============================================================================
  37. $ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l')
  38. $GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i')
  39. $ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i')
  40. $GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l')
  41. $Window_HWND = $GetActiveWindow.call
  42. $GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i')
  43. #$FindWindow = Win32API.new("user32", "FindWindow", 'pp', 'i')
  44. #$HookStart  = Win32API.new("mouse_hook.dll", "HookStart", 'i', nil)
  45. #$HookEnd  = Win32API.new("mouse_hook.dll", "HookEnd", nil, nil)
  46. #$GetMouseStatus  = Win32API.new("mouse_hook.dll", "GetMouseStatus", 'i', 'i')
  47. #$Window_HWND = $FindWindow.call(nil, 'mousetry')

  48. module Mouse  
  49.   LEFT = 0x01
  50.   RIGHT = 0x02
  51.   def self.newbitmap(newbitmap = 'Graphics/Icons/001-Weapon01.png')
  52.     @mouse_sprite.bitmap = Bitmap.new(newbitmap)
  53.   end
  54.   def self.init(sprite = nil)
  55. #   $HookStart.call($Window_HWND)
  56.     $ShowCursor.call(0)
  57.    
  58.     @show_cursor = false
  59.    
  60.     @mouse_sprite = Sprite.new
  61.     @mouse_sprite.z = 99999
  62.     @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/木剑.png')
  63.     #@mouse_sprite.bitmap.fill_rect(Rect.new(0, 0, 32, 32), Color.new(0, 0, 0))

  64.     @left_press = false
  65.     @right_press = false
  66.     @left_trigger = false
  67.     @right_trigger = false
  68.     @left_repeat = false
  69.     @right_repeat = false
  70.     @click_lock = false
  71.    
  72.     update
  73.   end
  74.   def self.exit
  75.     @mouse_sprite.bitmap.dispose
  76.     @mouse_sprite.dispose
  77.     @show_cursor = true
  78. #    $HookEnd.call
  79.     $ShowCursor.call(1)
  80.   end
  81.   def self.mouse_debug
  82.     return @mouse_debug.bitmap
  83.   end
  84.   def self.update
  85.     left_down = $GetKeyState.call(0x01)
  86.     right_down = $GetKeyState.call(0x02)
  87. ###########################################################################
  88.     if Graphics.frame_count * 3 / Graphics.frame_rate != @total_sec
  89.       @total_sec = Graphics.frame_count * 3 / Graphics.frame_rate
  90.       @a = !@a
  91.     end
  92.     if $scene.is_a?(Scene_Map) == false
  93.       $pop = 0
  94.     end
  95.     case $pop
  96.     when 1
  97.       if @a
  98.         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/GetItem1')
  99.       else
  100.         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/GetItem2')
  101.       end
  102.     when 2
  103.       if @a
  104.         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/TalkTo1')
  105.       else
  106.         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/TalkTo2')
  107.       end
  108.     when 11
  109.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_LOWER_LEFT')
  110.     when 12
  111.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_DOWN')
  112.     when 13
  113.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_LOWER_RIGHT')
  114.     when 14
  115.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_LEFT')
  116.       
  117.     when 16
  118.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_RIGHT')
  119.     when 17
  120.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_UPPER_LEFT')
  121.     when 18
  122.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_UP')
  123.     when 19
  124.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_UPPER_RIGHT')
  125.     when 0
  126.       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/木剑')
  127.     end
  128. ########################################################################
  129.     @click_lock = false
  130.     mouse_x, mouse_y = self.get_mouse_pos
  131.     if @mouse_sprite != nil
  132.       @mouse_sprite.x = mouse_x
  133.       @mouse_sprite.y = mouse_y
  134.     end
  135.     if left_down[7] == 1
  136.       @left_repeat = (not @left_repeat)
  137.       @left_trigger = (not @left_press)
  138.       @left_press = true
  139.     else
  140.       @left_press = false
  141.       @left_trigger = false
  142.       @left_repeat = false
  143.     end
  144.     if right_down[7] == 1
  145.       @right_repeat = (not @right_repeat)
  146.       @right_trigger = (not @right_press)
  147.       @right_press = true
  148.     else
  149.       @right_press = false
  150.       @right_trigger = false
  151.       @right_repeat = false
  152.     end
  153.   end
  154.   def self.get_mouse_pos
  155.     point_var = [0, 0].pack('ll')
  156.     if $GetCursorPos.call(point_var) != 0
  157.       if $ScreenToClient.call($Window_HWND, point_var) != 0
  158.         x, y = point_var.unpack('ll')
  159.         if (x < 0) or (x > 10000) then x = 0 end
  160.         if (y < 0) or (y > 10000) then y = 0 end
  161.         if x > 640 then x = 640 end
  162.         if y > 480 then y = 480 end
  163.         return x, y
  164.       else
  165.         return 0, 0
  166.       end
  167.     else
  168.       return 0, 0
  169.     end
  170.   end
  171.   def self.press?(mouse_code)
  172.     if mouse_code == LEFT
  173.       if @click_lock
  174.         return false
  175.       else
  176.         return @left_press
  177.       end
  178.     elsif mouse_code == RIGHT
  179.       return @right_press
  180.     else
  181.       return false
  182.     end
  183.   end
  184.   def self.trigger?(mouse_code)
  185.     if mouse_code == LEFT
  186.       if @click_lock
  187.         return false
  188.       else
  189.         return @left_trigger
  190.       end
  191.     elsif mouse_code == RIGHT
  192.       return @right_trigger
  193.     else
  194.       return false
  195.     end
  196.   end
  197.   def self.repeat?(mouse_code)
  198.     if mouse_code == LEFT
  199.       if @click_lock
  200.         return false
  201.       else
  202.         return @left_repeat
  203.       end
  204.     elsif mouse_code == RIGHT
  205.       return @right_repeat
  206.     else
  207.       return false
  208.     end
  209.   end
  210.   def self.click_lock?
  211.     return @click_lock
  212.   end
  213.   def self.click_lock
  214.     @click_lock = true
  215.   end
  216.   def self.click_unlock
  217.     @click_lock = false
  218.   end
  219. end
  220. module Input
  221.   if @self_update == nil
  222.     @self_update = method('update')
  223.     @self_press = method('press?')
  224.     @self_trigger = method('trigger?')
  225.     @self_repeat = method('repeat?')
  226.   end
  227.   def self.update
  228.     @self_update.call
  229.     Mouse.update
  230.   end
  231.   def self.press?(key_code)
  232.     if @self_press.call(key_code)
  233.       return true
  234.     end
  235.     if key_code == C
  236.       return Mouse.press?(Mouse::LEFT)
  237.     elsif key_code == B
  238.       return Mouse.press?(Mouse::RIGHT)
  239.     else
  240.       return @self_press.call(key_code)
  241.     end
  242.   end
  243.   def self.trigger?(key_code)
  244.     if @self_trigger.call(key_code)
  245.       return true
  246.     end
  247.     if key_code == C
  248.       mousetrig = Mouse.trigger?(Mouse::LEFT)
  249.       return mousetrig
  250.     elsif key_code == B
  251.       return Mouse.trigger?(Mouse::RIGHT)
  252.     else
  253.       return @self_trigger.call(key_code)
  254.     end
  255.   end
  256.   def self.repeat?(key_code)
  257.     if @self_repeat.call(key_code)
  258.       return true
  259.     end
  260.     if key_code == C
  261.       return Mouse.repeat?(Mouse::LEFT)
  262.     elsif key_code == B
  263.       return Mouse.repeat?(Mouse::RIGHT)
  264.     else
  265.       return @self_repeat.call(key_code)
  266.     end
  267.   end
  268. end
  269. class Window_Selectable
  270.   if @self_alias == nil
  271.     alias self_update update
  272.     @self_alias = true
  273.   end
  274.   def update
  275.     #self.cursor_rect.empty
  276.     self_update
  277.     if self.active and @item_max > 0
  278.       index_var = @index
  279.       tp_index = @index
  280.       mouse_x, mouse_y = Mouse.get_mouse_pos
  281.       mouse_not_in_rect = true
  282.       for i in 0...@item_max
  283.         @index = i
  284.         update_cursor_rect
  285.         top_x = self.cursor_rect.x + self.x + 16
  286.         top_y = self.cursor_rect.y + self.y + 16
  287.         bottom_x = top_x + self.cursor_rect.width
  288.         bottom_y = top_y + self.cursor_rect.height
  289.         if (mouse_x > top_x) and (mouse_y > top_y) and
  290.            (mouse_x < bottom_x) and (mouse_y < bottom_y)
  291.           mouse_not_in_rect = false
  292.           if tp_index != @index
  293.             tp_index = @index
  294.             $game_system.se_play($data_system.cursor_se)
  295.           end
  296.           break
  297.         end
  298.       end
  299.       if mouse_not_in_rect
  300.         @index = index_var
  301.         update_cursor_rect
  302.         Mouse.click_lock
  303.       else
  304.         Mouse.click_unlock               
  305.       end
  306.     end
  307.   end
  308. end
  309. class Window_NameInput
  310.   if @self_alias == nil
  311.     alias self_update update
  312.     @self_alias = true
  313.   end
  314.   def update
  315.     #self.cursor_rect.empty
  316.     self_update
  317.     if self.active
  318.       index_var = @index
  319.       mouse_x, mouse_y = Mouse.get_mouse_pos
  320.       mouse_not_in_rect = true
  321.       for i in (0...CHARACTER_TABLE.size).to_a.push(180)
  322.         @index = i
  323.         update_cursor_rect
  324.         top_x = self.cursor_rect.x + self.x + 16
  325.         top_y = self.cursor_rect.y + self.y + 16
  326.         bottom_x = top_x + self.cursor_rect.width
  327.         bottom_y = top_y + self.cursor_rect.height
  328.         #
  329.         if (mouse_x > top_x) and (mouse_y > top_y) and
  330.            (mouse_x < bottom_x) and (mouse_y < bottom_y)
  331.           mouse_not_in_rect = false
  332.           break
  333.         end
  334.       end
  335.       if mouse_not_in_rect
  336.         @index = index_var
  337.         update_cursor_rect
  338.         Mouse.click_lock
  339.       else
  340.         Mouse.click_unlock
  341.       end
  342.     end
  343.   end
  344. end
  345. class Window_InputNumber
  346.   if @self_alias == nil
  347.     alias self_update update
  348.     @self_alias = true
  349.   end
  350.   def update
  351.     #self.cursor_rect.empty
  352.     self_update
  353.     mouse_x, mouse_y = Mouse.get_mouse_pos
  354.     if self.active and @digits_max > 0
  355.       index_var = @index
  356.       mouse_not_in_rect = true
  357.       for i in 0...@digits_max
  358.         @index = i
  359.         update_cursor_rect
  360.         top_x = self.cursor_rect.x + self.x + 16
  361.         bottom_x = top_x + self.cursor_rect.width
  362.         #
  363.         if (mouse_x > top_x) and (mouse_x < bottom_x)
  364.           mouse_not_in_rect = false
  365.           break
  366.         end
  367.       end
  368.       if mouse_not_in_rect
  369.         @index = index_var
  370.         update_cursor_rect
  371.         Mouse.click_lock
  372.       else
  373.         Mouse.click_unlock
  374.       end
  375.     end
  376.     if @last_mouse_y == nil
  377.       @last_mouse_y = mouse_y
  378.     end
  379.     check_pos = (@last_mouse_y - mouse_y).abs
  380.     if check_pos > 10
  381.       $game_system.se_play($data_system.cursor_se)
  382.       place = 10 ** (@digits_max - 1 - @index)
  383.       n = @number / place % 10
  384.       @number -= n * place
  385.       n = (n + 1) % 10 if mouse_y < @last_mouse_y
  386.       n = (n + 9) % 10 if mouse_y > @last_mouse_y
  387.       @number += n * place
  388.       refresh
  389.       @last_mouse_y = mouse_y
  390.     end
  391.   end
  392. end
  393. class Scene_File
  394.   if @self_alias == nil
  395.     alias self_update update
  396.     @self_alias = true
  397.   end
  398.   def update
  399.     mouse_x, mouse_y = Mouse.get_mouse_pos
  400.     Mouse.click_lock
  401.     idx = 0
  402.     for i in @savefile_windows
  403.       top_x = i.x + 16
  404.       top_y = i.y + 16
  405.       bottom_x = top_x + i.width
  406.       bottom_y = top_y + i.height
  407.       if (mouse_x > top_x) and (mouse_y > top_y) and
  408.          (mouse_x < bottom_x) and (mouse_y < bottom_y)
  409.         i.selected = true
  410.         if @file_index != idx
  411.           @file_index = idx
  412.           $game_system.se_play($data_system.cursor_se)
  413.         end            
  414.         Mouse.click_unlock
  415.       else
  416.         i.selected = false
  417.       end
  418.       idx += 1
  419.     end
  420.     self_update
  421.   end
  422. end
  423. class Arrow_Enemy
  424.   if @self_alias == nil
  425.     alias self_update update
  426.     @self_alias = true
  427.   end
  428.   def update
  429.     mouse_x, mouse_y = Mouse.get_mouse_pos
  430.     idx = 0
  431.     for i in $game_troop.enemies do
  432.       if i.exist?
  433.         top_x = i.screen_x - self.ox
  434.         top_y = i.screen_y - self.oy
  435.         bottom_x = top_x + self.src_rect.width
  436.         bottom_y = top_y + self.src_rect.height
  437.         if (mouse_x > top_x - $敌人选框扩大) and (mouse_y > top_y - $敌人选框扩大) and
  438.            (mouse_x < bottom_x + $敌人选框扩大) and (mouse_y < bottom_y + $敌人选框扩大)
  439.           if @index != idx
  440.             $game_system.se_play($data_system.cursor_se)
  441.             @index = idx
  442.           end
  443.         end
  444.       end
  445.       idx += 1
  446.     end
  447.     self_update
  448.   end
  449. end
  450. class Arrow_Actor
  451.   if @self_alias == nil
  452.     alias self_update update
  453.     @self_alias = true
  454.   end
  455.   def update
  456.     mouse_x, mouse_y = Mouse.get_mouse_pos
  457.     idx = 0
  458.     for i in $game_party.actors do
  459.       if i.exist?
  460.         top_x = i.screen_x - self.ox
  461.         top_y = i.screen_y - self.oy
  462.         bottom_x = top_x + self.src_rect.width
  463.         bottom_y = top_y + self.src_rect.height
  464.         if (mouse_x > top_x - $角色选框扩大) and (mouse_y > top_y - $角色选框扩大) and
  465.            (mouse_x < bottom_x + $角色选框扩大) and (mouse_y < bottom_y + $角色选框扩大)
  466.           if @index != idx
  467.             $game_system.se_play($data_system.cursor_se)
  468.             @index = idx
  469.           end
  470.         end
  471.       end
  472.       idx += 1
  473.     end
  474.     self_update
  475.   end
  476. end
  477. class Game_Player
  478.   if @self_alias == nil
  479.     alias self_update update
  480.     @self_alias = true
  481.   end
  482.   ###################
  483.   def new_mtp
  484.     @mtp_x = screen_x
  485.     @mtp_y = screen_y
  486.   end
  487.   def get_mouse_open
  488.     return @mouse_open
  489.   end
  490.   #################
  491.   def update
  492.     mouse_x, mouse_y = Mouse.get_mouse_pos
  493.     unless $game_system.map_interpreter.running? and @mouse_open == 2
  494.       $pop = $game_map.check_event_custom(mouse_x/32,mouse_y/32 + 1)
  495.       if $pop != 2
  496.         $pop = $game_map.check_event_custom(mouse_x/32,mouse_y/32)  if not [11, 12, 13, 14, 16, 17, 18, 19].include?($pop)
  497.       end
  498.     else
  499.       $pop = 0 if @mouse_open != 2
  500.     end
  501.     if @last_move_x == nil
  502.       @last_move_x = false
  503.     end
  504.     if Mouse.trigger?(Mouse::LEFT)
  505.       unless $game_system.map_interpreter.running? or
  506.              @move_route_forcing or $game_temp.message_window_showing
  507.       @mouse_open = 1
  508.       if @paths_id != nil and @paths_id != @paths.size
  509.         @mouse_open = 2
  510.       end
  511.       if @mouse_open != 2
  512.       @mtp_x, @mtp_y = Mouse.get_mouse_pos
  513.       @trg_x = (@mtp_x + $game_map.display_x / 4) / 32
  514.       @trg_y = (@mtp_y + $game_map.display_y / 4) / 32
  515.       if $game_map.check_event_custom(@mtp_x/32,@mtp_y/32 + 1) == 2
  516.         @trg_y += 1
  517.       end
  518.       @paths = $path_finding.find_player_short_path(@trg_x, @trg_y)
  519.       if @paths == nil or @paths == []
  520.         #print @mtp_x
  521.         #print self.screen_x
  522.         if @mtp_x > self.screen_x
  523.           if @mtp_y - self.screen_y > - 0.4 * ( @mtp_x - self.screen_x ) and
  524.             @mtp_y - self.screen_y < 0.4 * ( @mtp_x - self.screen_x )
  525.             @direction = 6
  526.           end
  527.           if @mtp_y - self.screen_y > 0.4 * ( @mtp_x - self.screen_x ) and
  528.             @mtp_y - self.screen_y < 2.4 * ( @mtp_x - self.screen_x )
  529.             @direction = 3
  530.           end
  531.           if @mtp_y - self.screen_y < - 0.4 * ( @mtp_x - self.screen_x ) and
  532.             @mtp_y - self.screen_y > - 2.4 * ( @mtp_x - self.screen_x )
  533.             @direction = 9
  534.           end
  535.           if @mtp_y - self.screen_y > 2.4 * ( @mtp_x - self.screen_x )
  536.             @direction = 2
  537.           end
  538.           if @mtp_y - self.screen_y < - 2.4 * ( @mtp_x - self.screen_x )
  539.             @direction = 8
  540.           end
  541.         end
  542.         if @mtp_x < self.screen_x
  543.           if @mtp_y - self.screen_y > - 0.4 * ( self.screen_x - @mtp_x ) and
  544.             @mtp_y - self.screen_y < 0.4 * ( self.screen_x - @mtp_x )
  545.             @direction = 4
  546.           end
  547.           if @mtp_y - self.screen_y > 0.4 * ( self.screen_x - @mtp_x ) and
  548.             @mtp_y - self.screen_y < 2.4 * ( self.screen_x - @mtp_x )
  549.             @direction = 1
  550.           end
  551.           if @mtp_y - self.screen_y < - 0.4 * ( self.screen_x - @mtp_x ) and
  552.             @mtp_y - self.screen_y > - 2.4 * ( self.screen_x - @mtp_x )
  553.             @direction = 7
  554.           end
  555.           if @mtp_y - self.screen_y > 2.4 * ( self.screen_x - @mtp_x )
  556.             @direction = 2
  557.           end
  558.           if @mtp_y - self.screen_y < - 2.4 * ( self.screen_x - @mtp_x )
  559.             @direction = 8
  560.           end
  561.         end
  562.       end
  563.       
  564.         
  565.       @paths_id = 0
  566.       end
  567.       #print @paths
  568.       end
  569.     end
  570.     #####################################
  571.       if @mtp_x == nil or @mtp_y == nil
  572.         new_mtp
  573.       end
  574.     #####################################
  575.     #####################################
  576.     if @mouse_open != nil and @mouse_open == 1
  577.       last_moving = moving?
  578.       last_direction = @direction
  579.       unless moving? or $game_system.map_interpreter.running? or
  580.              @move_route_forcing or $game_temp.message_window_showing
  581.         last_x = @x
  582.         last_y = @y
  583.         if @paths_id != nil and @paths != nil and @paths_id <= @paths.size
  584.           if @paths[@paths_id] == 6
  585.             @last_move_x = true
  586.             move_right
  587.             @paths_id += 1
  588.             @direction = 6
  589.           elsif @paths[@paths_id] == 4
  590.             @last_move_x = true
  591.             move_left
  592.             @paths_id += 1
  593.             @direction = 4
  594.           elsif @paths[@paths_id] == 2
  595.             @last_move_x = false
  596.             move_down
  597.             @direction = 2
  598.             @paths_id += 1
  599.           elsif @paths[@paths_id] == 8
  600.             @last_move_x = false
  601.             move_up
  602.             @direction = 8
  603.             @paths_id += 1
  604.             
  605.           elsif @paths[@paths_id] == 1
  606.             @last_move_x = false
  607.             move_lower_left
  608.             @direction = 1
  609.             @paths_id += 1
  610.           elsif @paths[@paths_id] == 3
  611.             @last_move_x = false
  612.             move_lower_right
  613.             @direction = 3
  614.             @paths_id += 1
  615.           elsif @paths[@paths_id] == 7
  616.             @last_move_x = false
  617.             move_upper_left
  618.             @direction = 7
  619.             @paths_id += 1
  620.           elsif @paths[@paths_id] == 9
  621.             @last_move_x = false
  622.             move_upper_right
  623.             @direction = 9
  624.             @paths_id += 1
  625.           end
  626.         end
  627.       end
  628.     elsif @mouse_open != nil and @mouse_open == 2
  629.     if Mouse.press?(Mouse::LEFT)
  630.       last_moving = moving?
  631.       last_direction = @direction
  632.       unless moving? or $game_system.map_interpreter.running? or
  633.              @move_route_forcing or $game_temp.message_window_showing
  634.         last_x = @x
  635.         @mtp_x = mouse_x
  636.         @mtp_y = mouse_y
  637.         if @mtp_x > self.screen_x
  638.           if @mtp_y - self.screen_y > - 0.4 * ( @mtp_x - self.screen_x ) and
  639.             @mtp_y - self.screen_y < 0.4 * ( @mtp_x - self.screen_x )
  640.             move_right
  641.             $pop = 16
  642.             @direction = 6
  643.           end
  644.           if @mtp_y - self.screen_y > 0.4 * ( @mtp_x - self.screen_x ) and
  645.             @mtp_y - self.screen_y < 2.4 * ( @mtp_x - self.screen_x )
  646.             move_lower_right
  647.             $pop = 13
  648.             @direction = 3
  649.           end
  650.           if @mtp_y - self.screen_y < - 0.4 * ( @mtp_x - self.screen_x ) and
  651.             @mtp_y - self.screen_y > - 2.4 * ( @mtp_x - self.screen_x )
  652.             move_upper_right
  653.             $pop = 19
  654.             @direction = 9
  655.           end
  656.           if @mtp_y - self.screen_y > 2.4 * ( @mtp_x - self.screen_x )
  657.             move_down
  658.             $pop = 12
  659.             @direction = 2
  660.           end
  661.           if @mtp_y - self.screen_y < - 2.4 * ( @mtp_x - self.screen_x )
  662.             move_up
  663.             $pop = 18
  664.             @direction = 8
  665.           end
  666.         end
  667.         if @mtp_x < self.screen_x
  668.           if @mtp_y - self.screen_y > - 0.4 * ( self.screen_x - @mtp_x ) and
  669.             @mtp_y - self.screen_y < 0.4 * ( self.screen_x - @mtp_x )
  670.             move_left
  671.             $pop = 14
  672.             @direction = 4
  673.           end
  674.           if @mtp_y - self.screen_y > 0.4 * ( self.screen_x - @mtp_x ) and
  675.             @mtp_y - self.screen_y < 2.4 * ( self.screen_x - @mtp_x )
  676.             move_lower_left
  677.             $pop = 11
  678.             @direction = 1
  679.           end
  680.           if @mtp_y - self.screen_y < - 0.4 * ( self.screen_x - @mtp_x ) and
  681.             @mtp_y - self.screen_y > - 2.4 * ( self.screen_x - @mtp_x )
  682.             move_upper_left
  683.             $pop = 17
  684.             @direction = 7
  685.           end
  686.           if @mtp_y - self.screen_y > 2.4 * ( self.screen_x - @mtp_x )
  687.             move_down
  688.             $pop = 12
  689.             @direction = 2
  690.           end
  691.           if @mtp_y - self.screen_y < - 2.4 * ( self.screen_x - @mtp_x )
  692.             move_up
  693.             $pop = 18
  694.             @direction = 8
  695.           end
  696.         end
  697.         #if @last_move_x
  698.         #  @last_move_x = false
  699.         #elsif mouse_x > screen_x + 16
  700.         #  move_right
  701.         #elsif mouse_x < screen_x - 16
  702.         #  move_left
  703.         #end
  704.         #last_y = @y
  705.         #if last_x != @x
  706.         ##  @last_move_x = true
  707.         #elsif mouse_y > screen_y
  708.         #  move_down
  709.         #elsif mouse_y < screen_y - 32
  710.         #  move_up
  711.         #end
  712.         #if last_y != @y
  713.         #  @last_move_x = false
  714.         #elsif not @last_move_x
  715.         #  case last_direction
  716.         #  when 2
  717.         #    turn_down
  718.         #  when 4
  719.         #    turn_left
  720.         ##  when 6
  721.         #    turn_right
  722.         #  when 8
  723.         #    turn_up
  724.         #  end
  725.         #end
  726.       end
  727.     else
  728.       $pop = 0
  729.       @mouse_open = 0
  730.       @paths_id = @paths.size
  731.     end
  732.     end
  733.     #########################################################
  734.     self_update
  735.   end
  736. end
  737. Mouse.init
  738. END { Mouse.exit }
  739. ###############################################################################

复制代码
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-20 05:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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