Last active
April 22, 2025 07:42
-
-
Save AntonPetrochenko/b37b9b3ae5156b5962c3d882b02980bd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- Заготовим повторение текстуры, иначе по краям экрана будет чёрные полосы | |
| poke(0x5f38,16) | |
| poke(0x5f39,16) | |
| -- Функция радианы -> вектор | |
| function mda(a) | |
| return cos(a)/8, | |
| sin(a)/8 | |
| end | |
| -- Цвета для смещающейся палитры | |
| local clrs = {7,6,13,1} | |
| -- Вращение масива вправо | |
| function rottbl(tbl) | |
| for i=4,1,-1 do | |
| tbl[i+1] = tbl[i] | |
| end | |
| tbl[1] = tbl[5] | |
| end | |
| -- Применение матрицы вращения к паре координат x,y на угол a вокруг точки ox,oy | |
| function rot2d(x,y,a,ox,oy) | |
| local ox = ox or 0 | |
| local oy = oy or 0 | |
| local tx = x - ox | |
| local ty = y - oy | |
| return cos(a)*tx-sin(a)*ty+ox, | |
| sin(a)*tx+cos(a)*ty+oy | |
| end | |
| -- Таймеры | |
| t=0 | |
| cdwn = 0 | |
| -- Рисование | |
| while true do | |
| t+=1 | |
| -- Раскомментировать это и чуть ниже: переливание первых 4 цветов палитры цветами из таблицы clrs | |
| -- cdwn-=1 | |
| -- if cdwn<0 then | |
| -- cdwn = 15 | |
| -- rottbl(clrs) | |
| --end | |
| cls() | |
| -- Первая часть вращения экрана: подготовка направления для tline | |
| local mdx, mdy = mda(t/512) | |
| for i=0,127 do | |
| local sx = 0 | |
| local sy = i/8 | |
| -- Эффекты, от которых картинка "волнуется" | |
| sy += sin(t/256+i/128) | |
| sx += sin(t/128+i/128) | |
| -- Вторая половина вращения экрана: смещение точек начала tline | |
| sx, sy = rot2d(sx,sy,t/512,8,8) | |
| -- Раскомментировать этот блок: применить цвета из clrs к первым 4 цветам | |
| -- for i=1,4 do | |
| -- pal(i,clrs[i]) | |
| -- end | |
| -- А вот самая соль... | |
| -- ТЕКСТУРИРОВАННАЯ ЛИНИЯ PICO-8 | |
| -- Первые 4 параметра: x1, y1, x2, y2 линии | |
| -- 5, 6 параметр: точка начала "указателя" | |
| -- 7, 8 параметры: направление движения "указателя" | |
| -- По мере рисования линии по карте текстур движется указатель, | |
| -- по которому на линию выкладываются цвета. | |
| -- Этой магической операции достаточно, чтобы реализовать прикольные | |
| -- визуальные эффекты. | |
| -- В данном случае мы используем её, чтобы повторить растровые | |
| -- "построчные" эффекты как на ретро-консолях: каждая линия | |
| -- является "строкой растра" | |
| tline( | |
| 0, | |
| i, | |
| 127, | |
| i, | |
| -- Параметры ниже: вращение экрана | |
| sx, -- Из точки... | |
| sy, | |
| mdx, -- Выдвинулся указатель... | |
| mdy | |
| ) | |
| end | |
| -- Нарисуем на экран, синхронизируемся к 30 fps | |
| flip() | |
| end |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
untitled_1_0.gif.mp4
jija_0.gif.mp4