Appo 86 Опубликовано: 4 сентября, 2017 (изменено) По приколу написал прогу с демонстрацией физический свойств, по типу игры Angry Birds Использование: зажать -> тащить -> отпустить левую кнопку мыши Установка: pastebin run m96mrzf9 Код: -- Можно тыкать на экран, запуская пиксель как птичку в Angry Birds local koef = 2 -- коэффициент стартового запуска local component = require("component") local gpu = component.gpu local term = require('term') local event = require('event') local h = {['x'] = 20,['y'] = 30,['dx'] = 5,['dy'] = -3} local xm,ym = gpu.getResolution() function line(x1,y1,x2,y2) x= x1 y= y1 for i = 1 , math.floor( ( (x2-x1 )^2+( y1-y2 )^2)^0.5) do gpu.set(math.floor(x),math.floor(y),'█') rad = math.atan2(y1-y2,x2-x1) x = x + math.cos(rad) y = y - math.sin(rad) end end function fiz(usl,dxx,dyy,xx,yy) if usl then h.dx = h.dx * dxx h.dy = h.dy * dyy h.x = xx h.y = yy end end term.clear() while true do local e1 = {event.pull(0.05)} gpu.set(math.floor(h.x),math.floor(h.y),' ') if e1[1] == 'touch' then local e2 repeat e2 = {event.pull()} if e2[1] == 'drag' then term.clear() line(e1[3],e1[4],e2[3],e2[4]) end if (e2[1] == 'touch') then break end gpu.set(1,1,'dx '..tostring((e1[3] - e2[3])/koef)) gpu.set(1,2,'dy '..tostring((e1[4] - e2[4])/koef)) until e2[1] == 'drop' term.clear() if e2[1] == 'drop' then h.x = e1[3] h.y = e1[4] h.dx = (e1[3] - e2[3])/koef h.dy = (e1[4] - e2[4])/koef end end h.dx = h.dx h.dy = h.dy + 0.45 h.x = h.x + h.dx h.y = h.y + h.dy fiz(h.y > ym,0.9,-0.85,h.x,ym) -- низ fiz(h.y < 0 ,0.9,-0.85,h.x,0) -- верх fiz(h.x > xm,-0.85,0.9,xm,h.y) -- право fiz(h.x < 0 ,-0.85,0.9 ,0,h.y) -- лево gpu.set(math.floor(h.x),math.floor(h.y),'█') gpu.set(1,1,'dx '..tostring(h.dx)) gpu.set(1,2,'dy '..tostring(h.dy)) end Изменено 5 сентября, 2017 пользователем Appo 7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 5 сентября, 2017 Круто. Я бы пиксель сделал квадратным. А еще за пикселем можно гаснущий след рисовать. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Appo Автор темы 86 Опубликовано: 5 сентября, 2017 (изменено) Круто. Я бы пиксель сделал квадратным. А еще за пикселем можно гаснущий след рисовать. Отличная идея, попробую реализовать) В ближайшее время обновлю пост --------------------- UPD : когда пройдет депресняк, попробую дописать) Изменено 9 сентября, 2017 пользователем Appo 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
kaka888 10 Опубликовано: 28 января, 2019 Эх, мне бы уметь пользоваться радианами((( 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
alexvas88 2 Опубликовано: 18 февраля, 2019 (изменено) Неплохая идея 🤔, можно было бы ссылку на программу учтелям подкинуть, будет что продемонстрировать Изменено 18 февраля, 2019 пользователем alexvas88 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах