Вверх ↑
Этот топик читают: Гость
Ответов: 126
Mafia
Консильери
#1: 2020-10-19 00:27:32 ЛС | профиль | цитата
Обновление принесло нам возможность менять размеры вокселей, из которых теперь получается красивый снегопад, в дополнение к ёлочке) Новый Год не за горами)

Снежинки простенькие

function init(){
VOXELS_COUNT = 5000 // количество вокселей
LIMIT_SPEED = 0 // 0 - максимальная скорость, больше - медленнее
SCALE_MIN = 0.1 // минимальный размер
SCALE_MAX = 0.3 // максимальный размер
BRIGHTNESS = 255 // яркость снежинки от 0 до 255
// размеры области отображения
X_MIN = -64 // влево от -64 до 79
X_MAX = 79 // вправо от -64 до 79
Z_MIN = -64 // назад от -64 до 79
Z_MAX = 79 // вперёд от -64 до 79
Y_MIN = -80 // вниз от -80 до 63
Y_MAX = 63 // вверх от -80 до 63
// смещение снежинки каждый такт
OFFSET_X = 0 // влево-вправо
OFFSET_Z = 0 // назад-вперёд
OFFSET_Y = -0.2 // вверх-вниз
// массив для вокселей
voxel = []
// инициализация вокселей
for( i = 0 ; i ‹ VOXELS_COUNT ; i++ ){
// базовые расположение и размер
x = rc( X_MIN , X_MAX )
y = rc( Y_MIN , Y_MAX )
z = rc( Z_MIN , Z_MAX )
s = rc( SCALE_MIN , SCALE_MAX )
// создание вокселя и задание параметров
t = display.voxel( x , y , z , color.rgb( BRIGHTNESS , BRIGHTNESS , BRIGHTNESS ) )
t.scale = s
// добавление вокселя в массив
voxel.push( t )
}
// переменная для реализации торможения
last_time = 0
}

function rc( min , max ){
// случайное число в заданных пределах
return min + Math.random() * ( max - min )
}

function update( time_now ){
// торможение выполнения
if( time_now - last_time ‹ LIMIT_SPEED ) return
last_time = time_now
// изменение параметров вокселей
for( i = 0 ; i ‹ VOXELS_COUNT ; i++ ){
// смещение относительно текущего расположения
x = OFFSET_X
y = OFFSET_Y
z = OFFSET_Z
voxel[i].offset( x , y , z )
// отражение при выходе за пределы отображения
if( voxel[i].cursorY ‹ Y_MIN ) voxel[i].cursorY = Y_MAX
}
}

Снежинки со смещениями, но больше нагружающие комп

function init(){
VOXELS_COUNT = 5000 // количество вокселей
LIMIT_SPEED = 0 // 0 - максимальная скорость, больше - медленнее
SCALE_MIN = 0.1 // минимальный размер
SCALE_MAX = 0.3 // максимальный размер
BRIGHTNESS = 255 // яркость снежинки от 0 до 255
// размеры области отображения
X_MIN = -64 // влево от -64 до 79
X_MAX = 79 // вправо от -64 до 79
Z_MIN = -64 // назад от -64 до 79
Z_MAX = 79 // вперёд от -64 до 79
Y_MIN = -80 // вниз от -80 до 63
Y_MAX = 63 // вверх от -80 до 63
// смещение снежинки каждый такт
OFFSET_X_MIN = -0.1 // минимум влево-вправо
OFFSET_X_MAX = 0.1 // максимум влево-вправо
OFFSET_Z_MIN = -0.1 // минимум назад-вперёд
OFFSET_Z_MAX = 0.1 // максимум назад-вперёд
OFFSET_Y_MIN = -0.1 // минимум вверх-вниз
OFFSET_Y_MAX = -0.5 // максимум вверх-вниз
// массив для вокселей
voxel = []
// инициализация вокселей
for( i = 0 ; i ‹ VOXELS_COUNT ; i++ ){
// базовые расположение и размер
x = rc( X_MIN , X_MAX )
y = rc( Y_MIN , Y_MAX )
z = rc( Z_MIN , Z_MAX )
s = rc( SCALE_MIN , SCALE_MAX )
// создание вокселя и задание параметров
t = display.voxel( x , y , z , color.rgb( BRIGHTNESS , BRIGHTNESS , BRIGHTNESS ) )
t.scale = s
// добавление вокселя в массив
voxel.push( t )
}
// переменная для реализации торможения
last_time = 0
}

function rc( min , max ){
// случайное число в заданных пределах
return min + Math.random() * ( max - min )
}

function update( time_now ){
// торможение выполнения
if( time_now - last_time ‹ LIMIT_SPEED ) return
last_time = time_now
// изменение параметров вокселей
for( i = 0 ; i ‹ VOXELS_COUNT ; i++ ){
// смещение относительно текущего расположения
x = rc( OFFSET_X_MIN , OFFSET_X_MAX )
y = rc( OFFSET_Y_MIN , OFFSET_Y_MAX )
z = rc( OFFSET_Z_MIN , OFFSET_Z_MAX )
voxel[i].offset( x , y , z )
// отражение при выходе за пределы отображения
if( voxel[i].cursorY ‹ Y_MIN ) voxel[i].cursorY = Y_MAX
if( voxel[i].cursorY › Y_MAX ) voxel[i].cursorY = Y_MIN
if( voxel[i].cursorX ‹ X_MIN ) voxel[i].cursorX = X_MAX
if( voxel[i].cursorX › X_MAX ) voxel[i].cursorX = X_MIN
if( voxel[i].cursorZ ‹ Z_MIN ) voxel[i].cursorZ = Z_MAX
if( voxel[i].cursorZ › Z_MAX ) voxel[i].cursorZ = Z_MIN
}
}

Дождик, чтобы вспоминать зимой другие времена года

function init(){
VOXELS_COUNT = 5000 // количество частиц от 1 до 5000
VOXELS_PER_DROP = 5 // частиц на каплю
LIMIT_SPEED = 0 // 0 - максимальная скорость, больше - медленнее
SCALE = 0.1 // размер капли
BRIGHTNESS = 200 // яркость капли от 0 до 255
// размеры области отображения
X_MIN = -64 // влево от -64 до 79
X_MAX = 79 // вправо от -64 до 79
Z_MIN = -64 // назад от -64 до 79
Z_MAX = 79 // вперёд от -64 до 79
Y_MIN = -80 // вниз от -80 до 63
Y_MAX = 63 // вверх от -80 до 63
// смещение капли каждый такт
OFFSET_X = 0 // влево-вправо
OFFSET_Z = 0 // назад-вперёд
OFFSET_Y = -1.5 // вверх-вниз
// массив для вокселей
voxel = []
// количество капель
DROPS_COUNT = Math.floor( VOXELS_COUNT / VOXELS_PER_DROP )
// инициализация вокселей
for( i = 0 ; i ‹ DROPS_COUNT ; i++ ){
// базовые расположение и размер
x = rc( X_MIN , X_MAX )
y = rc( Y_MIN , Y_MAX )
z = rc( Z_MIN , Z_MAX )
s = SCALE
// создание капли из частиц
for( p = 0 ; p ‹ VOXELS_PER_DROP ; p++ ){
t = display.voxel( x , y + SCALE * p , z , color.rgb( 0 , 0 , BRIGHTNESS ) )
t.scale = s
voxel.push( t )
}
}
// переменная для реализации торможения
last_time = 0
}

function rc( min , max ){
// случайное число в заданных пределах
return min + Math.random() * ( max - min )
}

function update( time_now ){
// торможение выполнения
if( time_now - last_time ‹ LIMIT_SPEED ) return
last_time = time_now
// изменение параметров вокселей
for( i = 0 ; i ‹ DROPS_COUNT * VOXELS_PER_DROP ; i++ ){
// смещение относительно текущего расположения
x = OFFSET_X
y = OFFSET_Y
z = OFFSET_Z
voxel[i].offset( x , y , z )
// отражение при выходе за пределы отображения
if( voxel[i].cursorY ‹ Y_MIN ) voxel[i].cursorY = Y_MAX - Math.abs(voxel[i].cursorY - Y_MIN)
if( voxel[i].cursorY › Y_MAX ) voxel[i].cursorY = Y_MIN + Math.abs(voxel[i].cursorY - Y_MAX)
if( voxel[i].cursorX ‹ X_MIN ) voxel[i].cursorX = X_MAX - Math.abs(voxel[i].cursorX - X_MIN)
if( voxel[i].cursorX › X_MAX ) voxel[i].cursorX = X_MIN + Math.abs(voxel[i].cursorX - X_MAX)
if( voxel[i].cursorZ ‹ Z_MIN ) voxel[i].cursorZ = Z_MAX - Math.abs(voxel[i].cursorZ - Z_MIN)
if( voxel[i].cursorZ › Z_MAX ) voxel[i].cursorZ = Z_MIN + Math.abs(voxel[i].cursorZ - Z_MAX)
}
}

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

карма: -4
25
Голосовали:apl, MaJIuHa, _Karnelius_, -BROD9GA-, helpbringer, Moonlight_420, RouteVO, miratvorech, calm, BlooDStoune, miroschka, Miracle-, OTBETCTBEHHblN, DeMoNo5060, 6Sixty_nine9, Nick_Fury, CodARM, zelovo37, Chekter, lambrusco, Chydovishe, My_Adidas, tauras, Rimuru_Tempest, Vano4ok, OSNOVA_BOGA, XBocT
Ответов: 1130
Tomorrow
Яблочный
#2: 2020-10-19 00:37:01 ЛС | профиль | цитата
Красиво
карма: -27
0
Ответов: 384
#3: 2020-10-19 00:48:03 ЛС | профиль | цитата
ну тут лайк только тыкнуть...
карма: 5
Уходите с миром, а войны мы не боимся.
0
Ответов: 1314
CORPORATION-Z
лидер
#4: 2020-10-19 01:18:22 ЛС | профиль | цитата
чудесно!
карма: 55
0
Ответов: 252
#5: 2020-10-19 07:05:30 ЛС | профиль | цитата
Красавчик
карма: -12
Люблю кокаин и метадон
0
Ответов: 304
#6: 2020-10-19 07:26:37 ЛС | профиль | цитата
можете сделать красивых девушек из пикселей 3х3 примерно
карма: -33
0
Ответов: 13
#7: 2020-10-19 07:32:05 ЛС | профиль | цитата
А куда это писать?
карма: 0
0
Ответов: 1016
Noir Villar
Герцог
#8: 2020-10-19 07:47:11 ЛС | профиль | цитата
BlooDStoune писал(а):
А куда это писать?

В посте все написано
карма: -5
0
Ответов: 2966
Mafia
Актёр
#9: 2020-10-23 16:55:08 ЛС | профиль | цитата
А можно сделать много блестокк, как бале маленьких принцесс?
карма: -29
0
Ответов: 675
#10: 2020-10-27 19:23:09 ЛС | профиль | цитата
лучший снегопад, который я видел в своей жизни. 10/10 полигонов
карма: -13
0
Ответов: 47
Monte Carlo
Милашка
#11: 2020-10-28 19:15:13 ЛС | профиль | цитата
ПлюсеГ
Зашло на ура, правда при 6шт фпс падает с 1к до 100+-
карма: 24
0
Ответов: 148
Haunted Family
metadon city
#12: 2020-10-28 19:40:23 ЛС | профиль | цитата
Chekter писал(а):
ПлюсеГ
Зашло на ура, правда при 6шт фпс падает с 1к до 100+-



Хранилку Ферас строил?
карма: -11
Бесконечный мут.
0
Ответов: 4114
Alliance
Old Leader
#13: 2020-10-28 19:42:57 ЛС | профиль | цитата
Torchochek, ну сундуки защищены, значит точно не Пикачу строил
карма: -55
Alliance*?
1
Голосовали:Guilt
Ответов: 4330
TRoN
Creator
#14: 2020-10-28 19:54:00 ЛС | профиль | цитата
kriponeko, как всегда велеколепен. Я до сих пор храню елку на этот НГ.
карма: -200
0
Ответов: 2851
Tomorrow
лидер
#15: 2020-10-29 05:50:53 ЛС | профиль | цитата
use strict на тебя не хватает!
карма: -52
Не пью,не курю,на ноль не делю.
0
Ответов: 6237
Storm
Defenders II
#16: 2020-12-27 12:28:48 ЛС | профиль | цитата
У меня вместо елки, гусенечка, по кругу ползает довольная

карма: -82
0
Ответов: 640
TRoN
Demon
#17: 2020-12-27 12:38:51 ЛС | профиль | цитата
kosyak писал(а):
У меня вместо елки, гусенечка, по кругу ползает довольная

Настройки-›Прочие-› Количество частиц = 5000
карма: -19
1
Голосовали:kosyak
Ответов: 6237
Storm
Defenders II
#18: 2020-12-27 13:06:21 ЛС | профиль | цитата
DeMoNo5060, спасибо
карма: -82
0
18
Сообщение
...