Хорошо! Хорошо!:  0
Плохо! Плохо!:  0
Показано с 1 по 8 из 8

Тема: Graphics

  1. #1

    По умолчанию Graphics

    Порядок следования:
    WinAPI
    Screen
    Graphics

    Код:
    #==============================================================================
    # Graphics
    #------------------------------------------------------------------------------
    # Модуль, отвечающий за обработку графики.
    #==============================================================================
    module Graphics
      #-----------------------------------------------------------------------------
      # Возвращает ширину игрового экрана (integer)
      #-----------------------------------------------------------------------------
      def self.width
        return Screen.window_rect.width
      end
      #-----------------------------------------------------------------------------
      # Возвращает высоту игрового экрана (integer)
      #-----------------------------------------------------------------------------
      def self.height
        return Screen.window_rect.height
      end
      #----------------------------------------------------------------------------
      # * Возвращает "яркость экрана" (обратное значение непрозрачности спрайта)
      #----------------------------------------------------------------------------
      def self.brightness
        return -(@brightness.opacity - 255)
      end
      #----------------------------------------------------------------------------
      # * Устанавливает "яркость экрана" (обратное значение непрозрачности спрайта)
      #     new_brightness : integer - яркость (0 - 255)
      #----------------------------------------------------------------------------
      def self.brightness=(new_brightness)
        @brightness.opacity = -(new_brightness - 255)
      end
      #----------------------------------------------------------------------------
      # * Пропускает заданное количество кадорв (обновляя экран)
      #     duration : integer - количество кадров
      #----------------------------------------------------------------------------
      def self.wait(duration)
        duration.times do
          Graphics.update
        end
      end
      #----------------------------------------------------------------------------
      # * Уменьшает "яркость" до 0 за заданное количество кадров
      #     duration : integer - количество кадров
      #----------------------------------------------------------------------------
      def self.fadeout(duration)
        n = (255 - @brightness.opacity).to_f / duration.to_f
        n = n.round
        for i in 0..duration
          break if @brightness.opacity + n > 255
          @brightness.opacity += n
          Graphics.update
        end
        @brightness.opacity = 255
      end
      #----------------------------------------------------------------------------
      # * Увеличивает "яркость" до 255 за заданное количество кадров
      #     duration : integer - количество кадров
      #----------------------------------------------------------------------------
      def self.fadein(duration)
        n = 255.0 / duration.to_f
        n = n.round
        for i in 0..duration
          break if @brightness.opacity - n < 0
          @brightness.opacity -= n
          Graphics.update
        end
        @brightness.opacity = 0
      end
      #----------------------------------------------------------------------------
      @brightness = Sprite.new
      @brightness.opacity = 0
      @brightness.bitmap = Bitmap.new(width, height)
      @brightness.bitmap.fill_rect(0, 0, width, height, Color.new (0, 0, 0, 255))
      @brightness.z = 3000
      #----------------------------------------------------------------------------
    end
    Последний раз редактировалось Equilibrium Keeper; 16.07.2011 в 13:20.

  2. #2

    По умолчанию

    Тэкс, здесь нужна основательная правка. Методы width и height (из VX) должны возвращать размеры игровой области. Стандартно - 640х480. Но на данный момент они возвращают размеры всего окна. А его рамка, входящая в них, зависит от используемой темы Windows - меняются и размеры. Что делаем? Константы - плохой вариант.
    Последний раз редактировалось Equilibrium Keeper; 16.07.2011 в 13:21.

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

    По умолчанию

    А можно ли через WinApi убрать вс выступающие элементы окна?т.е. сделат просто область обрисовки, без рамки и заголовка?
    Конференция со свободным входом:

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

  4. #4

    По умолчанию

    Можно, задав вот этой вот функцией: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx набор из вот этих вот стилей: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Теоретически, если передать 0, то оно как раз и выйдет без всего. Ты предлагаешь таким образом избавиться от оформительской мишуры, измерить размеры, и вернуть все как было?

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

    По умолчанию

    Можно и так.А можно просто убрать и ничего не возвращать.
    Конференция со свободным входом:

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

  6. #6

    По умолчанию

    А как же крестик?

  7. #7
    Мастер Форума Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    8,279
    Записей в дневнике
    2
    Репутация: 87 Добавить или отнять репутацию

    По умолчанию

    Крестик нужен. Закрывать проект быстро. Когда правишь игру, раз сто запускаешь, через меню долго.

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

    По умолчанию

    alt+f4 и также реализовать возможность выхода через интерфейс, а для тест моде еще какой хоткей придумать.

    оффтоп: это мой последний пост, выйду на связь через месяц.
    Конференция со свободным входом:

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

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

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

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

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

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

Ваши права

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