Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 11.03.2018
Сообщений: 8
1

Перемещение нескольких объектов

26.04.2018, 15:41. Показов 795. Ответов 0

Author24 — интернет-сервис помощи студентам
Надо сделать что-то наподобие простой анимации
Есть какой-то "стол,касса", к которому подходят объекты, стоят какое-то время, уходят. Естественно создаётся очередь, потом она двигается
Думаю идея ясна
Собсна проблема:
Надо чтобы после определённого момента в коде создавались объекты и они начинали движение до этого стола, потом стояли там определённое время(которое им зададут) и после уходили
Попытался что-то сделать но не получилось, отрисовка идет, а движения нет (Условие до какого момента доходить не добавлял)
Я хотел создать очередь из элементов TBitmap и потом двигать их, но похоже что-то работает не так как я предполагал.
Картинка у меня 30х30 пикселей(черный квадрат). В идеале было бы, чтобы их приход выглядел более живым, т.е. если создалось 3 элемента и они начали отрисовываться, чтобы они не строем шли, а может даже, через какое-то разное расстояние (или маленький промежуток времени)
файл Unit1.cpp
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PuskClick(TObject *Sender)
{ Timer1->Enabled=true;                                      /////////-----------//////////
        ..................................................                        
    while (...........) { // создание этих "порций элементов" зацикленно
        ........
            c += processArrive(NewEvent, CountClient, Client, Pole, PaintBox1);
        ........
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 
           for (int i = 0;i != Que.size();i++){
               if(!(PaintBox1->Canvas->Pixels[60][200-32] == clBlack)){
                   PaintBox1->Repaint();
                    Graphics::TBitmap* bitmap = new Graphics::TBitmap;   ///--------////
                    bitmap = &Que[i];
                    bitmap->Transparent=true;
                    bitmap->TransparentColor=clWhite;
                   PaintBox1->Canvas->Draw(60,200-32,bitmap);
                    //bitmap->
                    delete bitmap;
                    bitmap=NULL;
                    Application->ProcessMessages();
               }
           }
 
}
//---------------------------------------------------------------------------
файл Unit1.h
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
#include <iostream>
#include <list>
#include <deque>
using namespace std;
 
..........................................
 
deque<TBitmap> Que;
 
void rare(...................., TPaintBox *PaintBox1)
{
 
        int n = rand() % 5 + 1;
        for (int i = 1, u=0; i != n; i++) { // тут создается от 1 до 5 элементов
                 ......................................................
        Graphics::TBitmap* bitmap = new Graphics::TBitmap;   ///--------////
        bitmap->LoadFromFile("путь картинки");
        bitmap->Transparent=true;
        bitmap->TransparentColor=clWhite;
        while(PaintBox1->Canvas->Pixels[70][200+u*32] == clBlack) u++;
        PaintBox1->Canvas->Draw(60,200+u*32, bitmap);
        Que.push_back(*bitmap);
        delete bitmap;
        bitmap=NULL;
        }
        ................................................
    
};
 
 
int processArrive(............, TPaintBox *PaintBox1 ) {
.....................
    rare(........, PaintBox1); 
.......................
    return z;
};
Добавлено через 18 часов 48 минут
UP!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2018, 15:41
Ответы с готовыми решениями:

Перемещение динамических объектов
Есть класс, который наследуется от TImage Сделал ему два обработчика, для того чтобы мог...

Перемещение объектов по форме
Доброго времени суток! Подскажите, как реализовать такую задачку: На форме расположены разные...

Перемещение объектов на форме мышкой
Здравствуйте. Возникла необходимость перемещать, уже в запущенной программе, объекты...

Перемещение нескольких объектов мышью
Всем привет. Столкнулся с такой проблемой. Создаю несколько объектов и нужно, что бы каждый объект...

0
26.04.2018, 15:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2018, 15:41
Помогаю со студенческими работами здесь

Одновременное перемещение нескольких объектов
Всем очередной привет )) Помогите пожалуйста в небольшой (для кого как :D) проблеме. У меня на...

Перемещение объектов
Здравствуйте,хочу сделать мини 2д игрушку , где при нажатии на стрелки некий объект будет двигаться...

Перемещение объектов
В процессе изучения Android я так и не нашел ничего похожего,а именно: Допустим у меня есть...

VB Перемещение объектов
Как реализовать задание . Нужно сделать мяч и ворота , снизу кнопку Гол ( мяч перемещается в ворота...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru