Вопрос к разработчику. Можно ли в элементе GE_Sprite добавить ещё 5 свойств. 1 - клик мышкой, 2 - Столкновение произошло сверху, 3 - Столкновение произошло снизу, 4 - Столкновение произошло слева, 5 - Столкновение произошло справа. В принципе - это решаемо, но требуется много элементов, а если спрайт не один то, ещё больше. Но если нет... то на нет и суда нет.
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
клик мышкой спрайту просто так добавить невозможно, т.к. необходима привязка к интерфейсному объекту формы, на котором рендерится сцена.
определение стороны столкновения делается простой проверкой ускорения самого объекта или объекта с ним столкнувшегося. Это + 1 If_Else. |
|||
карма: 27 |
|
Ответов: 2
Рейтинг: 0
|
|||
Dilma писал(а): клик мышкой спрайту просто так добавить невозможно, т.к. необходима привязка к интерфейсному объекту формы, на котором рендерится сцена.определение стороны столкновения делается простой проверкой ускорения самого объекта или объекта с ним столкнувшегося. Это + 1 If_Else. Ну клик по спрайту можно определить сравнением клика мыши и положение спрайта, скажи пожалуйста а где лучше хранить присвоенные данные спрайта (на пример "ранг, жизни и тд" или координаты куда нужно направиться спрайту) ? И как можно реализовать создание спрайта программно чтоб они сами создавались и по исчерпании их жизни исчезали ? И как отобразить ID спрайта например в Label ? Редактировалось 1 раз(а), последний 2017-04-22 13:38:09 |
|||
карма: 0 |
|
Ответов: 32
Рейтинг: -2
|
|||
Создать бесконечное программное кол-во спрайтов можно с помощью
Add(MultiElementEx,3936166,819,574) { Mode=1 } BEGIN_SDK Add(EditMultiEx,14226967,21,21) { WorkCount=#5:##add| DataCount=#11:Orientation| Width=440 Point(##add) link(##add,3310611:doOperation,[(40,27)(40,139)]) } Add(GE_Sprite,9629514,322,133) { Name="gear" GameScene="parent.MainScene" Width=5 Height=5 kX=0.9 Mode=1 Filter="1" ID=5 Sprites="parent.sprites" SpriteName="gear" Frames=2 Speed=20 TimeLive=250 Point(doDestroy) Point(dokX) Point(onHitX) link(onHitX,9629514:doDestroy,[(366,139)(366,127)(310,127)(310,139)]) } Add(GE_SpriteMove,9789530,168,133) { Sprite="gear" link(onMove,12811825:doCompare,[]) link(X,3310611:Result,[(174,121)(152,121)(152,178)(69,178)]) } Add(GE_SpriteMove,11672219,63,84) { Sprite="parent.player" } Add(If_else,12811825,217,133) { Op2=Integer(4) link(onFalse,2903448:doData,[]) link(Op1,14226967:Orientation,[(223,77)(27,77)]) } Add(DoData,2903448,266,140) { Data=Real(-0.9) link(onEventData,9629514:dokX,[]) } Add(Math,3310611,63,133) { Op2=10 link(onResult,5300594:doOperation,[]) link(Op1,11672219:CurX,[]) } Add(Math,5300594,112,133) { Op2=10 link(onResult,9789530:doMove,[]) link(Op1,11672219:CurY,[(118,125)(76,125)]) } END_SDK Вложенной схемы в динамическом моде (Я скопировал с примера demo delphin/draw/GameEnige/demo.sha ) На счет Id можно через столкновение спрайта невидимки (в теории не проверял) |
|||
карма: -2 |
|
Ответов: 2
Рейтинг: 0
|
|||
egorandmyriska2006 Скажи пожалуйста а как можно температуру процессора проверить с помощью Hiasm
|
|||
карма: 0 |
|
5