Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 15
1

Реализовать плавное перемещение картинки

16.05.2016, 08:49. Показов 4900. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! У меня к Вам такой вопрос, как сделать так, чтобы добавленная мною картинка спускалась вниз и уходила за пределы экрана. Я когда пытаюсь сделать так, чтобы она ехала вниз, пишу repeat k:=k+10; until k:=300. Но когда я запускаю картинка уже внизу, мне же надо сделать, чтобы она именно ехала вниз, плавно, я так понимаю для этого нужен Sleep, но куда его поставить?Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2016, 08:49
Ответы с готовыми решениями:

Как можно реализовать плавное затухание музыки при каком-либо событии?
Собственно, вопрос в заголовке.

Перемещение картинки стрелками
Здравствуйте! Я хочу сделать, чтобы моя картинка двигалась стрелками через VK_Left, VK_Right,...

Как задать плавное перемещение картинки в PictureBox (или перемещение самого PictureBox) из точки А в точку Б по прямой?
Необходимо задать плавное перемещение по прямой линии из "А" в "Б" по нажатию "Button"

Плавное перемещение картинки в центр
Добрейший вечерочек! Сел я тут, значит, за упражнение. Исходник: 3 изображения, почти прозрачные. ...

12
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2016, 08:51 2
Pascal
1
2
3
4
repeat 
k:=k+10;
sleep(100);
until k=300;
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 15
16.05.2016, 08:57  [ТС] 3
Спасибо, но когда я так вставил, то при компиляции у меня несколько секунд висит белое окно, а потом картинка опять уже внизу.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2016, 09:10 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Код хоть покажите, я же не телепат.

Добавлено через 9 минут
Вообще движение картинки делают так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses graphABC;
var b:Picture;
    k:integer;
begin
b:=Picture.Create('1.jpg');
k:=0;
lockdrawing;
repeat
clearwindow;
b.Draw(100,k,150,50);
sleep(100);
k:=k+10;
redraw;
until k=300;
end.
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 15
16.05.2016, 09:19  [ТС] 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program xxxxx; 
Uses GraphABC, ABCObjects;
var z,u,w,k,j,n,p,c: integer; 
begin; 
z:=500; 
u:=400; 
w:=500;
k:=50;
j:=300;
n:=50;
p:=100;
c:=50;
PictureABC.create (z, u, '1.jpg'); 
PictureABC.create (w, k, '1.jpg');
PictureABC.create (j, n, '1.jpg'); 
PictureABC.create (p, c, '1.jpg'); 
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2016, 09:22 6
И что?
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 15
16.05.2016, 09:26  [ТС] 7
Это код программы без repeat k:=k+10 и вот я хочу понять, куда надо это вставить, чтобы все работало как надо.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2016, 09:27 8
Чтобы что работало? Что должно происходить?
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 15
16.05.2016, 09:29  [ТС] 9
Картинка должна ехать вниз и уезжать за края окна.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2016, 09:29 10
А зачем их 4?
0
147 / 128 / 155
Регистрация: 22.03.2016
Сообщений: 502
16.05.2016, 09:40 11
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses ABCObjects;
var
  a: ABCObjects.PictureABC;
procedure OnKeyPress_(ch:char);
begin
  a:= ABCObjects.PictureABC.Create(0,0,'Image 15.png');
  a.dy:= 1;
end;
procedure test();
begin
  if (a.Position.Y + a.Height) >= GraphABC.Window.Height
    then
      a.MoveTo(0,0);
end;
begin
  GraphABC.OnKeyPress+=OnKeyPress_;
  var i: integer;
  while true do
    if a <> nil
      then
        begin
          a.Move;
          test;
        end;
end.
Если зацикливания перемещения картинки не надо, уберите test() из тела цикла.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2016, 09:45 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Или так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program xxxxx; 
Uses GraphABC, ABCObjects;
var a: ABCObjects.PictureABC;
    p,c: integer; 
begin; 
setwindowsize(650,600);
centerwindow;
p:=100;
c:=0;
a:=ABCObjects.PictureABC.Create(p,c,'1.jpg');
a.dy:= 1;
repeat
a.Move;
sleep(10);
until a.Top+a.Height>windowheight;
end.
0
147 / 128 / 155
Регистрация: 22.03.2016
Сообщений: 502
16.05.2016, 10:00 13
Sleep не нужно, он и так медленно обрисовывает.

Добавлено через 3 минуты
Цитата Сообщение от PABC907 Посмотреть сообщение
спускалась вниз и уходила за пределы экрана.
Puporev, Тогда уж так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program xxxxx; 
Uses GraphABC, ABCObjects;
var a: ABCObjects.PictureABC;
    p,c: integer; 
begin; 
setwindowsize(650,600);
centerwindow;
p:=100;
c:=0;
a:=ABCObjects.PictureABC.Create(p,c,'Image 15.png');
a.dy:= 1;
repeat
a.Move;
sleep(10);
until a.Top>windowheight;
//a.Destroy;
end.
0
16.05.2016, 10:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2016, 10:00
Помогаю со студенческими работами здесь

Плавное перемещение картинки по форме
Как дописать код для плавного перемещения картинки ? Цикл в этом случае помог плохо. Код:...

Как сделать плавное перемещение картинки в обе стороны
DoubleAnimation da = new DoubleAnimation(0, 13, new Duration(TimeSpan.FromSeconds(1.8))); ...

Реализовать рисование и перемещение картинки одним касанием
Здравствуйте, форумчане, проблема в следующем: необходимо реализовать перемещение объекта...

Плавное перемещение
Добрый день, хочу спросить, может кто сталкивался с подобной задачей. Нужно сделать игру Пак-Мен....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru