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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 09:36   #1
MrMoriman
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию анимация стрелки(C++ Builder)

необходимо реализовать анимацию стрелки:
она попадает в яблоко и вылетает сообщение
однако при движдении не закрашивается старая стрелка, ребят подскажите, как доделать а то хз уже(((

код

Код:
/---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int start=100;          // координата начала стрелы
const int len=100;      // длина стрелы
const int dx = 10;      // приращение
const int x=500,y = 100; // x,y-координаты центра "яблока"
const int rad=30;       // радиус "яблока"

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::drawApple(TObject *Sender)
{
Canvas->Brush->Color = clRed;
Canvas->Pen->Color = clRed;
Canvas->Ellipse(x-rad,y-rad,x+rad,y+rad);
Canvas->Ellipse(x-rad-12,y-rad,x+rad-12,y+rad);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::drawArrow(TObject *Sender)
{

Canvas->Pen->Color = clBlack;
Canvas->MoveTo(start,y);
Canvas->LineTo(start,y-10);
Canvas->LineTo(start+10,y);
Canvas->LineTo(start,y+10);
Canvas->LineTo(start,y);
Canvas->LineTo(start-len,y);

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        drawApple(Form1);            // нарисовать яблоко

        drawArrow(clWhite);  // нарисовать старую цветом фона

        start+=dx;              // передвинуть

        drawArrow(clBlack);     // нарисовать новую

        if(start==(x-50))            // проверка на попадание
        {
                Timer1->Enabled = false;
                ShowMessage("Попасть в ПГУ - попасть в яблочко!!!");
        }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Shot(TObject *Sender)
{
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
Timer1->Interval=StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------
MrMoriman вне форума Ответить с цитированием
Старый 13.12.2010, 10:10   #2
MrMoriman
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию

ой, прошу прощения... можно не помогать, сделал сам))) мож но удалить тему)))
MrMoriman вне форума Ответить с цитированием
Старый 13.12.2010, 10:24   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У меня нет борладСи так что просто скажу.
Поменяй процедуру

Код:
void __fastcall TForm1::drawArrow(TObject *Sender)
{
Canvas->Pen->Color = <Тут цвет фона>;
Canvas->MoveTo(start,y);
Canvas->LineTo(start,y-;
Canvas->LineTo(start,y);
Canvas->LineTo(start,y);
Canvas->LineTo(start,y);
Canvas->LineTo(start-len,y);

Canvas->Pen->Color = clBlack;
Canvas->MoveTo(start,y);
Canvas->LineTo(start,y-10);
Canvas->LineTo(start+10,y);
Canvas->LineTo(start,y+10);
Canvas->LineTo(start,y);
Canvas->LineTo(start-len,y);

}
Смысл в том чтоб по старым координатам отрисовать стрелку цветом фона - она исчезнет
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стрелки ddeman666 Помощь студентам 0 16.05.2010 12:04
Delphi и VBA (создание стрелки) Kuraj Общие вопросы Delphi 4 09.01.2010 23:33
Анимирование стрелки... kentlm Мультимедиа в Delphi 2 14.05.2009 02:17
Помогмте создать стрелки прибора(высотометра) kasta Помощь студентам 1 11.11.2008 00:09