Плохо! Плохо!:  0
Страница 4 из 6 ПерваяПервая ... 23456 ПоследняяПоследняя
Показано с 31 по 40 из 55

Тема: Mini Map

  1. #31
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

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


  2. #32
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    Маленькая гордая стана в центре Европы[точка]
    Сообщений
    1,381
    Записей в дневнике
    49
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Какой командой ты задаешь прозрачность ?
    Последний раз редактировалось Рыб; 13.02.2011 в 22:18. Причина: "...задаешь прозрачность делаешь?"©
    Конференция со свободным входом:

    но Я БЫ ВЫБРАЛ РЕСЛИНГ"

  3. #33
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    Я в самом коде мини карты перед каждой командой, которая что то рисует ставлю иф,
    если такая то глоб переменная($map_opac я её нозвал) ровна тру то opacity делать 200, а есле нет то opacity делать 0
    и потом в игре просто выполняем команду $map_opac = true(что бы вернуть видимость)
    сама карта возвращаеться а вот рамка(окно) остаёться прозрачной пока не обновиш


  4. #34
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    Маленькая гордая стана в центре Европы[точка]
    Сообщений
    1,381
    Записей в дневнике
    49
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Код с студию (вообще при задании вопросов, связанный с помошью, лучше сразу давать код, скрины(тексты) ошибок и все что можно).
    Мы, увы, не телепаты. А допрос то проводить не охота. Тем более я, к примеру, не профи и в руби понимаю мизер.
    Так что чем подробнее расскажешь тем более вероятно, что будут отвечать в тему...
    Дальше прозрачность меняется так:

    PHP код:
    @window_mini_map.new 
    //blabla
    @a.opacity = (цифра
    Если ты хочешь сделать возможность скрытия (убрать на время миникарту)
    То перед каждой командой отрисовки не обзетально, достаточно сделать так:

    PHP код:
    def refresh
    self
    .contents.clear
    if $show_hud != false// БАГ ФИКС if @show_hud ==true
      
    @x=$game_variables[X# Х поз
      
    @y=$game_variables[Y# У поз 
      
    @map=$game_map # мапа
      
    @tid=@map.tileset_name.to_i # Ид тайлсета (имя файла)\\ доработать##(имя тайла должно содержать номер тайлсета)
      
    self.contents.fill_rect(0,0,20*R,20*RColor.new(250,250,250,200))
      
    mini_map 
      self
    .contents.fill_rect(@x*R-@x1*R,@y*R-@y1*R,R,RColor.new(255,0,0,200))
    end
    end 


    update: маразматик я((( вместо $show_hud, написал @show_hud
    Последний раз редактировалось Рыб; 13.02.2011 в 23:32. Причина: Красоту наводил, запятые ставил + см. Update
    Конференция со свободным входом:

    но Я БЫ ВЫБРАЛ РЕСЛИНГ"

  5. #35
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    вот код с изменённой миникртой
    Код:
    R=4 # размер квадрата
    DX=25*R+12 # ширина
    DY=20*R+12 # высота
    X_POS=640-DX # позиция по х
    Y_POS=480-DY # позиция по у
    X=1
    Y=2
    
    class Scene_Map
    
    alias scene_map_main main
    alias scene_map_update update
    
    def main
    # рисуем окно
    @stats_window = Window_Mini_map.new 
    if $mini_map_opac == true
       @stats_window.opacity = 85
     else
       @stats_window.opacity = 0
     end
     
    @stats_window.x = X_POS
    @stats_window.y = Y_POS
    #-------------------------------------------------
    scene_map_main # Вызываем настоящию Scene_Map
    @stats_window.dispose
    end
    
    def update
    @stats_window.update
    scene_map_update # call REAL Scene_Map update
    end
    
    end
    
    class Window_Mini_map < Window_Base
    
    def initialize
    super(0, 0, DX, DY)
    self.contents = Bitmap.new(20*R, 15*R)
    @counter = 1
    self.x=0
    self.y=0
    refresh
    end
    
    def refresh
    self.contents.clear
    @x=$game_variables[X] # Х поз
    @y=$game_variables[Y] # У поз 
    @map=$game_map # мапа
    @tid=@map.tileset_name.to_i # Ид тайлсета (имя файла)\\ доработать##(имя тайла должно содержать номер тайлсета)
    if $mini_map_opac == true
        self.contents.fill_rect(0,0,20*R,20*R, Color.new(250,250,250,200))
      else
        self.contents.fill_rect(0,0,20*R,20*R, Color.new(250,250,250,0))
      end
    mini_map 
    if $mini_map_opac == true
        self.contents.fill_rect(@x*R-@x1*R,@y*R-@y1*R,R,R, Color.new(255,0,0,200))
      else
        self.contents.fill_rect(@x*R-@x1*R,@y*R-@y1*R,R,R, Color.new(255,0,0,0))
      end
    end
    
    #------------------------------------------------------------------------
    
    
    
    
    def mini_map 
    #------------------------------------------------------------------------
    #------------------------------------------------------------------------
    @x1=0
    @x2=19
    @y1=0
    @y2=14
    #------------------------------------------------------------------------
    #------------------------------------------------------------------------
    if @map.width>20 
    if @x>=10
    then 
    @x1=@x-10 
    @x2=@x+9 
    else 
    @x1=0 
    @x2=19
    end
    end 
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    if @map.height>15
    if @y>=7 
    then 
    @y1=@y-7
    @y2=@y+7
    else
    @y1=0
    @y2=14
    end 
    end
    #------------------------------------------------------------------------
    #------------------------------------------------------------------------
    for i in @x1..@x2
    for j in @y1..@y2
    mini_map_ini(i,j)
    end
    end 
    #------------------------------------------------------------------------
    #------------------------------------------------------------------------
    end 
    
    #------------------------------------------------------------------------
    #------------------------------------------------------------------------
    def mini_map_ini(i,j)
    begin p0=$data_tilesets[@tid].passages[@map.data[i,j,0]] rescue p0=666 end # проходимость слоя 1
    begin p1=$data_tilesets[@tid].passages[@map.data[i,j,1]] rescue p1=666 end # проходимость слоя 2
    begin p2=$data_tilesets[@tid].passages[@map.data[i,j,2]] rescue p0=666 end # проходимость слоя 3 
    
    mini_map_paint(p0,p1,p2,i,j) 
    end 
    
    #-------------------------------
    # рисуем ректы мапы (доработать)
    #-------------------------------
    
    def paint(i,j,r=0,g=0,b=0,a=200)
    self.contents.fill_rect(i*R-@x1*R,j*R-@y1*R,R,R, Color.new(r,g,b,a))
    end 
    
    def case_p(p,i,j)
    case p
    when 0 
    when 666 
    paint(i,j,0,0,0)
    when 143 
    paint(i,j,150,0,150) 
    when 64
    paint(i,j,150,150,150) 
    else 
    if p>=1 and p<15 then paint(i,j,125,125,125) else paint(i,j,0,0,0) end
    end
    end 
    
    def mini_map_paint(p0,p1,p2,i,j)
    case_p(p0,i,j)
    case_p(p1,i,j)
    case_p(p2,i,j)
    end 
    #-------------------------------
    # обновляем через @counter кадров, малое значение вызывает лаги, наверно...
    #-------------------------------
    
    def update
    super
    @counter -= 1
    if @counter == 0 
    refresh
    @counter = 1
    end
    end
    end
    чтобы сделать карту прозрачной нужно вызвать скрипт и написать туда $mini_map_opac = false
    непрозрачной true
    изночально у нас false
    я ставлю в игре true(после показа роликков , где я мини карту сделал прозрачной) и после этого мини карта стоновиться обычной кроме окна с ней.
    Окно стоновиться непрозрачным после обновления
    как его сделать


  6. #36
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    Маленькая гордая стана в центре Европы[точка]
    Сообщений
    1,381
    Записей в дневнике
    49
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Под обновлением ты понимаешь:
    PHP код:
    @Scene_Map.new
    @
    x.update 
    Если да, то после этак пятого ролика, с таким подходом, твоя игра будет кушать больше, чем детища Crytech.
    просто попробуй в оригинальный скрипт добавить мой кусок.

    И перед выполнением скрипта выполни:
    просто
    $show_hud = true//false
    Последний раз редактировалось Рыб; 13.02.2011 в 23:30. Причина: Про крайтек я вру. Ну надо было чем-то человека напугать ;) Ибо не хорошо, каждый раз инициализировать класс. Не
    Конференция со свободным входом:

    но Я БЫ ВЫБРАЛ РЕСЛИНГ"

  7. #37
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    спс
    кстати в скриптах я тоже не очень


  8. #38
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    а что писать
    тру или фолсе
    или сразу оба как у тебя


  9. #39
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    не работает почему
    ты имел ввиду поставит иф на весь код
    if $show_hud = false
    код миникарты
    я потом именяю $show_hud на true и нечего не происходит


  10. #40
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    я делал таким же способом
    карта повляеться кроме рамки(окна)
    чтобы она появилась нужно обновить


Страница 4 из 6 ПерваяПервая ... 23456 ПоследняяПоследняя

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

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

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

Метки этой темы

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

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

Ваши права

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