|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.12.2012, 00:36 | #1 |
Регистрация: 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. Причина: дополнил |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
НЕ закрашивается таблица умножения | 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 |