1

Тема: Lua та чорна скринька

Прів. Є одна прога для малювання, і в ній можна створювати скриптовані пензлики.
Сама прога безкоштовна і японська, і ніде референсу по скриптингу я не знайшов, лише завантажив скриптиків інших людей і почав їх спрощувати аби почати розбиратись з усім цим з початку, і от прийшов до такого скрипта

function main( x, y, p )    
    tempX = x
    if (tempX%2)==0 then
        bs_pixel_set( x, y, 0, 0, 0, 255)
    else
        bs_pixel_set( x, y, 255, 0, 0, 255)
    end
    
    bs_pixel_set( x, y-1, 0,0,255,255)
    return 0
end

Функція приймає на вхід позицію курсора та силу натиску, я хотів зробити так, аби колір пікселів при малюванні вздовж осі X чередувався з червоним та чорним, а ще, зверху я малюю синю лінію, аби перевірити, що з значенням X та Y все гаразд, але тут виходе якесь лайно...
Я і так пробував, і так, і перевіряв значення, котре повертається після операції отримання залишку від ділення, і наче все вірно, але в результаті виходе це

http://не-дійсний-домен/neVkG/7e994283d7.png

Умова просто ігнорується, а чому - хз.
Хтось зна, чого таке може бути?
p.s. прога зветься FireAlpaca

Подякували: leofun011

2

Re: Lua та чорна скринька

тим часом бавлюсь

Прихований текст

http://не-дійсний-домен/nf09f/93f0fa3222.png

function main(x, y, p)    
    tempX = x
    r,g,b,a=0,0,0,255
    if tempX%2==0 then
        r=255
    end
    
    dx, dy = bs_normal()
    bs_ellipse( x, y, bs_width(), bs_width(), 0, ((dx+1)/2)*255,((dy+1)/2)*255,b,a )
    --bs_pixel_set( x, y, ((dx+1)/2)*255,((dy+1)/2)*255,b,a)
    return 0
end

3

Re: Lua та чорна скринька

Гадки не маю, але tempX - глобальна змінна, локальні проголошуються з local.

джерело

5 хвилин читання Вікі.

4

Re: Lua та чорна скринька

Прихований текст

http://не-дійсний-домен/nf0rF/fe1a7f9baa.png

function main(x, y, p)    
    tempX = x
    r,g,b,a=0,0,0,255
    if tempX%2==0 then
        r=255
    end
    
    dx, dy = bs_normal()
    bs_ellipse( x+bs_width()/2, y+bs_width()/2, bs_width(), bs_width(), 0, 255, 0, 0,a )
    bs_ellipse( x+bs_width()/2, y-bs_width()/2, bs_width(), bs_width(), 0, 0, 255, 0,a )
    bs_ellipse( x-bs_width()/2, y-bs_width()/2, bs_width(), bs_width(), 0, 0, 0, 255,a )
    bs_ellipse( x-bs_width()/2, y+bs_width()/2, bs_width(), bs_width(), 0, 255, 255, 0,a )
    --bs_pixel_set( x, y, ((dx+1)/2)*255,((dy+1)/2)*255,b,a)
    return 0
end

5

Re: Lua та чорна скринька

koala написав:

Гадки не маю, але tempX - глобальна змінна, локальні проголошуються з local.

джерело

5 хвилин читання Вікі.

та я спочатку з X'ом працював, просто подумав - може в процесі порівняння та X якось змінюється, тому спробував tempX

6 Востаннє редагувалося FakiNyan (20.02.2016 19:52:09)

Re: Lua та чорна скринька

тут був дублікат попереднього повідомлення

7 Востаннє редагувалося FakiNyan (20.02.2016 23:04:04)

Re: Lua та чорна скринька

тепер я можу малювати містично-загадкові не всім зрозуміли візерунки, ліл

Прихований текст

http://не-дійсний-домен/nfdXh/782ceb8afe.png

зупинився на тому, що буду ставити точку, вказувати довжину, кут, та на скільки частин ця довжина має ділитись, після чого буде малюватись розподільничок
upd: фіг там, а не кут, кастомні параметри можуть бути лише від 0 до 100
upd2: а я ж можу зробити два параметри, перший буде множитись на другий

8

Re: Lua та чорна скринька

з божою допомогою

Прихований текст

http://не-дійсний-домен/nfiGD/6d409656ec.png

9

Re: Lua та чорна скринька

FakiNyan написав:

Прів. Є одна прога для малювання, і в ній можна створювати скриптовані пензлики.
Сама прога безкоштовна і японська, і ніде референсу по скриптингу я не знайшов, лише завантажив скриптиків інших людей і почав їх спрощувати аби почати розбиратись з усім цим з початку, і от прийшов до такого скрипта

function main( x, y, p )    
    tempX = x
    if (tempX%2)==0 then
        bs_pixel_set( x, y, 0, 0, 0, 255)
    else
        bs_pixel_set( x, y, 255, 0, 0, 255)
    end
    
    bs_pixel_set( x, y-1, 0,0,255,255)
    return 0
end

Функція приймає на вхід позицію курсора та силу натиску, я хотів зробити так, аби колір пікселів при малюванні вздовж осі X чередувався з червоним та чорним, а ще, зверху я малюю синю лінію, аби перевірити, що з значенням X та Y все гаразд, але тут виходе якесь лайно...
Я і так пробував, і так, і перевіряв значення, котре повертається після операції отримання залишку від ділення, і наче все вірно, але в результаті виходе це

http://не-дійсний-домен/neVkG/7e994283d7.png

Умова просто ігнорується, а чому - хз.
Хтось зна, чого таке може бути?
p.s. прога зветься FireAlpaca

Якщо ось ця штука bs_pixel_set( x, y-1, 0,0,255,255) малює синю лінію, то функції всередині if малюють або чорну, або червону лінію. Чого вони мають чергуватись?

10

Re: Lua та чорна скринька

quez написав:
FakiNyan написав:

Прів. Є одна прога для малювання, і в ній можна створювати скриптовані пензлики.
Сама прога безкоштовна і японська, і ніде референсу по скриптингу я не знайшов, лише завантажив скриптиків інших людей і почав їх спрощувати аби почати розбиратись з усім цим з початку, і от прийшов до такого скрипта

function main( x, y, p )    
    tempX = x
    if (tempX%2)==0 then
        bs_pixel_set( x, y, 0, 0, 0, 255)
    else
        bs_pixel_set( x, y, 255, 0, 0, 255)
    end
    
    bs_pixel_set( x, y-1, 0,0,255,255)
    return 0
end

Функція приймає на вхід позицію курсора та силу натиску, я хотів зробити так, аби колір пікселів при малюванні вздовж осі X чередувався з червоним та чорним, а ще, зверху я малюю синю лінію, аби перевірити, що з значенням X та Y все гаразд, але тут виходе якесь лайно...
Я і так пробував, і так, і перевіряв значення, котре повертається після операції отримання залишку від ділення, і наче все вірно, але в результаті виходе це

http://не-дійсний-домен/neVkG/7e994283d7.png

Умова просто ігнорується, а чому - хз.
Хтось зна, чого таке може бути?
p.s. прога зветься FireAlpaca

Якщо ось ця штука bs_pixel_set( x, y-1, 0,0,255,255) малює синю лінію, то функції всередині if малюють або чорну, або червону лінію. Чого вони мають чергуватись?

не лінію, а піксель
тому що X змінюється

11

Re: Lua та чорна скринька

Чому тоді все, що вище синьої лінії, не синє?

12

Re: Lua та чорна скринька

quez написав:

Чому тоді все, що вище синьої лінії, не синє?

тому що я малював зліва направо

13

Re: Lua та чорна скринька

А де змінюється x  і чому не змінюється y?

14

Re: Lua та чорна скринька

quez написав:

А де змінюється x  і чому не змінюється y?

коли я малюю пензлем на полотні, в ту функцію передаються координати пензля, в даному випадку X не змінюється, тому що я малюю вздовж осі X

15

Re: Lua та чорна скринька

Тепер ферштейн. Там є консоль? Ви можете щось виводити, якщо виконання передається в гілку if?

16

Re: Lua та чорна скринька

quez написав:

Тепер ферштейн. Там є консоль? Ви можете щось виводити, якщо виконання передається в гілку if?

якби ж воно було... я намагався записати інфу в файл, але воно не спрацьовує, тому що обробляється зашитою в прогу лібою, і вона, походу, обрізана як пеніс єврея

17

Re: Lua та чорна скринька

А якщо поставити брейкпойнт в декоді зразу після іфа?

18

Re: Lua та чорна скринька

quez написав:

А якщо поставити брейкпойнт в декоді зразу після іфа?

а так мона? це ж інтерпретована фігня, я код в нотпаді пишу, після чого можу лише відкрити прогу, спробувати додати нового пензля і перевірити, як воно малюється

19

Re: Lua та чорна скринька

Перепон не бачу, тому що багато раз відлагоджував таке ж вбудоване луа. Качайте декоду.

20

Re: Lua та чорна скринька

quez написав:

Перепон не бачу, тому що багато раз відлагоджував таке ж вбудоване луа. Качайте декоду.

поясніть популярніше, що і як я маю робити, і для чого