Цитата:
|
Пожалуйста, кому не лень, посмотрите следующий файл и напишите в чем я ошибся
|
Это зависит от того что ты хотел сделать ;-)
ЧТо бы шар не проваливался достаточно написать _y = 250 :-)
Если серьёзно то тут как минимум две ошибки
1. Поскольку onEnterFrame - это дискретное время, то с ускорением связываться нельзя
2. hitTest может не работать поскольку шарик за один кадр может проскочить линию
Я бы сделал так:

Код:
onClipEvent (load)
{
vx = 0;
vy = 0;
dx = 1; // ускорение по клавишам
dxt = 0.5; // ускорение трения
dyp = -10; // ускорение при прыжке
dyg = 1; // ускорение свободного падения
}
onClipEvent (enterFrame)
{
// тут ускоряем от клавиатуры
if (Key.isDown(Key.RIGHT))
vx += dx;
else if (Key.isDown(Key.LEFT))
vx -= dx;
// под этим ифом действует трение
if(vx > 0)
if(vx < dxt) vx = 0;
else vx -= dxt;
else
if(vx > -dxt) vx = 0;
else vx += dxt;
// c х рахобрались
// теперь с Y
// учитываем ускорение свободного падения
vy += dyg;
_y += vy;
_x += vx;
if(_y >= 235)
{
_y = 235;
vy = 0;
if (Key.isDown(Key.UP))
// прыжок
vy += dyp;
}
}