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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 00:52   #1
Nika123
 
Регистрация: 22.11.2010
Сообщений: 3
По умолчанию ТочкаГрафика

Задача в том,что бы падающая фигурка(точка) при столкновении с препятствием,падала уже...как бы это сказать...по другой траектории.Вот кусок кода.Обьясните пожалуйста в чем сдесь смысл и можно ли это написать как-нибудь иначе?
S[i][j]-массив точек
dx-смещение точки влево,если нажата клавиша <-

int smeshenie=random(5)-2+dx;
for (int p=0;p<=abs(smeshenie);p++)
{
S[i][j].x+=smeshenie;
if (getpixel(S[i][j].x,S[i][j].y)==WHITE || getpixel(S[i][j].x,S[i][j].y)==GREEN || getpixel(S[i][j].x,S[i][j].y)==RED || getpixel(S[i][j].x,S[i][j].y)==LIGHTGRAY)
{
//ravn=0;
if (S[i][j].y>=0)
{
for (int xk=0;xk<m;xk++)
for (int yk=0;yk<n;yk++)
//if ((S[xk][yk].x==S[i][j].x) && (S[xk][yk].y==S[i][j].y) && ((xk!=i) || (yk!=j)))
{
S[i][j].color=S[xk][yk].color;
ravn=1;
break;
}

if (ravn==1) break;
if ((ravn==0) && (S[i][j].y>0))
{
if (((getpixel(S[i][j].x-smeshenie-1,S[i][j].y+1)!=BLACK) || (getpixel(S[i][j].x-smeshenie+1,S[i][j].y+1)!=BLACK)) && (getpixel(S[i][j].x-smeshenie,S[i][j].y+1)!=BLACK) &&
((getpixel(S[i][j].x-smeshenie-1,S[i][j].y+2)!=BLACK) && (getpixel(S[i][j].x-smeshenie+1,S[i][j].y+2)!=BLACK)))
{
putpixel(S[i][j].x-smeshenie,S[i][j].y,WHITE);
S[i][j].y=0;
S[i][j].x=random(mx);
S[i][j].color=BLACK;
break;
}
else
{
S[i][j].x-=2*smeshenie;
break;
}
}
Nika123 вне форума Ответить с цитированием
Ответ


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