Вверх ↑
Ответов: 1429
Рейтинг: 50
#1: 2012-02-15 04:23:44 ЛС | профиль | цитата
Dilma, нет, это я просто спросил как делать. Я не утверждаю.

Архитектура такая:
В мультике FTCG есть два больших суб-мультика:

1. Интерфейс
2. Миди Секвенсер (позже, будет еще и аудио секвенсер)

1. Интерфейс:
Ему на вход подается doRefresh и он перерисовывает один кадр интерфейса, с текущим положениям масштаба и смещения поля. Событие doRefresh вызывается в случае если на интерфейсе что-то изменилось. (если юзер двигает поле, то это непрерывный поток кадров)
[offtop]интерфейс состоит из подмультиков, каждый из которых рисует свой слой обьектов (сетка, нотки, надписи, клипы и т. д.)[/offtop]
2. Миди секвенсер:
Наполняет маленький буфер, который в свою очередь, по таймеру, вызывает midi-события непрерывно(играет).

Оба мультика работают с одним и тем-же крупным массивом свойств. Во время работы они, то пишут, то читают, свойства обьектов.
[offtop]у каждого обьекта есть графические и музыкальные свойства.[/offtop]

выглядит так, только звука не будет:
Интерфейс33.rar


------------ Дoбавленo в 04.23:
Хотя, конкуренты меня озадачили. Они могут выводить количество клипов столько-же сколько и я. Тормоза, примерно, те-же.
Но. На самих клипах, они могут рисовать сотни тысяч обьектов!. Количество тормозов не меняется от того есть на клипах что-то или нет.

Как?! Сначала я подумал, что это PNG-шки, но эти клипы растягиваются, по осям без артефактов вместе с рисунками. Да и изменить размер сотен тысяч PNG-шек не просто. У них как будто и не происходит никакой работы.

reaper.png
reaper2.png
карма: 0

0
файлы: 3Интерфейс33.rar [55.7KB] [81], reaper.png [75.5KB] [421], reaper2.png [87.4KB] [452]