[Thảo Luận] [Help] Cần hướng dẫn chỉnh sửa Scene_Battle?!

TkTsTkTs Posts: 482Registered
Em muốn làm mờ (trong suốt cái window skin) đi mấy cái window trong battle (status, skill, item, vvv).
Screenshot-TargetEnemy.jpg
p/s: tiện thể cho em hỏi làm sao để làm battleback như trong hình ợ.

Comments

  • slucis7593slucis7593 Posts: 544Registered
    Nếu là window mặc định của RPG Maker thì nó sẽ kế thừa từ class Window.
    Để biết chi tiết về thuộc tính của class Window này bạn có thể xem trong file Help mục: RGSS Reference Manual > Game Library > RGSS Built-in Classes > Window (Nói vậy để lần sau bạn có thể chủ động tìm, đỡ mất công hỏi và đợi chờ).

    Nhìn chung thì vào chủ đề chính.
    Class Window có 3 thuộc tính dùng cho việc làm mờ window.
    1/ opacity
    The window's opacity - Cái này là toàn bộ : cả nền + chữ (0-255). Out-of-range values are automatically corrected. The default value is 255.
    
    2/ back_opacity
    The window background's opacity - Cái này là nền (0-255). Out-of-range values are automatically corrected. The default value is 192 (RGSS3).
    
    3/ contents_opacity
    The opacity of the window's contents - Cái này là chữ (0-255). Out-of-range values are automatically corrected. The default value is 255.
    


    Khi biết 3 thuộc tính ở trên rồi thì bạn chỉ việc tìm Biến lưu trữ cái Window đó ở trong class Scene tương ứng và đặt giá trị bạn muốn.

    Ví dụ: Mình sẽ làm với @actor_command_window (Là cái window có các lựa chọn Attack, Skill, Guard, ...)
    Ở trên nếu muốn làm mờ toàn bộ Window, mình sẽ dùng thuộc tính opacity.

    [php]
    def create_actor_command_window
    @actor_command_window = Window_ActorCommand.new
    @actor_command_window.viewport = @info_viewport
    @actor_command_window.set_handler(:attack, method(:command_attack))
    @actor_command_window.set_handler(:skill, method(:command_skill))
    @actor_command_window.set_handler(:guard, method(:command_guard))
    @actor_command_window.set_handler(:item, method(:command_item))
    @actor_command_window.set_handler(:cancel, method(:prior_command))
    @actor_command_window.x = Graphics.width

    #Làm mờ Window
    @actor_command_window.opacity = 100
    end
    [/php]

    Cách trên sẽ thêm code trực tiếp vào code nguồn, điều này theo mình là không nên (ở trên chủ yếu là giúp bạn hiểu hơn).
    Do đó có cách khác để thêm code vào mà không trực tiếp sửa code nguồn là sử dụng: alias.
    Bạn có thể viết dòng code này ở 1 section khác, đặt tên là Custom Battle Window chẳng hạn (1 cái script mới, script này sẽ tác động vào script nguồn).

    Ví dụ: Code ở trên có thể sửa thành:
    [php]
    alias sl_create_actor_command_window create_actor_command_window
    def create_actor_command_window
    sl_create_actor_command_window
    #Làm mờ Window
    @actor_command_window.opacity = 100
    end
    [/php]


    Còn cái battle back kia mình nghĩ là dùng Photoshop, còn cách làm thì mình nghĩ là:
    1. Vẽ tile map (chỉ vẽ nền thôi).
    2. Chụp ảnh (có thể chạy game rồi chụp).
    3. Dùng pts làm nghiêng cái ảnh
    4. Chèn cây cỏ hoa lá vào (cái này ko cần làm nghiêng, để mặc định sẽ tạo cảm giác chúng dựng đứng, nhìn giống 3D hơn) :D
    5. Xong rồi thì lưu ảnh lại bỏ vào làm battleback thôi
  • TkTsTkTs Posts: 482Registered
    Thank you. Đã làm được. :)
Sign In or Register to comment.