0 / 0 / 1
Регистрация: 21.11.2015
Сообщений: 13
1

Перемещение объектов стрелками

28.12.2015, 08:01. Показов 1483. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Круг- управляемый объект, прямоугольник-свободный (движется сам по заданной траектории). Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2015, 08:01
Ответы с готовыми решениями:

Перемещение объектов стрелками на клавиатуре
Помогите новичку!!! Есть две программы, в одной программе изображение поляны, в другой простое...

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

Не работает перемещение в меню (стрелками)
Program KurRab; Uses Crt; Type strmenu=record x: integer; s: string; end; Const kol=5;...

Перемещение объекта стрелками клавиатуры
допустим, есть у меня прямоугольник (rectangleabc) . он чёрного цвета. нажимаю я клавишу вверх...

3
5065 / 2637 / 2348
Регистрация: 10.12.2014
Сообщений: 10,003
28.12.2015, 08:13 2
В модуле GraphABC можно определить обработчики событий нажатия клавиш клавиатуры.
0
Cyborg Drone
03.01.2016, 22:45
  #3
 Комментарий модератора 
Фотографии текста запрещены. Вложение заблокировано. Перепечатайте текст задания в тему. В виде фотографии разместите только собственно рисунок.
0
14 / 14 / 15
Регистрация: 21.08.2015
Сообщений: 48
05.01.2016, 02:23 4
Лучший ответ Сообщение было отмечено vitek2802 как решение

Решение

Вот каркас, все значения и траекторию прямоугольника меняй под свои нужды (управление через WASD)

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
uses ABCObjects, GraphABC, Timers;
 
const h=500; //ВЫСОТА ОКНА
      w=800; //ШИРИНА ОКНА
   
var x_c:integer :=100; //Х КРУГА
    y_c:integer :=h div 2; //У КРУГА
    r_c:integer :=30; //РАДИУС КРУГА
    cir_sh:=5; //ШАГ ПЕРЕМЕЩЕНИЯ КРУГА
    
    h_r:integer :=50; //ВЫСОТА ПРЯМОУГОЛЬНИКА
    w_r:integer :=80; //ШИРИНА ПРЯМОУГОЛЬНИКА
    x_r:integer :=w-w_r-10; //Х ПРЯМОУГОЛЬНИКА 
    y_r:integer :=10; //У ПРЯМОУГОЛЬНИКА 
    v_r:integer :=1; //СКОРОСТЬ ПРЯМОУГОЛЬНИКА (ЧЕМ НИЖЕ ЗНАЧЕНИЕ, ТЕМ ВЫШЕ СКОРОСТЬ)
    l_r1:boolean :=true; //НАПРАВЛЕНИЕ ПРЯМОУГОЛЬНИКА ПО ВЕРТИКАЛИ
    l_r2:boolean :=true; //ПОЛОЖЕНИЕ ПРЯМОУГОЛЬНИКА НА ГОРИЗОНТАЛИ     
    rec_sh:=2; //ШАГ ПЕРЕМЕЩЕНИЯ ПРЯМОУГОЛЬНИКА  
    
    cir:=new CircleABC(x_c+r_c,y_c+r_c,r_c,clred); //КРУГ
    rec:=new RectangleABC(x_r,y_r,w_r,h_r,clblue); //ПРЯМОУГОЛЬНИК
    
procedure Moving_cir(a:integer);
begin
 
 case a of
 87:dec(y_c,cir_sh);
 65:dec(x_c,cir_sh);
 83:inc(y_c,cir_sh);
 68:inc(x_c,cir_sh);
 end;
 
 cir.MoveTo(x_c,y_c);
 
end;
 
procedure Moving_rec;
begin
 //ЗДЕСЬ ЗАДАЁТСЯ ШАГ ТРАЕКТОРИИ ПРЯМОУГОЛЬНИКА
 if l_r1 then inc(y_r,rec_sh) else dec(y_r,rec_sh);
 if (y_r<=10) or (y_r>=h-h_r-10) then if l_r1 then l_r1:=false else l_r1:=true;
 
 {if (rec.PtInside(x_c+r_c,y_c)) or (rec.PtInside(x_c+r_c+r_c,y_c+r_c)) or (rec.PtInside(x_c+r_c,y_c+r_c+r_c)) or (rec.PtInside(x_c,y_c+r_c)) 
 then if l_r2 then 
 begin
  x_r:=10;
  l_r2:=false;
 end else 
 begin
  x_r:=w-w_r-10;
  l_r2:=true;
 end;} {ЕСЛИ КРУГ СОПРИКОСНУЛСЯ С ПРЯМОУГОЛЬНИКОМ, ОН ПЕРЕМЕСТИТСЯ НА ДРУГОЙ КОНЕЦ ОКНА}
 
 rec.MoveTo(x_r,y_r);
end;
 
procedure Settings;
begin
 SetWindowSize(w,h);
 window.Title:='Перемещение объектов';
 window.IsFixedSize:=true;
end;
 
var t:=new Timer(v_r,Moving_rec); //ТАЙМЕР
 
begin
 Settings;
 t.Start;
 OnKeyDown+=Moving_cir;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2016, 02:23
Помогаю со студенческими работами здесь

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

Вывести рисунок кольца зелёного цвета, организуя его перемещение клавишами-стрелками
Создайте программу вывода на экран компьютера рисунка кольца зелёного цвета, организуя его...

Перемещение по текстбоксам стрелками
Добрый день! ) Подскажите, вот у меня допустим 30 текстбоксов в 3 ряда по 10 столбцов, можно ли...

Перемещение стрелками по форме
Добрый день ! У меня как всегда самая простая и неразрешимая для меня проблема. Есть MultiPage...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru