|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.11.2014, 20:33 | #1 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 6
|
JavaScript:движение объекта по траектории
Доброго времени суток!Мне нужна ваша помощь.Имеется задание:нарисованный в paint квадрат должен перемещаться по ромбовидной траектории.Что то похожее у меня получилось,но нужно чтоб границы соприкосновения квадрата были размеры экрана,какэто реализовать не пойму.Заранее спасибо за помощь
Код HTML:
<html> <head> <title>Home</title> <script language = "Javascript"> var action,coef_px=-1,coef_pt=1,p_move=5; function startmove(){ dynamic.style.left=parseInt(document.body.offsetWidth)/3+200; dynamic.style.top=0; action=window.setInterval("move()",100); } function move(){ px=parseInt(dynamic.style.left); px=px+coef_px*p_move; dynamic.style.left=px; if(px<=parseInt(document.body.offsetWidth)/2-200|| px>=parseInt(document.body.offsetWidth)/2+200){ coef_px=-coef_px } pt=parseInt(dynamic.style.top); pt=pt+coef_pt*p_move; dynamic.style.top=pt; if(pt<=0||pt>=400){ coef_pt=-coef_pt; }} </script> </head> <body onLoad=startmove()> <div id="dynamic"style="position:absolute;"> <img src="kvad.gif"> </div> </body> </html> Последний раз редактировалось Stilet; 18.11.2014 в 07:35. |
17.11.2014, 23:58 | #2 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
Тут конечно надо обрабатывать случай касания границы, чтоб смещался на правильное расстояние delta_moveX, delta_moveY, а не точно p_move, но меня задрало воевать со стилями)
Код:
|
18.11.2014, 12:38 | #3 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 6
|
ага,за это конечно спасибо большое,некоторые идеи появились,но все таки не совсем то(((ну может досоображаю
|
18.11.2014, 13:07 | #4 |
Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,453
|
Натие, ромб есть, конечно для вашего случая лучше использовать canvas: )
Код HTML:
<html> <head> <title>Home</title> </head> <body onload="startmove()"> <div id="dynamic" style="position:absolute;"> <img src="1416272066_qbic.png"> </div> <script> var action, coef_px=-1, coef_pt=1, p_move=5; function startmove(){ var dumanic = document.getElementById('dumanic'); dynamic.style.left=parseInt(document.body.offsetWidth)/+2; dynamic.style.top=0; action=window.setInterval("move()", 1); } function move(){ var dumanic = document.getElementById('dumanic'); px=parseInt(dynamic.style.left); px=px+coef_px*p_move; dynamic.style.left=px; if(px<=parseInt(document.body.offsetWidth)/2-200 ||px>=parseInt(document.body.offsetWidth)/2+200){ coef_px=-coef_px } pt=parseInt(dynamic.style.top); pt=pt+coef_pt*p_move; dynamic.style.top=pt; if(pt<=0||pt>=400){ coef_pt=-coef_pt; } } </script> </body> </html> |
18.11.2014, 15:07 | #5 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 6
|
Спасибоcanvas привяжет мой движущийся объект к размеру окна?не сталкивалась с таким элементом.
|
18.11.2014, 17:31 | #6 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 6
|
поразбиравшись я поняла что convas мне не помощник(((не подскажите как растянуть все это дела на все окно?
|
18.11.2014, 19:05 | #7 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 6
|
<html>
<head> <title>Простая страница</title> <script language="JavaScript"> var eds,x,y; function curve_move (xid,zt){ if(!xid) return null; if (!zt) zt=100; x=0; y=300; eds=setInterval("move1('"+xid+"')", 4); } function move1 (xid){ x+=1.18; y-=0.5; document.all[xid].style.top=y; document.all[xid].style.left=x; if (y==1){ clearInterval(eds); eds=setInterval("move2('"+xid+"')", 4); } } function move2 (xid){ x+=1.18; y+=0.5; document.all[xid].style.top=y; document.all[xid].style.left=x; if (y==300){ clearInterval(eds); eds=setInterval("move3('"+xid+"')", 4); } } function move3 (xid){ x-=1.18; y+=0.5; document.all[xid].style.top=y; document.all[xid].style.left=x; if (y==600){ clearInterval(eds); eds=setInterval("move4('"+xid+"')", 4); } } function move4 (xid){ x-=1.18; y-=0.5; document.all[xid].style.top=y; document.all[xid].style.left=x; if (y==300){ clearInterval(eds); } } </script> </head> <body> <img name="pic" src="kvad.gif" style=position:absolute;"> <script> curve_move("pic",8) </script> </body> </html> |
18.11.2014, 19:05 | #8 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 6
|
что то похожее не правду
|
18.11.2014, 21:45 | #9 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
а вот еще вариант.
У меня с определением касания границ получилось крайне криво, поэтому решил сделать как-нить по другому. Ну и чтоб посмотреть на розочку)) сначала генерируется путь. т.е. массив координат. Потом по таймеру достается очередная точка и туда перемещается объект. Код:
Последний раз редактировалось Smogg; 18.11.2014 в 21:50. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение объектов по траектории | Vladlena | Общие вопросы C/C++ | 0 | 19.05.2013 18:38 |
Движение объекта по квадратной траектории | oblomok | C# (си шарп) | 5 | 08.07.2012 23:13 |
Движение объекта по искривленной траектории | ZvEr_HaCkEr | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 6 | 25.06.2011 05:36 |
Движение курсора по траектории | DarkHacker | Помощь студентам | 0 | 19.03.2010 18:05 |
Движение фигуры по траектории | Dgohn | Общие вопросы Delphi | 3 | 08.01.2009 09:36 |