Показано с 1 по 8 из 8

Тема: Псевдо 3Д батлбек

  1. #1
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,156
    Репутация: 59 Добавить или отнять репутацию

    По умолчанию Псевдо 3Д батлбек

    Псевдо 3д батлбек
    Описание:
    Скрипт делает снимок снимок экрана и использует его в качестве батл бека эффектом псевдо 3д.
    Использование:
    Скрипт нужно вставить перед Main.
    Особенности:
    Два режима работы: пресловутый Mode7 и псевдо-3D
    Практически подключить и играть
    Дает пользователю возможность переключать карты размытию
    Предоставляет пользователю возможность изменять местоположение battlefloor изображения и прозрачность
    Спойлер Скриншоты:

    Спойлер Псевдо 3д:

    Спойлер Mode7:


    Скрипт:
    Код:
    #===============================================================================
    # Pseudo 3D Battlebacks
    #-------------------------------------------------------------------------------
    # Version: 1.1
    # Author: cozziekuns (rmrk)
    # Last Date Updated: 7/25/2011
    #===============================================================================
    # Description:
    #-------------------------------------------------------------------------------
    # This script is a completely plug and play solution to the aesthetically dull
    # default, wavy looking battle background. It instead takes a snapshot of the 
    # screen and then renders a Pseudo 3D image that varies depending on your settings.
    #===============================================================================
    # Updates
    #-------------------------------------------------------------------------------
    # o 7/31/2011 - Updated with some fixes.
    # o 7/25/2011 - Started Script
    #===============================================================================
    # To-do List
    #------------------------------------------------------------------------------- 
    # o More Modes.
    #===============================================================================
    # Instructions
    #-------------------------------------------------------------------------------
    # Copy and paste this script above ? Main Process but below ? Materials, and
    # edit the modules to your liking. Some difficult modules have links to the 
    # instructions. 
    #===============================================================================
    # Mode
    #-------------------------------------------------------------------------------
    # MODE: 
    #  0 => A Mode7 like feature that changes the zoom values of Tiles B through E 
    #       as well as A.
    #  1 => A more realistic 3D like feature that only changes the zoom values of 
    #       TileA.
    #===============================================================================
    
    module COZZIEKUNS
      module P3D_BATTLE_BACKGROUNDS
        
        MODE = 1
        BLUR = false # Do you want to blur the background?
        
        FLOOR_X = 0 # X value of Battlefloor
        FLOOR_Y = 192 # Y value of BattleFloor
        FLOOR_OPACITY = 0 # Opacity of BattleFloor
        
        ZOOM = 2 # Zoom value
        
      end
    end
    
    #==============================================================================
    # ** Game_Temp
    #------------------------------------------------------------------------------
    #  This class handles temporary data that is not included with save data.
    # The instance of this class is referenced by $game_temp.
    #==============================================================================
    
    class Game_Temp
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :layer1_vis
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias coz_gt_3d_battleback_initialize initialize
      def initialize
        coz_gt_3d_battleback_initialize
        @layer1_vis = false
      end
    end
    
    #==============================================================================
    # ** Scene_Map
    #==============================================================================
    
    class Scene_Map
      #--------------------------------------------------------------------------
      # * Create Snapshot for Using as Background of Another Screen
      #--------------------------------------------------------------------------
      alias coz_fixed3d_snapshot_for_background snapshot_for_background
      def snapshot_for_background
        if $scene.is_a?(Scene_Battle)
          case COZZIEKUNS::P3D_BATTLE_BACKGROUNDS::MODE
          when 0
            $game_temp.background_bitmap.dispose
            $game_temp.background_bitmap = Graphics.snap_to_bitmap
            @spriteset.dispose_layer_all
            $game_temp.background_bitmap = Graphics.snap_to_bitmap
          when 1
            @spriteset.dispose_layer2 
            $game_temp.background_bitmap.dispose
            $game_temp.background_bitmap = Graphics.snap_to_bitmap
            @spriteset.dispose_layer1
            $game_temp.background_bitmap = Graphics.snap_to_bitmap
          end
        end
      else
        coz_fixed3d_snapshot_for_background
      end
    end
    
    #==============================================================================
    # ** Spriteset_Map
    #==============================================================================
    
    class Spriteset_Map
      #--------------------------------------------------------------------------
      # * Create Dummy Sprite
      #--------------------------------------------------------------------------
      def create_dummy_sprite
        zoom = COZZIEKUNS::P3D_BATTLE_BACKGROUNDS::ZOOM - 1
        source = $game_temp.background_bitmap
        bitmap = source
        @battleback_sprites = []
        for i in 0...416
          battleback_sprite = Sprite.new(@viewport1)
          battleback_sprite.bitmap = bitmap
          battleback_sprite.src_rect.set(0, i, 544, 1)
          battleback_sprite.x = -(i / (2).to_f) * zoom
          battleback_sprite.y = i 
          battleback_sprite.z = -1
          battleback_sprite.zoom_x = (i * (zoom / (416).to_f)) + 1
          @battleback_sprites.push(battleback_sprite)
        end
      end
      #--------------------------------------------------------------------------
      # * Dispose
      #--------------------------------------------------------------------------
      alias coz_spm_3d_battleback_dispose dispose
      def dispose
        dispose_dummy_sprite if @battleback_sprites != nil
        coz_spm_3d_battleback_dispose
      end
      #--------------------------------------------------------------------------
      # * Dispose Layer1 Tilemap
      #--------------------------------------------------------------------------
      def dispose_layer1
        @tilemap.bitmaps[0] = nil
        @tilemap.bitmaps[1] = nil
        @tilemap.bitmaps[2] = Cache.system("TileA3")
        @tilemap.bitmaps[3] = Cache.system("TileA4")
        @tilemap.bitmaps[4] = nil
        @tilemap.bitmaps[5] = Cache.system("TileB")
        @tilemap.bitmaps[6] = Cache.system("TileC")
        @tilemap.bitmaps[7] = Cache.system("TileD")
        @tilemap.bitmaps[8] = Cache.system("TileE")
        create_dummy_sprite
        @tilemap.update
      end
      #--------------------------------------------------------------------------
      # * Dispose Layer 2
      #--------------------------------------------------------------------------
      def dispose_layer2
        @tilemap.bitmaps[0] = Cache.system("TileA1")
        @tilemap.bitmaps[1] = Cache.system("TileA2")
        @tilemap.bitmaps[2] = nil
        @tilemap.bitmaps[3] = nil
        @tilemap.bitmaps[4] = Cache.system("TileA5")
        @tilemap.bitmaps[5] = nil
        @tilemap.bitmaps[6] = nil
        @tilemap.bitmaps[7] = nil
        @tilemap.bitmaps[8] = nil
        @tilemap.update
      end
      #--------------------------------------------------------------------------
      # * Dispose Layer All
      #--------------------------------------------------------------------------
      def dispose_layer_all
        create_dummy_sprite
        @tilemap.bitmaps[0] = nil
        @tilemap.bitmaps[1] = nil
        @tilemap.bitmaps[2] = nil
        @tilemap.bitmaps[3] = nil
        @tilemap.bitmaps[4] = nil
        @tilemap.bitmaps[5] = nil
        @tilemap.bitmaps[6] = nil
        @tilemap.bitmaps[7] = nil
        @tilemap.bitmaps[8] = nil
        @tilemap.update
      end
      #--------------------------------------------------------------------------
      # * Dispose Dummy Sprite
      #--------------------------------------------------------------------------
      def dispose_dummy_sprite
        for sprite in @battleback_sprites
          sprite.dispose
        end
      end
    end
    
    #==============================================================================
    # ** Spriteset_Battle
    #==============================================================================
    
    class Spriteset_Battle
      #--------------------------------------------------------------------------
      # * Create Battleback Sprite
      #--------------------------------------------------------------------------
      def create_battleback
        @battleback_sprite = Sprite.new(@viewport1)
        @battleback_sprite.bitmap = $game_temp.background_bitmap.clone
        @battleback_sprite.bitmap.blur if COZZIEKUNS::P3D_BATTLE_BACKGROUNDS::BLUR
      end
      #--------------------------------------------------------------------------
      # * Create Battlefloor Sprite
      #--------------------------------------------------------------------------
      def create_battlefloor
        @battlefloor_sprite = Sprite.new(@viewport1)
        @battlefloor_sprite.bitmap = Cache.system("BattleFloor")
        @battlefloor_sprite.x = COZZIEKUNS::P3D_BATTLE_BACKGROUNDS::FLOOR_X
        @battlefloor_sprite.y = COZZIEKUNS::P3D_BATTLE_BACKGROUNDS::FLOOR_Y
        @battlefloor_sprite.z = 1
        @battlefloor_sprite.opacity = COZZIEKUNS::P3D_BATTLE_BACKGROUNDS::FLOOR_OPACITY
      end
    end
    Последний раз редактировалось Seibur; 12.07.2012 в 19:10.
    Наши взгляды как наши часы; все они показывают разное время, но каждый верит только своим

  2. #2

    По умолчанию

    Было бы реалистичнее, если бы автор сделал второй слой с карты в другой плоскости, например, земля наклонена так как есть, а деревья стояли бы вертикально.
    Можете подкинуть ему идею, впрочем, уже неплохое начало


    Dropbox — бесплатное хранилище файлов с прямыми ссылками.

    Humble Bundle — игры, подборки и наборы со скидками.

  3. #3
    Авторитет Аватар для Злодей
    Информация о пользователе
    Регистрация
    28.05.2010
    Адрес
    Краснодар
    Сообщений
    1,515
    Записей в дневнике
    7
    Репутация: 61 Добавить или отнять репутацию

    По умолчанию

    По-моему это псевдо 2д баттлбэк)
    Пардон за каламбур.


    Спойлер 1:


  4. #4
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,156
    Репутация: 59 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Arnon Посмотреть сообщение
    Было бы реалистичнее, если бы автор сделал второй слой с карты в другой плоскости, например, земля наклонена так как есть, а деревья стояли бы вертикально.
    Можете подкинуть ему идею, впрочем, уже неплохое начало
    Скрипт дорабатываеться...На данный момент по моему ето толька 3 версия
    Наши взгляды как наши часы; все они показывают разное время, но каждый верит только своим

  5. #5
    Бывалый Аватар для ViRSneG
    Информация о пользователе
    Регистрация
    08.09.2010
    Адрес
    П.-Камчатский
    Сообщений
    620
    Записей в дневнике
    2
    Репутация: 25 Добавить или отнять репутацию

    По умолчанию

    Пожалейте глаза игроков - уберите размытость!

    Но одно могу сказать точно: я ничего не могу сказать точно!
    Спойлер Страх мейкериста:
    [18:42] ReDS: куча паралельных ивентов и скриптовая ошибка посреди проекта

  6. #6

  7. #7
    Познающий Аватар для Kian Ni
    Информация о пользователе
    Регистрация
    01.08.2013
    Сообщений
    422
    Записей в дневнике
    6
    Репутация: 7 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Alexander Посмотреть сообщение
    Не судьба.

  8. #8
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,156
    Репутация: 59 Добавить или отнять репутацию

    По умолчанию

    А мейкер у вас ВиИкс?
    Он не под асе.
    Наши взгляды как наши часы; все они показывают разное время, но каждый верит только своим

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •