Форум программистов, компьютерный форум CyberForum.ru

Движение прямоугольника - C++

Восстановить пароль Регистрация
 
ATtiCUN
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 25
14.01.2011, 00:16     Движение прямоугольника #1
Здравствуйте! У меня проблема с этой работой. Программа идет. Но прямоугольник движется по диагонали,а мне нужно,чтобы он двигался по горизонтали с определенным заданным шагом и задержкой в одну секунду. Подскажите,пожалуйста,как это сделать.
C++
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
#include <dos.h>
class gr_init
{
public:
gr_init(int driver = 0)
{
*gd = driver;
initgraph(gd, gm, "");
if(graphresult() != 0) {printf("Error!"); abort();}
}
~gr_init()
{
closegraph();
}
private:
int *gd, *gm;
};
 
class gr_obj
{
public:
gr_obj(int col = 7)
{_color = col;}
virtual void draw() = 0;
int color()
{
return _color;
}
public:
void show()
{
setcolor(color()); draw();
}
void hide()
{
cback = getcolor(); setcolor(getbkcolor()); draw(); setcolor(color());
}
private:
int _color, cback;
};
 
class point: public gr_obj
{
public:
point(int xp = 0, int yp = 0, int col = 7): gr_obj(col)
{setpx(xp); setpy(yp); show();}
~point()
{
hide();
}
void draw()
{
putpixel(x, y, color());
}
int getpx()
{
return x;
}
void setpx(int px)
{
x = px;
}
int getpy()
{
return y;
}
void setpy(int py)
{
y = py;
}
private:
int x, y;
};
class pryam: public point
{
public:
pryam(int xc = 0, int yc = 0, int pa = 0, int col = 7): point(xc, yc, col)
{a = pa; show(); }
~pryam()
{
hide();
}
void draw()
{
rectangle(getpx(),getpy(),getpx1(), getpy1());
}
int getpx1()
{
return x1;
}
void setpx1(int px)
{
x1 = px;
}
int getpy1()
{
return y1;
}
void setpy1(int py)
{
y1 = py;
}
void move(int newx, int newy, int newx1, int newy1)
{
hide();
setpx(newx); setpy(newy);
setpx1(newx1); setpy1(newy1);
show();
}
private:
int x1, y1, a;
};
 
void main()
{
gr_init gr(0);
pryam pr(300-50, 300-50, 300+50, 300+50);
for(int i = 1; i < 57; i++)
{
pr.move(100-100+i*2,100-100+i*2,100+100+i*2,100+100+i*2); delay(200);
}
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 00:16     Движение прямоугольника
Посмотрите здесь:

Метод прямоугольника C++
движение прямоугольника C++
Площадь прямоугольника C++
C++ Построение прямоугольника
C++ Контур прямоугольника
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.01.2011, 00:19     Движение прямоугольника #2
менять координату только по Х, по У не изменять
ATtiCUN
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 25
14.01.2011, 08:59  [ТС]     Движение прямоугольника #3
Подскажите,пожалуйста, как это в коде программы изменить. Где именно?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.01.2011, 15:52     Движение прямоугольника #4
похоже на это - 124 строка
C++
1
pr.move(100-100+i*2,100-100,100+100+i*2,100+100);
Добавлено через 54 секунды
сразу видно, что код писали не вы, так хоть бы удосужились в нем разобратся
Yandex
Объявления
14.01.2011, 15:52     Движение прямоугольника
Ответ Создать тему
Опции темы

Текущее время: 09:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru