Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 1
Регистрация: 15.01.2010
Сообщений: 98
1

Время Анимации

06.06.2010, 00:23. Показов 721. Ответов 1
Метки нет (Все метки)

Ребят Помогите плз

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit8.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y, x1, y1, x2, y2;     // ïîëîæåíèå îêíà è ìÿ÷èêà
int dx1,dy1, dx2,dy2 ;   // ïðèðàùåíèå êîîðäèíàò
int r;        // ðàäèóñ ìÿ÷èêà
TColor cBall; // öâåò ìÿ÷èêà
TColor cBack; // öâåò ïîëÿ
int wp, hp;   // ðàçìåð ïîëÿ (ôîðìû)
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    r = 20
    ;          // ðàäèóñ ìÿ÷èêà
    x1 = 3; y1 = 50;  // íà÷àëüíîå ïîëîæåíèå ìÿ÷èêà
    x2 = 3; y2 = 3;
    dx1=dy1 = 1;
    dx2=dy2 = 1;
 
    cBall = (TColor)RGB(217, 217, 25); // öâåò ìÿ÷èêà
    cBack = (TColor)RGB(33, 94, 33);   // öâåò ïîëÿ
 
    wp = Image1->Width;
    hp = Image1->Height;
 
    // íàñòðîéêà òàéìåðà
    Timer1->Interval = 10;
    Timer1->Enabled = true;
    x=-10;
    y=-10;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    // ñòåðåòü èçîáðàæåíèå ìÿ÷à
    Image1->Canvas->Pen->Color = cBack ;
    Image1->Canvas->Ellipse(x1,y1,x1+r,y1+r);
    // ** âû÷èñëèòü íîâîå ïîëîæåíèå ìÿ÷à **
 
        // ìÿ÷ äâèæåòñÿ âïðàâî èëè âëåâî
        if (( x1 + dx1 + r > wp )||( x1 + dx1 + r < r )) dx1 = - dx1;
        // ìÿ÷ äâèæåòñÿ ââåðõ èëè â íèç
        if (( y1 + dy1 + r > hp )||( y1 + dy1 + r < r )) dy1 = -dy1;
 
    x1 =x1+ dx1;
    y1 =y1+ dy1;
 
    // íàðèñîâàòü ìÿ÷ â íîâîé òî÷êå
    Image1->Canvas->Pen->Color = clGreen;
    Image1->Canvas->Ellipse(x1,y1,x1+r,y1+r);
    // ñòåðåòü èçîáðàæåíèå ìÿ÷à
    Image1->Canvas->Pen->Color = cBack ;
    Image1->Canvas->Ellipse(x2,y2,x2+r,y2+r);
    // ** âû÷èñëèòü íîâîå ïîëîæåíèå ìÿ÷à **
 
        // ìÿ÷ äâèæåòñÿ âïðàâî èëè âëåâî
        if (( x2 + dx2 + r > wp )||( x2 + dx2 + r < r )) dx2 = - dx2;
        // ìÿ÷ äâèæåòñÿ ââåðõ èëè â íèç
        if (( y2 + dy2 + r > hp )||( y2 + dy2 + r < r )) dy2 = -dy2;
 
    x2 += dx2;
    y2 += dy2;
    // íàðèñîâàòü ìÿ÷ â íîâîé òî÷êå
    Image1->Canvas->Pen->Color = clRed;
    Image1->Canvas->Ellipse(x2,y2,x2+r,y2+r);
    // ñòîëêíîâåíèå
    int a,b;
    a=x1-x2;
    if (a<0) a=-a;
    b=y1-y2;
    if (b<0) b=-b;
    if ((a<6)&&(b==0))
     {
       dx1 = - dx1;
       dx2 = - dx2;
     }
    if ((a==0)&&(b<6))
     {
       dy1 = - dy1;
       dy2 = - dy2;
     }
 //âûïàäåíèå øàðà
if ((x1>x-3)&&(y1>y-3)&&(x1<x+3)&&(y1<y+3))
  {
    Timer1->Enabled=false;
    Edit1->Text="âûïàë íîìåð 1";
  }
if ((x2>x-3)&&(y2>y-3)&&(x2<x+3)&&(y2<y+3))
  {
    Timer1->Enabled=false;
    Edit1->Text="âûïàë íîìåð 2";
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
Image1->Canvas->Brush->Color=clRed;
Image1->Canvas->Rectangle(X,Y,X+6,Y+6);
x=X;
y=Y;
}
//----
Вот Код анимации

Как зделать чтобы через 15 секунд (можно немножко больше) выключалась анимация и автоматически выпрыгивало Form2
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2010, 00:23
Ответы с готовыми решениями:

Время и дата. Время жизни программы
Сделал вывод даты в Edit, но столкнулся с проблемой, время не &quot;идёт&quot;. AnsiString Days =...

Загрузка анимации
Здравствуйте. Подскажите пожалуйста в какой компонент (и с помощью какого оператора) можно...

Создание анимации
Нужно создать анимацию: мяч катится по траве. Я создал, Button1, в ней написал: x1=0; y1=370;...

Масштабирование анимации
Здравствуйте! Передо мной стоит следующая задача: имеется image, trackbar и кнопка. При нажатии на...

1
40 / 39 / 4
Регистрация: 22.03.2010
Сообщений: 100
06.06.2010, 14:07 2
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Timer2->Interval = 1500;
Timer2->Enabled = true;
}
 
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
Timer1->Enabled = false;
Form2->Show();
}
Попробуй так, но не ручаюсь, не проверял..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2010, 14:07

Создание анимации в C++ Builder
Здравствуйте! Хочу выяснить, если в C++ Builder функции, управляющие анимацией, например, эффект...

Что-то типа анимации.
Необходимо сделать так что бы картинка плавно проесжала по всей форме. Делал сам через таймер, но...

Вставка видео или анимации
Подскажите пожалуйста, как проще вставить анимацию или видео на форму. Пробовал Animate - Cannot...

Количество кадров анимации GIF
Всем доброго времени суток. Как получить список кадров gif-ки?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.