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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2015, 10:42   #1
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию полет в облаках, C++ помогите разобраться с кодом

Код:
TForm1 *Form1;


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
//zagr fonovogo ris
	back = new  Graphics::TBitmap();
	back->LoadFromFile("sky.bmp");
	ClientWidth = back->Width;
	ClientHeight = back->Height;
//zagr samolet
	sprite = new Graphics::TBitmap();
	sprite->LoadFromFile("plane.bmp");
	sprite->Transparent = true;
//formirovanie kadra
	kadr = new Graphics::TBitmap();
	kadr->LoadFromFile("plane.bmp");
//ishodnoe polojenie samoleta
	x = -40;
	y = 20;
	Timer1->Interval = 10;
	Timer1->Enabled = true;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TRect badRect;
TRect frameRect;

	badRect = Rect(x,y,x+sprite->Width, y+sprite->Height);
	frameRect = Rect(0,0,kadr->Width,kadr->Height);

#ifdef ONCANVAS
	Canvas->CopyRect(badRect,back->Canvas,badRect);

	x += 2;
	if (x>ClientWidth)
	{
		x = -20;
		y = random(ClientHeight - 30);
		Timer1->Intreval = random(20)+10;

	}
	Canvas->Draw(x,y,sprite);
#else
	kadr->Canvas->CopyRect(frameRect, back->Canvas, badRect);
	kadr->Canvas->Draw(0,0,sprite);
	Form1->Canvas->Draw(x,y,kadr);
	x +=1;
	if (x > ClientWidht)
	{
		x = -20;
		y = random(ClientHeight - 30);
		Timer1->Interval = random(20) +10;
	}
#endif
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->Draw(0,0,back);
}
Все разобрался. Остался 1 вопрос:
При создании new Graphics::TBitmap, нужно ли удалять при выходе из программы kadr,sprite,back? (delete kadr; )
реализовал вот так
Код:
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete back;
delete sprite;
delete kadr;
}

Последний раз редактировалось Dima-91; 04.11.2015 в 10:49.
Dima-91 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с кодом Coolmem PHP 23 22.04.2015 15:07
Помогите разобраться с кодом! Astiya Помощь студентам 3 29.03.2015 15:33
Помогите разобраться с кодом braviatry11 Общие вопросы Delphi 3 12.06.2014 19:29
помогите разобраться с кодом samosval Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 27.12.2007 00:20