![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: May 2012
Сообщений: 1
|
Прямоугольник размером 1366на768, объект должен хаотично перемещаться по нему и отскакивать от границ. с математикой не в ладах, может кто-нибудь сталкивался с подобным)
Вот пример, но он для круга..может можно его как-то переделать. Заранее большое спасибо) onClipEvent(load){ var k = (dist - R) / R; _x -= dx*k; _y -= dy*k; v = 5; rBall = _width / 2; angle = random(360) * Math.PI / 180; vx = v*Math.sin(angle); vy = -v*Math.cos(angle); xc = 531; yc = 210; R = 700 - rBall; function fly() { _x += vx; _y += vy; var dx = _x - xc; var dy = _y - yc; var dist = Math.sqrt(dx*dx + dy*dy); if ( dist >= R ) { n1x = dx / dist; n1y = dy / dist; vn = vx*n1x + vy*n1y; vx -= 2*vn*n1x; vy -= 2*vn*n1y; updateAfterEvent(); } } setInterval ( fly, 20 ); } |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
var stageWidth = 1024; var stageHeight = 768; var speed = 10; var ball = createBall(); var randomStartAngle = Math.random() * Math.PI * 2; ball.vx = Math.cos(randomStartAngle); ball.vy = Math.sin(randomStartAngle); ball._x = stageWidth / 2; ball._y = stageHeight / 2; function createBall() { var d = this.getNextHighestDepth(); var ballInstance = this.createEmptyMovieClip("ball_" + d, d); ballInstance.beginFill(0x000000,100); ballInstance.moveTo(-10,-10); ballInstance.lineTo(10,-10); ballInstance.lineTo(10,10); ballInstance.lineTo(-10,10); ballInstance.lineTo(-10,-10); ballInstance.endFill(); return ballInstance; } this.onEnterFrame = function() { var newPosX = ball._x + ball.vx * speed; var newPosY = ball._y + ball.vx * speed; if (newPosX < 0 || newPosX > stageWidth) { ball.vx *= -1; } if (newPosY < 0 || newPosY > stageHeight) { ball.vy *= -1; } ball._x += ball.vx * speed; ball._y += ball.vy * speed; };
__________________
hauts.ru Последний раз редактировалось Hauts; 12.05.2012 в 18:09. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|