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

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

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

Студворк — интернет-сервис помощи студентам
Надо сделать что-то наподобие простой анимации
Есть какой-то "стол,касса", к которому подходят объекты, стоят какое-то время, уходят. Естественно создаётся очередь, потом она двигается
Думаю идея ясна
Собсна проблема:
Надо чтобы после определённого момента в коде создавались объекты и они начинали движение до этого стола, потом стояли там определённое время(которое им зададут) и после уходили
Попытался что-то сделать но не получилось, отрисовка идет, а движения нет (Условие до какого момента доходить не добавлял)
Я хотел создать очередь из элементов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2018, 15:41
Ответы с готовыми решениями:

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

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

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2018, 15:41
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru