AlignObj (CMS)

From The Official Visionaire Studio: Adventure Game Engine Wiki
Revision as of 15:00, 15 August 2014 by AFRLme (talk) (Created page with "{| class="wikitable" style="width:100%" |- ! style="text-align:left" | Name !! style="text-align:left" | Type !! style="text-align:left" | By |- | alignObj("c", "t") || Defini...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Name Type By
alignObj("c", "t") Definition AFRLme

This small function allows you to quickly align a character to an object.

Instructions

1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2a. To align current character to an object...

alignObj("", "object_name")

2b. To align a specific character to an object...

alignObj("character_name", "object_name")

Main Script

function alignObj(c, t)
 if c == "" then c = game:getLink(VGameCurrentCharacter) else c = getObject("Characters[" .. c .. "]") end
 t = getObject("Game.GameCurrentScene.SceneObjects[" .. t .. "]")
 -- + --
 local p1 = c:getPoint(VCharacterPosition)
 local p2 = t:getPoint(VObjectPosition)
 -- + --
 local ax, ay
 ay = p1.y - p2.y
 ax = p2.x - p1.x
 -- + --
 local angle = math.deg( math.atan2(ay, ax) )
 if angle < 0 then angle = 360 + angle end
 -- + -- 
 c:setValue(VCharacterDirection, angle)
end

Syntax Breakdown

Name Type Description
c "string" This should be a "string" value containing the name of the character you want to affect; if string is empty it will default to current character.
t "string" This should be a "string" value containing the name of the object you want to align to.