How To Use BodyPosition: Difference between revisions
>Davidii |
>Mindraker No edit summary |
||
Line 1: | Line 1: | ||
==Introduction== | ==Introduction== | ||
In this tutorial, you should be in | In this tutorial, you should be in [[Roblox Studio]]. | ||
== Setup == | == Setup == | ||
First, make a small brick. I made mine 5x1x5. | |||
Next, select the brick you just made and click Insert->Object->Script. | Next, select the brick you just made and click Insert->Object->Script. | ||
Now double-click the new script object. | Now double-click the new script object. | ||
== Code == | |||
You should see the following: | You should see the following: | ||
<pre> print("Hello World!") </pre> | <pre> print("Hello World!") </pre> | ||
Delete | Delete that text, you won't need it. | ||
First, add this code. | First, add this code. | ||
Line 18: | Line 19: | ||
<pre>local h = hit.Parent:findFirstChild("Humanoid") | <pre>local h = hit.Parent:findFirstChild("Humanoid") | ||
if h ~= nil then</pre> | if h ~= nil then</pre> | ||
This will detect | This will detect whether what touched it was a human or not. You don't want a rocket or slingshot to activate it do you? | ||
<pre>local b = Instance.new("BodyPosition")</pre> | <pre>local b = Instance.new("BodyPosition")</pre> | ||
Ok, this defines our Bodyposition. But right now it doesn't do anything, because it doesn't have a parent. | Ok, this defines our Bodyposition. But right now it doesn't do anything, because it doesn't have a parent. | ||
Line 24: | Line 25: | ||
b.maxForce = (500000000, 500000000, 500000000) | b.maxForce = (500000000, 500000000, 500000000) | ||
b.Parent = hit.Parent.Torso</pre> | b.Parent = hit.Parent.Torso</pre> | ||
This will define some of BodyPosition's properties. | This will define some of BodyPosition's properties. | ||
*BodyPosition's position property does this: When a BodyPosition has a parent, it will make the parent fly to the BodyPosition's position property. It's great for a lot of things, like teleporting without teleporting. | |||
*maxForce property is how much force can be put on each axis of the parent brick. It also governs how far away the BodyPosition can be from it's position property before it will take a brick there. | |||
*The Parent of the BodyPosition is what the BodyPosition will be moving, in this case, the character's torso. | |||
So far we have this: | So far we have this: | ||
<pre>function onTouched(hit) | <pre>function onTouched(hit) | ||
Line 35: | Line 38: | ||
b.maxForce = (500000000, 500000000, 500000000) | b.maxForce = (500000000, 500000000, 500000000) | ||
b.Parent = hit.Parent.Torso</pre> | b.Parent = hit.Parent.Torso</pre> | ||
So far, you'll fly to the point. But when will you drop? Thats a problem we have to fix. Let's try this: | |||
<pre>wait(3) | <pre>wait(3) | ||
b.Parent = nil</pre> | b.Parent = nil</pre> | ||
Now, after 3 seconds, the BodyPosition ceases to exist, and you will drop! Now we just have to clean up the functions, and actually connect it to the Touched property! | |||
<pre> end | <pre> end | ||
end | end | ||
Line 56: | Line 62: | ||
script.Parent.Touched:connect(onTouched)</pre> | script.Parent.Touched:connect(onTouched)</pre> | ||
If you want to change where the character flies to, then you can change the BodyPosition's position property. Also, something really fun is if you only wait(0.1) then the character goes flying! | If you want to change where the character flies to, then you can change the BodyPosition's position property. Also, something really fun is if you only wait(0.1) then the character goes flying! | ||
== See Also == | == See Also == | ||
[[BodyPosition]] | [[BodyPosition]] |
Revision as of 14:38, 24 September 2008
Introduction
In this tutorial, you should be in Roblox Studio.
Setup
First, make a small brick. I made mine 5x1x5. Next, select the brick you just made and click Insert->Object->Script. Now double-click the new script object.
Code
You should see the following:
print("Hello World!")
Delete that text, you won't need it.
First, add this code.
function onTouched(hit)
This will detect when something touches it.
local h = hit.Parent:findFirstChild("Humanoid") if h ~= nil then
This will detect whether what touched it was a human or not. You don't want a rocket or slingshot to activate it do you?
local b = Instance.new("BodyPosition")
Ok, this defines our Bodyposition. But right now it doesn't do anything, because it doesn't have a parent.
b.position = (500, 500, 500) b.maxForce = (500000000, 500000000, 500000000) b.Parent = hit.Parent.Torso
This will define some of BodyPosition's properties.
- BodyPosition's position property does this: When a BodyPosition has a parent, it will make the parent fly to the BodyPosition's position property. It's great for a lot of things, like teleporting without teleporting.
- maxForce property is how much force can be put on each axis of the parent brick. It also governs how far away the BodyPosition can be from it's position property before it will take a brick there.
- The Parent of the BodyPosition is what the BodyPosition will be moving, in this case, the character's torso.
So far we have this:
function onTouched(hit) local h = hit.Parent:findFirstChild("Humanoid") if h ~= nil then local b = Instance.new("BodyPosition") b.position = (500, 500, 500) b.maxForce = (500000000, 500000000, 500000000) b.Parent = hit.Parent.Torso
So far, you'll fly to the point. But when will you drop? Thats a problem we have to fix. Let's try this:
wait(3) b.Parent = nil
Now, after 3 seconds, the BodyPosition ceases to exist, and you will drop! Now we just have to clean up the functions, and actually connect it to the Touched property!
end end script.Parent.Touched:connect(onTouched)
There we go! those ends end the if statement and the function. Let's see the whole script.
function onTouched(hit) local h = hit.Parent:findFirstChild("Humanoid") if h ~= nil then local b = Instance.new("BodyPosition") b.position = (500, 500, 500) b.maxForce = (500000000, 500000000, 500000000) b.Parent = hit.Parent.Torso wait(3) b.Parent = nil end end script.Parent.Touched:connect(onTouched)
If you want to change where the character flies to, then you can change the BodyPosition's position property. Also, something really fun is if you only wait(0.1) then the character goes flying!