irpg Community
วิ่งเมื่อกดปุ่ม 2 ครั้ง - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RGSS and JS Showcase (https://irpg.in.th/forum-26.html)
+--- Thread: วิ่งเมื่อกดปุ่ม 2 ครั้ง (/thread-487.html)



วิ่งเมื่อกดปุ่ม 2 ครั้ง - Muge9thD - 08-17-2012

[XP]วิ่งเมื่อกดปุ่ม 2 ครั้ง

สคริปต์เขียนโดย : thetitsueng
ลิงค์ต้นฉบับ : Link


รายละเอียด :
ระบบวิ่งแบบที่หลายๆคนต้องการ

สกรีนช๊อต :
ไม่มีน่อ

วิธีการใช้งาน :
นำไปใส่ไว้เหนือ Main และใต้ Scene_Debug

ข้อตกลงการนำไปใช้งาน :
อย่างน้อยๆก็ใส่ชื่อ thetitsueng ลงในเครดิตด้วยล่ะ



โค๊ดสคริปต์
Code:
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]วิ่งเมื่อดับเบิ้ลคลิก
# By thetitsueng
# Ver 1.00 [22/11/2552]
# http://necz.net
# neczth@gmail.com
#=====================================================
=begin
------------------------------------------------------
=> วิธีใช้ : นำไปใส่ไว้เหนือ Main และใต้ Scene_Debug
=> วิธีตั้งค่า : -
------------------------------------------------------
=end
#=====================================================
# *ส่วนการตั้งค่า
#=====================================================
module Thetitsueng
  Delay_T = 0.5      #อัตราหน่วงการกดปุ่ม(วินาที)
  Speed_N = 4        #ความเร็วปกติ(ใส่เป็นทศนิยมได้)
  Speed_R = 5        #ความเร็วเมื่อวิ่ง(ใส่เป็นทศนิยมได้)
end
#=====================================================
# *จบส่วนการตั้งค่า
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
class Game_Player
alias update_tit update
def update
    @val_input = 0 if @val_input == nil
    unless $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      if input_dir4
        check_time
        if @val_input == 1
          @move_speed = Thetitsueng::Speed_R
          @val_input = 0
        else
          @val_input += 1
        end
      else
        if Input.dir4 == 0
         @move_speed = Thetitsueng::Speed_N
        end
      end
    end
    update_tit
end
def input_dir4
  if Input.dir4 > 0 && @s
   @s = false
   return true
  elsif Input.dir4 == 0
   @s = true
   return false
  else
   return false
  end
end
def check_time
  @time = Time.now if @time == nil
  if Time.now - @time > Thetitsueng::Delay_T
    @time = Time.now
    @val_input = 0
  end
end
end
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]วิ่งเมื่อดับเบิ้ลคลิก
# By thetitsueng
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:



RE: วิ่งเมื่อดับเบิ้ลคลิก - Shinryu - 08-17-2012

ไม่ใช่คลิกแต่เป็นกดทิศทางที่จะไป 2 ครั้ง เช่น บน บน (ระกว่างนี้ถ้ากดทิศทางอื่น ความเร็วก็ยังไม่ตก จนกว่าจะเลิกกด)


RE: วิ่งเมื่อกดปุ่ม 2 ครั้ง - Tenes - 08-17-2012

เฮ้ย อันนี้ละที่อยากได้ /me save page


RE: วิ่งเมื่อกดปุ่ม 2 ครั้ง - hengmana - 06-27-2014

มีบัคอยู่ตรงปรับความเร็ว ธรรมดากับวิ่ง (หรือไม่ได้ใช้สคริปต์นี้ เราไปปรับ @move_speed โดยตรงก็เป็นเหมือนกัน )
ถ้าค่ามันไม่หาร 0.5 ลงตัว แล้วเข้าเหตุการณ์กระโดด
ตัวเราไปตรงโพรงหญ้า จะไม่เกิดโพรงหญ้าเลย (คือตรงขาตัวเราไม่จางนะ)

เราสามารถแก้ได้ตรงสคริปต์ Game_Character 3
บรรทัดที่ 330
Quote: @jump_peak = 10 + distance - @move_speed
@jump_count = @jump_peak * 2
จะเจอปัญหาตรง @jump_peak * 2
ถ้าค่ามันไม่หาร 0.5 ลงตัว แล้วคูณ2 มันจะเหลือเศษทศนิยม
เราก็แก้เพิ่มคำสั่ง Integer(??????) ให้ตัดเศษทิ้ง เป็นจำนวนเต็มเท่านั้น
แก้เป็น
Quote: @jump_peak = 10 + distance - @move_speed
@jump_count = Integer(@jump_peak * 2)
เท่านี้ เรากระโดดเสร็จ ตัวเราจะไม่ลอยโพรงหญ้าแล้ว