Render.ru

Black & White (бросание предметов)

#1
зацените вот, 5 дней писал(в скрипты дольше вникал) :) конечно много недаработок, но прикольно(мне так кажется) =)



global nowPos, newPos, lastPos, kount=0, prevTime=0, nowTime
----------Инструмент указания новых координат предмета----------
tool pos
( on freeMove do setSysCur #arrow


on mousePoint clickno do --при нажатии левой кнопки
if (xyz.onOFF.checked) then --проверка флажка on/off
( setSysCur #move
if clickno == 1 then
(select $box01

newPos=gw.getPointOnCP(mouse.pos) --координаты нажатия
$.pos=newPos
for i=1 to 20 do
(move $ [0,0,1]; sleep 0.004; redrawViews())
print newPos)

if clickno == 2 do --при отпускании левой кнопки
(lastPos=$.pos
print lastPos
if (xyz.test.text as integer)==prevTime do
(
for i=1 to n=200 do
(move $ [((lastPos.x-newPos.x)*4/n),\
((lastPos.y-newPos.y)*4/n),-lastPos.z/n]
for m=1 to 2 do in coordsys #local
(rotate $ (angleaxis (random 0 2) [1,1,1]))
sleep 0.002
redrawViews())
)
#stop)
)
else #stop


on mouseMove clickno do --при движении с зажатой левой кнопкой
( setSysCur #move
if clickno == 2 then
($.pos.x=worldPoint.x; $.pos.y=worldPoint.y;
nowTime=xyz.test.text as integer -- расчет задержки при остановке
if (nowTime-1)!=(prevTime) then (prevTime=nowTime;)
else (prevTime=nowTime; newPos=$.pos)


-- timer Time --Таймер с определением активности курсора
-- on Time tick do
-- if newPos==nowPos then newPos=nowPos
)
)
)
----------Создание Меню----------
rollout xyz "Box move" width:160 height:100
(
--button move "press" pos:[5,5] width:150 height:30
timer Time "Time" interval:200 --Таймер
label _time "Time" across:2
label test "0" align:#left
on Time tick do
( if xyz.onOFF.checked do --проверка флажка,если нет то время не идет
(
valUp = (test.text as integer)+1
test.text = valUp as string
)
)

checkbox onOFF "on/off" pos:[5,40] width:150 height:15 enabled:true checked:false
on onOFF changed true do -- зпуск инструмента при отмечании
while xyz.onOFF.checked
do
(startTool pos)
)
createDialog xyz width:160 height:100
 
Сверху