Перейти к содержимому
newbie

Снеговик

Рекомендуемые сообщения

Вообщем вдохновившись работой Doob-a елочкой, захотелось сделать своего Снеговика и прилепить к нему анимацию снега.


NaoCFJptzEqFq3RhT8g.jpg


 
код тут: http://pastebin.com/sY92P0jU
 
Прошу тапками сильно не кидать. Но адекватную критику приму с радостью)

Изменено пользователем newbie

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Хоть убей, не пойму назначения вот этой конструкции: y = 1 for y = 1, 3 do y = y end

действительно спасибо, это было попытка сделать руку толще, потом передумал, а код не поправил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

К стати, вот как я реализовал снег

 

 

local tSnow = {}

local function gen_snow() -- генерируем снежинку
  local x, y, z = math.random(1, 46), 32, math.random(1, 46)
  table.insert(tSnow,{x=x,y=y,z=z})
  hologram.set(x, y, z, 1)
end

local function falling_snow() -- сдвигаем снежинки вниз
  local i=1
  while i<=#tSnow do
    if tSnow[i].y>1 then
	local x,y,z=tSnow[i].x+math.random(-1, 1), tSnow[i].y-1, tSnow[i].z+math.random(-1, 1)
	if x<1 then x=1 end
	if x>46 then x=46 end
	if z<1 then z=1 end
	if z>46 then z=46 end
	c=hologram.get(x, y, z)
	if c==0 or c==1 then
          hologram.set(tSnow[i].x, tSnow[i].y, tSnow[i].z, 0)
	  tSnow[i].x, tSnow[i].y, tSnow[i].z=x,y,z
          hologram.set(x, y, z, 1)
          i=i+1
        else
	  table.remove(tSnow,i)
        end	  
     else
	table.remove(tSnow,i)
     end
     os.sleep(0)
  end
end
 
hologram.clear()

while true do
  gen_snow()
  falling_snow()
end 

 

 

Получилось намного более реалистично и снежинки оседают на других элементах голограммы.  Но os.sleep(0) ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поставь счётчик итерации, и через н количество вызывай слип.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Снег невероятный но через 5 минут сделал вот что с моим снеговиком

 

au2ld3aBvU2IRZ46mH6iQ.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Такого он сделать не мог. Попробуй не перерисовывать в цикле снеговика. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообщем чутка еще поигрался со снеговиком, добавил счетчик на цикл снега, сон программы, более менее адекватное поведение снеговика при попадании на него снега. Работает нормально на золотом компьютере с минимальной конфигурацией. Спасибо Zer0Galaxy за снег.
Сам код: http://pastebin.com/RYr6xFEn

Немножко демонстрации.

http://coub.com/view/9outp

Изменено пользователем newbie

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...