[ХАЛЯВНЫЕ СКРИПТЫ!] Обновы из последних сил для рисовалки (Последний апдейт?)

Доброе время суток, друзья, враги, нейтралы, нпс, мобы, и просто хорошие люди. Пишу вам, из преисподнии, как обычно. Тут всегда тепло и сухо, или даже жарко, временами странная температура, но я уже адаптировался. Вижу мимо пролетают какие-то монстры, кто-то гребет на лодке полу обгнившими веслами, как и он сам, свиду просто скелет в лохмотьях, но верю, у него когда-то была душа…

Ок.. хватит вступления -)

Давайте к делу.

Из последних сил, чо-то наклепал. Были планы и идеи на что-то большее и более завершенное и удобное к использованию. Но что есть, то есть.

  1. тыкаем кнопку Fn, появляется окно со скриптами для кисти
  2. вводим скрипт (гы.. нормально вставлять низя из браузера пока что.. ну вы держитесь)
  3. далее рисуем, чтобы при рисовании исполнялся скрипт

Функции для рисования

drawPixel(x,y); // рисует пиксель
drawLine(prevX,prevY,x,y); // рисует линию

Переменные заранее настроенные в которых передаются значения в процессе рисования

x, y - текущие координаты
prevX,prevY - предыдушие координаты
startX,startY - коорды начала рисования
brushSize - размер кисти, возможные значения 1, 2, 3, 5, 7


Всё. далее лениво писать… просто скопипастю чо на внутриигровом форуме написал

для начала чо простенькое можно делать:

drawPixel(x,y);// - рисует пиксель

то же самое что и

drawLine(x,y, x,y); //- рисовать линию из точки (x,y) в точку (x,y), то есть, в одном пикселе.

Все рисование вообще состит из линий. рисование пикселем просто сокращение, которое использует линию для рисования.

Стандартно обычные кисти рисуют так:

drawLine(prevX,prevY,x,y); // из предыдущей точки в текущую

можно добавить размер кисти. доступные размеры 1,2,3,5,7

brushSize = 3;
drawLine(x-5,y, x+5, y); //рисует линию толщиной 3
brushSize = 2;
drawLine(x,y-3, x, y+3); //рисует линию толщиной 2

можно еще изменить цвет
color - имеющаяся переменная с текущим цветом. его можно переписать

color.r = 1;
color.g = 0;
color.b = 0;

настраиваем компоненты цвета R G B значения от 0 до 1
например

color.r = 0.5;
color.g = 0.5;  // - серый цвет
color.b = 0.5;
drawLine(0,0,x,y);

или вызовом метода записать

color.setRGB(0.5, 0.5, 0.5);
drawLine(startX,startY,x,y);

имеющиеся переменные со значениями:
startX startY - коорды начала рисования

x, y - текущая координата в процессе рисования

prevX, prevY - предыдущая координата. чтобы строить линии из прошлой точки в текущюю

color.r - цвет красная компонента
color.g - цвет зеленая
color.b - цвет синяя
в вещественных значениях типа 0.2 0.5 1.0
0 - минимальная яркость, 1 - максимальная яркость

brushSize - размер кисти (читай выше)

lastPoint - булевая переменная true или false, сообщает о том является ли точка последней. по сути содержит true если отпускаем кнопку мыши для завершения рисовки пути
firstPoint - булевая переменная true или false, сообщает о том является ли точка первой. по сути содержит true если только что нажали кнопку мыши для начала рисования
Например.. чтобы после начать рисовать красной точкой, а завершить рисовать желтым крестиком можно иметь такой скрипт:

drawLine(prevX,prevY,x,y);//обычное рисование линий
// далее только для первой точки
if (firstPoint) { 
  brushSize=5;
  color.setRGB(1,0,0);
  drawPixel(x,y); 
}
// далее только для последней точки
if (lastPoint) { 
  brushSize=3;
  color.setRGB(1,1,0);
  drawLine(x-7,y,x+7,y);
  drawLine(x,y-6,x,y+6); 
}

Ааа… какие-то баги в отображении текста скрипта.. ну да лано

Вот пара скриптов для психов.. уже забыл чо они делают

brushSize=1;
var prev = color.copy();
color.setRGB(0,0,0);
color.r = Math.abs(10-pointIndex%20)/10;
drawLine(prevX, prevY, x, y);
drawLine(startX, startY, x, y);

color.set(prev);
brushSize=3;

if (lastPoint) {
  drawLine(x-15, y, x+15, y); drawLine(x, y-15, x, y+15);
  color.r *= 2; color.g *= 2; color.b *= 2;
  brushSize=2; 
  drawLine(x-5, y-5, x+5, y+5);drawLine(x-5, y+5, x+5, y-5); 
}

вот чо делает


и еще один

var K = 3;
if (firstPoint) { 
  var prX=x; var prY=y;  
  var DX = 3; var DY=3; 
  var p = {}; p.brushSize = 5; 
  var px = x; var py = y; 
  var dx = DX; var dy = DY;
}
brushSize = p.brushSize;
var Z=Math.abs(10-pointIndex%20)/10;
color.r *= Z; 
color.g*=Z; 
color.b*=Z;
drawLine(prX, prY, px, py);
prX=px;prY=py;
px += dx; py+=dy;
if (px>127) {dx=-(DX+Math.random()*K);}  
if (px<0) {dx=(DX+Math.random()*K);}  
if (py>127) {dy=-(DY+Math.random()*K);}  
if (py<0) {dy=(DY+Math.random()*K);}

ваще это пинг понг пытался запрогить игру прямо в рисовалке ахахаха… можете скопипастить и начать водить мышью и тогда мячик будет летать и отксакивать от стенок.. ну не безумие ли )))
Ваще я просто эксперементировал и проверял чо как работает, так что чото может быть лишнее..

Примерно как-то так выглядит

Халявный скрипт. разбирайте!

brushSize=5;
color.setRGB(Math.random(),Math.random(),Math.random());
drawPixel(x,y);

Ааа халявные скрипты ризбираем

Аааа утечка! Халявный скрипт рисования смайлика!!!

brushSize=5; color.setRGB(1,1,0);
drawLine(x-10,y,x+10,y);
drawLine(x-10,y,x-15,y+5);
drawLine(x+10,y,x+15,y+5);
brushSize=7; color.setRGB(0,1,1);
drawLine(x-5,y+7,x-10,y+17);
drawLine(x+5,y+7,x+10,y+17);
brushSize=3;color.setRGB(0,0,0);
drawPixel(x-5,y+6);
drawPixel(x+5,y+6);

кароч просто в color.setRGB заменяете на другие значения чтобы цвет поменять

можете добавить к скрипту и опа, уже можно выбирать цвет в палитре и рисовать разным цветом

Рисование кровушки! Не пропустите новый скрипт рисования!

color.r = .5 + Math.random()*0.5;
color.g=0; color.b=0; brushSize = 3;
var rx = Math.random()*4;
drawLine(prevX,prevY,x+2-rx,y);
if (lastPoint) {
  brushSize=7;
  color.r=.3+Math.random(); drawPixel(x-3,y);
  color.r=.3+Math.random(); drawPixel(x,y-3);
  color.r=.3+Math.random(); drawPixel(x+3,y);
  color.r=.3+Math.random(); drawPixel(x,y+3);
}

плюс небольшая модификация

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

if (firstPoint) {
  var myColor = color.copy(); 
  // сохраняем себе начально выбранный цвет рисования
  // в нашу переменную myColor 
  // Нами введенные переменные хранятся на время сессии рисования, от начала (зажать и вести) и до конца (отпустить)
}
brushSize=5;
color.set(myColor); // из нашей переменной запихиваем в переменную цвета, которая используется для рисования цветом функциями drawPixel и drawLine
drawPixel(x,y);
myColor.r *= 1.05; // далее тута меняем значения компонент цвета нашей переменной,
myColor.g *= 0.85; // чтобы в рисовании следущей точки применить
myColor.b *= 0.85;

чуть чуть другие параметры и уже другой эффект.. короч смотрите на сколько хотите умножать текущий цвет.

можно еще не умножать, а прибавлять/увеличивать или отбавлять/уменьшать компоненты цвета

// осветлить
myColor.r += 0.01;
myColor.g += 0.01;
myColor.b += 0.01;
// затемнить
myColor.r -= 0.01;
myColor.g -= 0.01;
myColor.b -= 0.01;

Можно еще использовать читерскую переменную pointIndex, в которой содержится номер рисуемой точки. начинается счет от нуля, то есть 0 - первая точка, 1 - вторая итд.

если pointIndex равен 50, то 50/50 равно 1. и от каджой компоненты мы отнимем по 1. и получатся они равные нулю (или меньше нуля, тогда приводится к нулю), а нуль это черный цвет.

на 25-ой точке, будет 25/50 = 0.5
тогда отнимаем половину яркости компоненты.

Но можно и не отнимать, а умножать

да, интересненько работает эффект ))) прям зашибисьЁЁ! попробуте:


Тут фокус покус именно в том, что он начинает рисовать от черного, и переходит в выбранный цвет

color.r *= pointIndex/50;
color.g *= pointIndex/50;
color.b *= pointIndex/60;
brushSize=7
drawLine(prevX,prevY,x,y);

Проверка значения pointIndex, чтобы было понятней

if (pointIndex < 10) {
  color.setRGB(1,0,0);//красный
  brushSize=1; drawPixel(x,y);
} else
if (pointIndex < 30) {
  color.setRGB(0,1,0);//зеленый
  brushSize=2; drawPixel(x,y);
} else
if (pointIndex < 50) {
  color.setRGB(0,0,1);//синий
  brushSize=3; drawPixel(x,y);
}

Синусы косинусы можно всякие еще использовать, кто знает ваще что это такое
Чтобы волнистые линии рисовать. (руками такое не нарисуешь -))

Страшно очень страшно :anguished_face:

Нифига себе:о
Ну можно что нибудь придумать, а если постараться то “что нибудь” станет полезным и прикольным:)
:thing_skin_emoji-09:

да это так… поиграца слегка

Ну блин, можно от простейших пиксельных смайликов перейти к программируемым пиксель арт картинкам… Вот правда писать долго, и если результат будет никому не нужен, то незачем.
Размышляет как закодит картинку какашки и будет кликать на каждый рисунок в рисовалке который ему не понравится

А на счёт последнего обновления печально, до конца ждал отдельного сервера и минимальную возможность добавлять что то новое, изменяя недоделки старого

Не.. нифига..

Желание есть. Но возможностей нет. Увы.

Эх, ну ладно… Тогда, если это и вправду последняя Обнова удачи в создании новой игры;)…

ну а зафиг еще обновы. смысла нету.

планы перенести основу физически на чит сервер (физический типа в европе), и пусть там крутится умирая. с целью зайти просто понастальгировать, поохать и поахать Ах как раньше было… Ну и пусть крутится, пока не мешает..