Приветствую. Сегодня я расскажу об одном интересном способе
добычи информации.
К нам часто приходят вопросы
наподобие такого - «Как добавить пружину/ось/крепление скриптом?». Ответ
простой – для этого есть специальные функции scene.add*
. Но желаемый результат не мог быть достигнут из-за того что в качестве
аргументов надо указывать geomID и entityID объектов, а узнать их не представляется возможным без
предварительной подготовки. Но решение все-таки есть, называется оно Новый
Метод (New Method).
Заключается он в последовательном выполнении двух команд - App.step и App.undo
.
Конечный же код выглядит так –
(e)=>{e.geom.geomID
:= 0; App.step; App.undo; scene.my. geomID := e.geom.geomID
}
В данном случае он применялся для строки onLaserHit или onHitByLaser. В итоге мы
получим geomID объекта
как значение переменной, а уж где его использовать – ваше дело.
Далее приводится список всех свойств объекта, которые вы
можете получить этим способом –
•
airFrictionMult
• angle
• angvel
•
attraction
• autoBrake
• body
•
buttonDestroy
•
buttonMirror
• ccw
•
collideSet
•
collideWater
• color
•
controllerAcc
•
controllerInvertX
•
controllerInvertY
•
controllerReverseXY
• cutter
•
dampingFactor
• density
•
distanceLimit
•
drawBorder
• drawCake
• entityID
• fadeDist
• fadeTime
• friction
• geom
• geom0
• geom1
• geom1pos
• geomID
•
heteroCollide
• immortal
•
impulseLimit
• killer
• length
•
materialVelocity
• maxRays
• motor
•
motorTorque
• onCollide
•
onHitByLaser
•
onLaserHit
•
opaqueBorders
• pos
•
protractor
• radius
•
refractiveIndex
• relpoint
•
restitution
• rotation
• ruler
•
showLaserBodyAttrib
• size
•
strengthFactor
• surfaces
• text
• textColor
• textScale
• texture
•
textureMatrix
• vel
• velocity
• world0pos
• world1pos
• zDepth
Источник: http://algophun.3dn.ru |