kingdosya, ну-ка посмотри:
if ((def_ball.kuda=1)and(get_x(def_ball.sprite)>1)) then
begin
sprite.move(def_ball.sprite, -random(3)+2, -def_ball.pix_speed);
end;
if ((def_ball.kuda=3)and(get_x(def_ball.sprite)<230)) then
begin
sprite.move(def_ball.sprite, random(3)+2, -def_ball.pix_speed);
end;
if ((def_ball.kuda=7)and(get_x(def_ball.sprite)>1)) then
begin
sprite.move(def_ball.sprite, -random(3)+2, def_ball.pix_speed);
end;
Ты обрабатываешь 1,3,7, а 9 где?
Но проблема не только в этом, вот смотри:
если kuda = 1, то мы двигаем def_ball по X: в -random(3)+2, по Y: -def_ball.pix_speed
если kuda = 3, то мы двигаем def_ball по X: в random(3)+2, по Y: -def_ball.pix_speed
если kuda = 7, то мы двигаем def_ball по X: в -random(3)+2, по Y: def_ball.pix_speed
Правильно?
А теперь давай посчитаем, какие значения может принимать x в этих случаях.
если kuda = 3, то random(3)+2 принимает значения от 2 до 5
если kuda = 7 или 1, то -random(3)+2 принимает значения от -1 до 2.
Это означает, что в 66% из 100 твой мяч передвигается вправо.
Возьми всё в скобки:
sprite.move(def_ball.sprite,
-(random(3)+2), def_ball.pix_speed);
и посмотри, что получится.
Ну и обработку для kuda = 9 добавь.
__________________