Меню сайта
Наш опрос
Нужен ли раздел видео на сайте?
Всего ответов: 45
Статистика
Форма входа
Мини-чат
200
Поиск
Друзья сайта
  • Оффициальный сайт Love2D
  • Пожертвовать
    Love 2D

    Уроки по Созданию игр и разработке приложений с Love2D

    Главная » Файлы » Исходники для Love 2D

    свет и освещение
    [ Скачать с сервера (7.7 Kb) ] 06.06.2013, 17:33
    в общем я сделал новую либу
    в которой есть цветное освещение
    вот пример:
    Код

    require "jLight"

    gr = love.graphics
    ms = love.mouse

    function love.load()
      W, H = gr.getMode()
      jLight.Init(W, H)
      jLight.SetShadowColor(0, 0, 0)
      blue_light = jLight.AddPointSrc(0, 0, 200, {255, 128, 0})-- x, y, raius, {color}
    end

    function love.update(dt)
      ms.x, ms.y = ms.getPosition()
      blue_light.x = ms.x
      blue_light.y = ms.y
    end

    function love.draw()
      jLight.Clear()
      jLight.Begin(jLight.Src.Point)
      jLight.Wall(300, 300, 400, 300)
      jLight.Wall(300, 300, 300, 400)
      jLight.Wall(400, 400, 400, 300)
      jLight.Wall(400, 400, 300, 400)
      jLight.Sphere(500, 350, 25)
      jLight.End()
      jLight.Flush()
    end


    вот ещё пример:

    Код

    require "jLight"

    gr = love.graphics
    ms = love.mouse

    function love.load()
      W, H = gr.getMode()
      jLight.Init(W, H)
      jLight.SetShadowColor(0, 0, 0)
      red_light = jLight.AddDirectionalPointSrc(0, 0, 200, 0, 60, {255, 0, 0})-- x, y, raius, direction, width, {color}
      green_light = jLight.AddDirectionalPointSrc(0, 0, 200, 120, 60, {0, 128, 0})-- x, y, raius, direction, width, {color}
      blue_light = jLight.AddDirectionalPointSrc(0, 0, 200, 0, 60, {0, 0, 255})-- x, y, raius, direction, width, {color}
       
    end

    function love.update(dt)
      ms.x, ms.y = ms.getPosition()
      red_light.x = ms.x
      red_light.y = ms.y
      green_light.x = ms.x
      green_light.y = ms.y
      blue_light.x = ms.x
      blue_light.y = ms.y
      red_light.d = red_light.d + 1
      green_light.d = green_light.d + 1
      blue_light.d = blue_light.d + 1
    end

    function love.draw()
      jLight.Clear()
      jLight.Begin(jLight.Src.DirectionalPoint)
      jLight.Wall(300, 300, 400, 300)
      jLight.Wall(300, 300, 300, 400)
      jLight.Wall(400, 400, 400, 300)
      jLight.Wall(400, 400, 300, 400)
      jLight.Sphere(500, 350, 25)
      jLight.End()
      jLight.Flush()
    end


    ну и вот последний пример:

    Код

    require "jLight"

    gr = love.graphics
    ms = love.mouse

    function love.load()
      W, H = gr.getMode()
      jLight.Init(W, H)
      jLight.SetShadowColor(0, 0, 0)
      torch_light = jLight.AddPointSrc(0, 0, 200, {255, 196, 128})-- x, y, raius, {color}
      sun_light = jLight.AddDirectionalSrc(math.rad(255), {128, 192, 255}) -- direction, {color}
    end

    function love.update(dt)
      ms.x, ms.y = ms.getPosition()
      blue_light.x = ms.x
      blue_light.y = ms.y
    end

    function love.draw()
      jLight.Clear()

      jLight.Begin(jLight.Src.Point)
      _Terrain()
      jLight.End()

      jLight.Begin(jLight.Src.Directional)
      _Terrain()
      jLight.End()

      jLight.Flush()
    end

    function _Terrain()
      -- section 1
      jLight.Wall(300, 300, 400, 300)
      jLight.Wall(300, 400, 400, 400)
      -- section 2
      jLight.Wall(400, 300, 500, 300)
      jLight.Wall(400, 400, 500, 400)
      -- section 3
      -- jLight.Wall(500, 300, 600, 300)
      jLight.Wall(500, 400, 600, 400)
      -- section 4
      jLight.Wall(500, 200, 600, 200)
      jLight.Wall(500, 200, 500, 300)
      jLight.Wall(600, 300, 600, 200)
      -- section 5
      jLight.Wall(600, 300, 700, 300)
      jLight.Wall(600, 400, 700, 400)
      jLight.Wall(700, 300, 700, 400)
    end


    в общем это всё.
    Категория: Исходники для Love 2D | Добавил: skorp337 | Теги: Light, примеры, Lua
    Просмотров: 1031 | Загрузок: 50 | Комментарии: 4 | Рейтинг: 5.0/1
    Всего комментариев: 3
    3 skorp337  
    0
    да, кстате
    в примерах выше у вас возможно будет черный экран
    так как свету нечего освещать, если же так будет то
    нарисуйте там ну картинку какую то
    ну или просто белый фон
    можно также использовать
    ссылку с примером
    https://www.dropbox.com/s/gs2bzscbv8ouonu/exapmle.love

    2 skorp337  
    0
    свет не осветляет цвета а только служит для них как ColorMask
    т.е. если ты поставишь белый свет на черном фоне то результат будет черный
    но думаю ты итак это понял

    лучше всего рисовать на каком то фоне ( цвете или картинке )

    1 skorp337  
    0
    черный экран? ахахаха biggrin
    это у тебя черный фон и черные тени :DDD
    да и теперь я новую сделал
    с цветным освещением

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Смотри там все для ucoz очень много полезной инфы для ucoz.
    Вот все о роке - социальная сеть для рокеров России
    Также есть сайт, где можно посмотреть даты выхода игр без регистрации.
    Также можете посетить официальный сайт Леонова и .
    популярный сайт новинки игр на pc 2013 с обзорами авто.
    Уделите также внимание рок сайт , лучшие рок песни