Доброе время суток, друзья, враги, нейтралы, нпс, мобы, и просто хорошие люди. Пишу вам, из преисподнии, как обычно. Тут всегда тепло и сухо, или даже жарко, временами странная температура, но я уже адаптировался. Вижу мимо пролетают какие-то монстры, кто-то гребет на лодке полу обгнившими веслами, как и он сам, свиду просто скелет в лохмотьях, но верю, у него когда-то была душа…
Ок.. хватит вступления -)
Давайте к делу.
Из последних сил, чо-то наклепал. Были планы и идеи на что-то большее и более завершенное и удобное к использованию. Но что есть, то есть.
- тыкаем кнопку Fn, появляется окно со скриптами для кисти
- вводим скрипт (гы.. нормально вставлять низя из браузера пока что.. ну вы держитесь)
- далее рисуем, чтобы при рисовании исполнялся скрипт
Функции для рисования
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);}
ваще это пинг понг пытался запрогить игру прямо в рисовалке ахахаха… можете скопипастить и начать водить мышью и тогда мячик будет летать и отксакивать от стенок.. ну не безумие ли )))
Ваще я просто эксперементировал и проверял чо как работает, так что чото может быть лишнее..
Примерно как-то так выглядит

















