irpg Community
Lock Camera (ล็อคหน้าจอ) - 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: Lock Camera (ล็อคหน้าจอ) (/thread-952.html)



Lock Camera (ล็อคหน้าจอ) - hengmana - 01-30-2013

Lock Camera (ล็อคหน้าจอ)

สคริปต์เขียนโดย : El_Dison
ลิงค์ต้นฉบับ(โปรตุเกส) : http://www.mundorpgmaker.com/forum/index.php?topic=102618.0

ข้อตกลงการนำไปใช้งาน :
เครดิตไม่จำเป็น เพียงแต่ไม่แอบอ้างเป็นของคุณก็พอ

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

รายละเอียด :
เป็นการล็อดหน้าจอ ในขณะ็ฮีโร่เคลื่อนไหวในแมพ จอจะอยู่นิ่งๆไม่ตาม หรือจะเลื่อนจอตามแต่ แนวดิ่ง,แนวนอน โดยตั้งค่าตัวแปรที่กำหนดไว้

โค๊ดสคริปต์
Code:
#==============================================================================
# Travar Câmera
#------------------------------------------------------------------------------
# Autor: El_Dison
#------------------------------------------------------------------------------
# Descrição: Este script permite travar a câmera do jogo, para que ela
# não siga o herói
#
# Instruções: Primeiramente defina a ID da variável que vai travar a câmera na
# linha "Travamento = 1", por padrão o script utiliza a variável 1.
# Para travar a câmera basta mudar o valor da variável através de um evento
# sendo:
# 1 para travar apenas o movimento horizontal;
# 2 para travar apenas o movimento vertical;
# 3 para travar a câmera completamente;
# 0 para o movimento da câmera voltar ao normal.
#==============================================================================

module El_dison
  #Variável que controla o travamento da câmera
  Travamento = 1
end

class Game_Map
  include El_dison
  
  def scroll_down(distance)
    if $game_variables[Travamento] == 0 or $game_variables[Travamento] == 1
      @display_y = [@display_y + distance, (self.height - 15) * 128].min
    else
    end
  end
  
   def scroll_left(distance)
    unless $game_variables[Travamento] == 1 or $game_variables[Travamento] == 3
      @display_x = [@display_x - distance, 0].max
    else
    end
  end
  
  def scroll_right(distance)
    unless $game_variables[Travamento] == 1 or $game_variables[Travamento] == 3
      @display_x = [@display_x + distance, (self.width - 20) * 128].min
    else
    end
  end
  
  def scroll_up(distance)
    if $game_variables[Travamento] == 0 or $game_variables[Travamento] == 1
      @display_y = [@display_y - distance, 0].max
    else
    end
  end
end
วิธีการใช้งาน :
ให้ใส่โค๊ดสคริปต์(F11)ระหว่าง Scene_Debug กับ Main

การปรับแต่ง ในสคริปต์
Travamento = 1 #กำหนด ID ตัวแปรที่กำหนดไว้

ตัวแปร = 0 ปกติ
ตัวแปร = 1 ล็อคหน้าจอเฉพาะแนวนอน จอจะเลื่อนตามแต่แนวดิ่ง
ตัวแปร = 2 ล็อคหน้าจอเฉพาะแนวดิ่ง จอจะเลื่อนตามแต่แนวนอน
ตัวแปร = 3 ล็อคหน้าจอตรงนั้น จอจะอยู่นิ่งๆไม่ตาม


RE: Lock Camera (ล็อคหน้าจอ) - Neoz Kaho - 01-30-2013

โฮรกกก เจ๋งมาก เวลาอยากโฟกัสหน้าจอแล้วไม่ให้ไปไหน (หรือทำดันเจี้ยนแบบโฟกัสไปทีละส่วน พอเดินไปมุมขอบค่อยเลื่อนเหมือนเกมสมัยเก่าๆ)


RE: Lock Camera (ล็อคหน้าจอ) - luvikung - 01-31-2013

แจ๋วมากๆครับ!! ขอบคุณคร้าบ