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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2012, 00:36   #1
svatorus
 
Регистрация: 23.04.2012
Сообщений: 8
По умолчанию Неправильно закрашивается фигура

здравствуйте, друзья!
Суть проблемы в том, что при повороте влево и вниз - все закрашивается правильно, при повороте вверх или вниз почему то закрашивается не только фигура, но и весь холст.

p.s. Суть проги - игра пакмен. Up, Down, Right, Left соответственно стороны, куда смотрит пакмен открытым ртом.

Код:

void CPacman::PaintPacmanLeft(int dx, int dy)
{
CPacman::x+=dx;
CPacman::y+=dy;
Img->Canvas->Pen->Color=clSilver;
Img->Canvas->Brush->Color=clSilver;
Img->Canvas->MoveTo(CPacman::x,CPacman::y);
Img->Canvas->AngleArc(CPacman::x,CPacman::y,CPa cman::size,220,270);
Img->Canvas->LineTo(CPacman::x,CPacman::y);
Img->Canvas->FloodFill(CPacman::x+1,CPacman::y+ 1,clSilver,fsBorder);
}

void CPacman::PaintPacmanRight(int dx, int dy)
{
CPacman::x+=dx;
CPacman::y+=dy;
Img->Canvas->Pen->Color=clSilver;
Img->Canvas->Brush->Color=clSilver;
Img->Canvas->MoveTo(CPacman::x,CPacman::y);
Img->Canvas->AngleArc(CPacman::x,CPacman::y,CPa cman::size,50,270);
Img->Canvas->LineTo(CPacman::x,CPacman::y);
Img->Canvas->FloodFill(CPacman::x-1,CPacman::y-1,clSilver,fsBorder);
}

void CPacman::PaintPacmanDown(int dx, int dy)
{
CPacman::x+=dx;
CPacman::y+=dy;
Img->Canvas->Pen->Color=clSilver;
Img->Canvas->Brush->Color=clSilver;
Img->Canvas->MoveTo(CPacman::x,CPacman::y);
Img->Canvas->AngleArc(CPacman::x,CPacman::y,CPa cman::size,-45,270);
Img->Canvas->LineTo(CPacman::x,CPacman::y);
Img->Canvas->FloodFill(CPacman::x,CPacman::y-1,clSilver,fsBorder);
}

void CPacman::PaintPacmanUp(int dx, int dy)
{
CPacman::x+=dx;
CPacman::y+=dy;
Img->Canvas->Pen->Color=clSilver;
Img->Canvas->Brush->Color=clSilver;
Img->Canvas->MoveTo(CPacman::x,CPacman::y);
Img->Canvas->AngleArc(CPacman::x,CPacman::y,CPa cman::size,135,270);
Img->Canvas->LineTo(CPacman::x,CPacman::y);
Img->Canvas->FloodFill(CPacman::x+1,CPacman::y, clSilver,fsBorder);
}

Управляю движением через кнопки:
if (Key==37) {
Pacman->HidePacman();
Pacman->PaintPacmanLeft(-10,0);
}

if (Key==38) {
Pacman->HidePacman();
Pacman->PaintPacmanUp(0,-10);
}

if (Key==39) {
Pacman->HidePacman();
Pacman->PaintPacmanRight(10,0);
}

if (Key==40) {
Pacman->HidePacman();
Pacman->PaintPacmanDown(0,10);
}

Последний раз редактировалось svatorus; 15.12.2012 в 00:50. Причина: дополнил
svatorus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НЕ закрашивается таблица умножения romantik2011 PHP 1 06.09.2011 21:28
фигура в делфи gunplay Общие вопросы Delphi 0 18.01.2011 16:50
StringGrid -при изменении фона ячейки закрашивается и текст(( 6AZblJlb Помощь студентам 3 30.11.2010 14:16
фигура-грани lex1398 Помощь студентам 2 28.08.2010 09:54
Не закрашивается область. ( FloodFill) vedro-compota Мультимедиа в Delphi 5 05.06.2010 20:05