Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2013, 18:03   #1
ElegantLady
 
Аватар для ElegantLady
 
Регистрация: 31.05.2013
Сообщений: 7
Восклицание перемещение объекта (области) в заданном направлении на заданную величину

помогите пожалуйста.есть программа на BorlandC,которая рисует букву Р в рамке.нужно сделать так,чтобы эта буква перемещалась в рамке,при нажатии клавиш "вверх","вниз" и т.д. (буква не должна выходить за рамку)

Код C++
Код:
# include <stdio.h>
# include <conio.h>
# include <graphics.h>
# include <stdlib.h>
# include <math.h>
int main(void)
{ int grdrv=DETECT, grmod;
    initgraph (&grdrv,&grmod," ");
    rectangle (80,48,180,148);
    int x1,x2,y1,y2,x,y,cout;
    setcolor (13);
    line (100,148,110,148);
    line (110,148,110,88);
    line (110,88,160,88);
    line (160,88,160,48);
    line (160,48,100,48);
    line (100,48,100,148);
    line (110,58,150,58);
    line (150,58,150,78);
    line (150,78,110,78);
    line (110,78,110,58);
getch();
 
closegraph;
getch();
return 0;
}

Последний раз редактировалось Stilet; 31.05.2013 в 18:24.
ElegantLady вне форума Ответить с цитированием
Старый 31.05.2013, 18:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Borland C обязателен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.05.2013, 18:28   #3
ElegantLady
 
Аватар для ElegantLady
 
Регистрация: 31.05.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Borland C обязателен?
не обязателен, главное, чтобы язык был C
ElegantLady вне форума Ответить с цитированием
Старый 31.05.2013, 18:34   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Для начала введите две переменные - смещения буквы по осям.
Затем вынесите рисование буквы (без рамки) в отдельную процедуру.
В этой процедуре заменить абсолютные координаты на сумму смещения и относительной координаты, примерно так:
было:
Код:
    line (100,148,110,148);
    line (110,148,110,88);
должно стать:
Код:
    line (dx+ 0, dy+78, dx+10, dy+78); // по х вычитаем посоянное смещение 100
    line (dx+10, dy+78, dx+10, dy+18); // по у вычитаем постоянное смещение 70
Ну а дальше решайте, каким способом будете перемещать букву.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить и напечатать сумму элементов,превышающих заданную величину С-2,5 для каждой строки заданной матрицы А. Екатерина 1994 Паскаль, Turbo Pascal, PascalABC.NET 2 29.05.2012 14:07