Суббота, 18 Августа 2018, 17:58

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [309]
Статьи об общих понятиях связанных с созданием игр.
Программирование [69]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [83]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [63]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Разработка игр для вас:
Всего ответов: 10816
Главная » Статьи » Создание игр

GameGuru. Маргание света

GameGuru. Моргание света
Первоначально соберите схему, добавив источник света, на который повесите скрипт, и игрока.
В скрипте очень важны первоначальные переменные
Код
local state = {}
local delay = {}
local init_delay = {}
local on = {}

Они отвечают за положение света, задержку и статус включения для моргания. Далее мы объявляем условия для положений:
Код
if state[e] == 'blinking' then
elseif state[e] == 'blinking-r' then
elseif state[e] == 'on' then
else
end

В последних двух случаях все просто,:
Код
elseif state[e] == 'on' then
  ShowLight(e)
  else
  HideLight(e)
  end

Ну а для однородного моргания света нам нужно проверить таймер и включен ли свет:
Код
if GetTimer(e) > delay[e] then
if on[e] == 0 then
  on[e] = 1
  ShowLight(e)
  else
  on[e] = 0
  HideLight(e)
  end
end

Ну и сама задержка будет выглядеть как таймер + базовое ожидание:
Код
delay[e] = GetTimer(e) + init_delay[e]

Аналогично для рандома:
Код
delay[e] = GetTimer(e) + math.random(100,1500)

Полный скрипт:
Код
local state = {}
local delay = {}
local init_delay = {}
local on = {}

function light2_init(e)
  state[e] = "blinking-r"
  delay[e] = 250
  init_delay[e] = delay[e]
  on[e] = 0
end

function light2_main(e)
  if state[e] == 'blinking' then
  -- blinking light
  if GetTimer(e) > delay[e] then
  if on[e] == 0 then
  on[e] = 1
  ShowLight(e)
  else
  on[e] = 0
  HideLight(e)
  end
  delay[e] = GetTimer(e) + init_delay[e]
  end
  elseif state[e] == 'blinking-r' then
  -- blinking random light
  if GetTimer(e) > delay[e] then
  if on[e] == 0 then
  on[e] = 1
  ShowLight(e)
  else
  on[e] = 0
  HideLight(e)
  end
  delay[e] = GetTimer(e) + math.random(100,1500)
  end
  elseif state[e] == 'on' then
  ShowLight(e)
  else
  HideLight(e)
  end
end

Спасибо за внимание. С вами был Максим Епихин

Источник: КЛИК»
Категория: Создание игр | Добавил: mepihindeveloper (29 Декабря 2015) | Автор: Максим Епихин
Просмотров: 2374 | Комментарии: 3 | Рейтинг: 5.0/1 |
Теги: как создать игры, LUA, Программирование, Разработка игр, easy game maker, обзор, GameGuru, на русском, Обучение, для новичков
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «GameGuru. Маргание света», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 3
+1-
3 Dj_FroZTBite   (01 Января 2016 00:58)
Dj_FroZTBiteмОргание.

+3-
1 TLT   (29 Декабря 2015 17:00)
TLTСлишком мелкие уроки... зачем так дробить? Как сделать шаг, как поставить ногу, как выпрямить тело... Лучше делать цельный урок.

+0-
2 mepihindeveloper   (29 Декабря 2015 20:04)
mepihindeveloperхорошо, учту

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Tombstone Engine
  • DzQ
  • Doomsday
  • Android Game Creator
  • Leadwerks
  • Vizard
  • Voxatron
  • Quest 3D
  • LinCity
  • Green Elf Game Engine
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2018 Рейтинг