- Неподвижный спрайт (лучше - два)
- "мячик в коробке" (спрайт, отражающийся от краёв формы)
Плюс есть ряд вопросов:
1. Как взаимодействовать со спрайтом с помощью мыши?
2. Как отрабатывать "многерные" (тройные и более) коллизии?
Заранее спасибо!
Ответов: 5446
Рейтинг: 323
|
|||
Решил изучить эту новую (для меня) фишку пакета. Штатные примеры (для меня) слишком запутанные, хотелось бы два простых примера:
Плюс есть ряд вопросов: 1. Как взаимодействовать со спрайтом с помощью мыши? 2. Как отрабатывать "многерные" (тройные и более) коллизии? Заранее спасибо! |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Пример вывода стпайтов - статический и с анимацией
code_18259.txt отражение от краев формы code_18260.txt iarspider писал(а): Как взаимодействовать со спрайтом с помощью мыши?для определения попадания мышью в спрайт использовать PointInRect iarspider писал(а): Как отрабатывать "многерные" (тройные и более) коллизии?каждое пересечение спрайта с другим объектом сцены пораждает событие onHitX или onHitY, которое выдает в поток ID объекта и ссылку на него. Соответственно проверка ID на конкретное значение позволит управлять каждым столкновением в отдельности. |
|||
карма: 27 |
| ||
файлы: 2 | code_18259.txt [2.5KB] [364], code_18260.txt [2.7KB] [413] | ||
Голосовали: | iarspider |
Ответов: 876
Рейтинг: 101
|
|||
Можно доработать спрайты что бы динамически загружать массивы или хотя бы отдельной спрайты, а то чтобы заменить картинку спрайта приходиться все пере компилировать
|
|||
карма: 1 |
|
Ответов: 4641
Рейтинг: 334
|
|||
А мне хотелось бы видеть просто элемент "Рикошет", так было бы более понятно.
Задал в свойствах с какими объектами проверять коллизии и все. Столкнулся, отразился. А так же элемент "гравитация", "прыжок" итд как во многих игровых движках. Собственно понимаю что написал для галочки, но это так вдруг появятся доработчики Game Engine Еще есть сложности в понимании защиты ресурсов. Ну не должен разработчик отвлекаться на технические моменты... что где зачем защищать.. Еще сложно отлаживать схемы. Ставишь Дебаг и схема виснет или рантайм. Бывало так зависнет, что только ресет один ответ. |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
карма: 1 |
| ||
файлы: 1 | code_18268.txt [6.3KB] [273] |
Ответов: 2271
Рейтинг: 677
|
|||
003 и 004 GE_SpriteMove Sprite = (empty)
code_18274.txt Если понажимать на add (раз 10-20) можно понаблюда за жизнью в муравейники . |
|||
карма: 11 |
| ||
файлы: 1 | code_18274.txt [5.4KB] [377] | ||
Голосовали: | iarspider |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Ravilr писал(а): Еще есть сложности в понимании защиты ресурсов. Ну не должен разработчик отвлекаться на технические моменты... что где зачем защищать..Еще сложно отлаживать схемы. Ставишь Дебаг и схема виснет или рантайм. Ravilr, если это так хочется реализовать в схеме, то не нужно использовать MMTimer. Все выше описанные проблемы происходят только от того, что используется поток. Сделать работу с просчетом сцены и ее отрисовкой полностью прозрачной можно только в том случае, если добавить элемент GE_PaintBox, который который ту же самую синхронизацию сделает внутри себя. Но это не избавит нас от повторения проблемы в схеме, в которой разработчик из основного цикла решит что-то еще изменить на форме. Поэтому скрыть потоки на базе существующего схемотехнического подхода невозможно в принципе - аукнется в любом случае. |
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
sla8a, спасибо! И всё же, походу, нужную логику на GE не сделать - слишком запутанная будет схема. Но в этом есть и плюс - можно будет изучить PyGame.
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
конечно же для игрового движка нужно прикручивать что-то готовое - с нормальной физикой и отрисовкой спрайтов в DirectX и OpenGL.
|
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma, там физики нет - одна химия ;) Проблема в том, что у игры есть три разных состояния: добавление объектов так, чтобы не было коллизий; перемещение объектов (захват мышкой, до отпускания проверки на столкновения отключены); отпускание объекта - с проверкой коллизии и (если соответствует правилам) удаление объектов (плюс иногда удаление объекта определённого типа, находящегося где-то ещё в поле). Количество типов объектов - 170, для каждого свой набор правил взаимодействия с остальными.
|
|||
карма: 1 |
|
Ответов: 4
Рейтинг: 2
|
|||
1 А как создать новый спрайт во время выполнения программы?
2 Есть ли возможность дублировать спрайты? 3 Можно ли реализовать отдельную точку для задания имени спрайта? |
|||
карма: 0 |
|
Ответов: 4641
Рейтинг: 334
|
|||
Antender,
1. Смотри примеры выше. Там как раз создаются спрайты во время выполнения программы 2. Смотри примеры выше. Там как раз дублируются спрайты во время выполнения программы 3. А зачем? |
|||
карма: 1 |
|
Ответов: 4
Рейтинг: 2
|
|||
1 Не создаются - там количество спрайтов жёстко заданы
2 Не дублируются - только перемещаются 3 Чтобы можно было менять выводимые на экран объекты, либо требуется метод создания спрайта. У спрайта есть метод doDestroy, но нет doCreate |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Antender, это всё делается через GE_SpriteArray
|
|||
карма: 1 |
| ||
Голосовали: | Antender |
Ответов: 4
Рейтинг: 2
|
|||
Так GE_SpriteArray просто контейнер для спрайтов - у него ни одного метода нет
|
|||
карма: 0 |
|