Seekord tekitame automaatselt avanevad uksed.
Selleks lisame uue mudeli, mis koosneb:
- kahest uksest (nimedega Uks1 ja Uks2)
- kahest andurist (nimedega Andur1 ja Andur2)
- koodist
Esmalt lisame vajalikud objektid:
- Explorer aknas vajutada hiire parema klahviga objektile Workspace
- Insert Object
- avanevast menüüst valida Model
- hiire parema klahviga vajutada objektile Model
- Insert Object
- avanevast menüüst valida Part (sellest osast saab üks uksepool)
- muuta ukse kõrgust, laiust, pikkust
- nimetada objekt Part ümber
- hiire parema klahviga vajutada objektile Part
- Rename
- uueks nimeks panna Uks1
- hiire parema klahviga vajutada objektile Uks1
- Duplicate
- Model alla tekib uus objekt, samuti Uks1
- nihutada see esimese Uks1 kõrvale (et esimene Uks1 ja teine Uks1 oleksid teineteise kõrval)
- hiire parema klahviga vajutada objektile Part
- nimetada lisandunud objekt ümber
- hiire parema klahviga vajutada lisandunud objektile Uks1
- Rename
- uueks nimeks panna Uks2
- hiire parema klahviga vajutada objektile Uks2
- Duplicate
- Model alla tekib uus objekt, nimega Uks2
- nihutada see Uks 2 ette – selliselt, et Uks 1 ja esialgne Uks2 jääks – lisatud pildil on kõige 3 detaili välja toodud, kõige kaugemal on Uks1, selle kõrval Uks2 ja Uks2 ees uus Uks2):
- muuta lisandunud Uks2 nii laiaks, et ta kataks nii Uks1 kui ka esialgse Uks2
- hiire parema klahviga vajutada lisandunud objektile Uks1
- nimetada lisandunud objekt ümber
- hiire parema klahviga vajutada lisandunud objektile Uks2
- Rename
- uueks nimeks panna Andur1
- hiire parema klahviga vajutada objektile Andur1
- Duplicate
- Model alla tekib uus objekt, nimega Andur1
- nihutada see teiselepoole objekte Uks1 ja Uks2 – et objektid Uks1 ja Uks2 oleksid Andur1 ja lisandunud Andur1 vahel
- hiire parema klahviga vajutada lisandunud objektile Uks2
- nimetada lisandunud objekt ümber
- hiire parema klahviga vajutada lisandunud objektile Andur1
- Rename
- uueks nimeks panna Andur2
- hiire parema klahviga vajutada lisandunud objektile Andur1
- muuta objektid Andur1 ja Andur2 läbipaistvaks:
- valida vastavalt kas Andur1 või Andur2
- Properties -> Transparency -> 1
- hiire parema klahviga vajutada objektile Model
- Insert Object
- avanevast menüüst valida Script
- hiire parema klahviga vajutada objektile Model
Ja nüüd ongi aeg asuda koodi kirjutamise juurde.
Kõigepealt deklareerime muutujad:
local TweenService=game:GetService("TweenService")
local uks1=script.Parent:WaitForChild("Uks1")
local uks2=script.Parent:WaitForChild("Uks2")
local tweeningInformation = TweenInfo.new(
0.5, --avanemise aeg
Enum.EasingStyle.Linear, --animatsiooni liik
Enum.EasingDirection.Out,--suund
0, --korduste arv
false, --kas korratakse
0 --korduste vaheline aeg
)
local TweenService=game:GetService(“TweenService”) – kasutame animatsiooniteenust
local uks1=script.Parent:WaitForChild(“Uks1”) – määratleme, et muutuja uks1 on seotud objektiga Uks1 (analoogselt on muutuja uks2 seotud objektiga Uks2)
local tweeningInformation = TweenInfo.new( – animatsiooniga seotud info (sulgude sees, märkide — järel (– märke kasutatakse kommentaaride jaoks) on iga rea kohta kirjas, mida vastav väärtus tähendab)
local uks1=script.Parent:WaitForChild(“Uks1”) – määratleme, et muutuja uks1 on seotud objektiga Uks1 (analoogselt on muutuja uks2 seotud objektiga Uks2)
local tweeningInformation = TweenInfo.new( – animatsiooniga seotud info (sulgude sees, märkide — järel (– märke kasutatakse kommentaaride jaoks) on iga rea kohta kirjas, mida vastav väärtus tähendab)
Seejärel määratleme uste suletud ja avatud asendi asukohad:
local uks1Suletud={CFrame = CFrame.new(60, 2.5, -2)}
local uks2Suletud={CFrame=CFrame.new(60, 2.5, 3)}
local uks1Avatud={CFrame = CFrame.new(60, 2.5, -7)}
local uks2Avatud={CFrame = CFrame.new(60, 2.5, 8)}
local uks1Suletud={CFrame = CFrame.new(60, 2.5, -2)} – objekti Uks1 suletud asendis – aktiveerida Explorer aknas objekt Uks1, sealt valida Properties->Position – minul nt on seal väärtuseks (60, 2.5, -2) ja kopeerida need väärtused CFrame.new(60, 2.5, -2)
local uks1Avatud={CFrame = CFrame.new(60, 2.5, -7)} – objekt Uks1 avatud asendis – aktiveerida Explorer aknas objekt Uks1, nihutada Uks1 mänguväljal soovitud kaugusele esialgsest asendist ja seejärel valida Properties -> Position – minu nt (60, 2.5, -7) ja kopeerida need väärtused CFrame.new(60, 2.5, -7)
local uks1Avatud={CFrame = CFrame.new(60, 2.5, -7)} – objekt Uks1 avatud asendis – aktiveerida Explorer aknas objekt Uks1, nihutada Uks1 mänguväljal soovitud kaugusele esialgsest asendist ja seejärel valida Properties -> Position – minu nt (60, 2.5, -7) ja kopeerida need väärtused CFrame.new(60, 2.5, -7)
Samamoodi toimida ka objektiga Uks2.
Seejärel määratleme, millist animatsiooni millisest asendist millal teostatakse:
local tween1Avatud=TweenService:Create(uks1,tweeningInformation,uks1Avatud)
local tween2Avatud=TweenService:Create(uks2,tweeningInformation,uks2Avatud)
local tween1Suletud=TweenService:Create(uks1,tweeningInformation,uks1Suletud)
local tween2Suletud=TweenService:Create(uks2,tweeningInformation,uks2Suletud)
local tween1Avatud – objekti Uks1 avamine
TweenService:Create(uks1,tweeningInformation,uks1Avatud) – kasutame muutujat uks1, et etteantud animatsiooni tweeningInformation järgi liigutada see asukohta uks1Avatud
TweenService:Create(uks1,tweeningInformation,uks1Avatud) – kasutame muutujat uks1, et etteantud animatsiooni tweeningInformation järgi liigutada see asukohta uks1Avatud
Samamoodi toimub see ka objekti Uks1 sulgemise, objekti Uks2 avamise ja sulgemisega.
Ja lõpetuseks uste automaatne avanemine, milleks kasutatakse objekte Andur1 ja Andur2 ja nendega kokkupuutumist:
--kui puututakse kokku Andur1'ga
script.Parent.Andur1.Touched:Connect(function(hit)
--uksed liiguvad suletud asendist avatud asendisse
tween1Avatud:Play()
tween2Avatud:Play()
wait(2) --aeg, kui kaua uksed on avatud
--uksed liiguvad avatud asendist suletud asendisse
tween1Suletud:Play()
tween2Suletud:Play()
end)
–kui puututakse kokku Andur2’ga
script.Parent.Andur2.Touched:Connect(function(hit)
tween1Avatud:Play()
tween2Avatud:Play()
wait(2)
tween1Suletud:Play()
tween2Suletud:Play()
end)
script.Parent – viidatakse koodist üks aste ülevalpool olevale objektile – antud juhul siis objektile Model, et pääseda ligi objektile Andur1, mis on samuti objekti Model all
Andur1.Touched – kui puututakse kokku objektiga Andur1
tween1Avatud:Play() – mängitakse animatsiooni tween1Avatud (analoogselt ka teisi animatsioone)
wait(2) – oodatakse 2 sekundit
Andur1.Touched – kui puututakse kokku objektiga Andur1
tween1Avatud:Play() – mängitakse animatsiooni tween1Avatud (analoogselt ka teisi animatsioone)
wait(2) – oodatakse 2 sekundit
Pärast vajalikke muudatusi salvesta muudatused, valides kas:
- salvestamise faili (projekt on siis ainult kohalikus arvutis) File -> Save to File või
- Roblox’i keskkonda (projekt on kättesaadav Roblox’i keskkonnast) File -> Save to Roblox
Las need uksed olla uksed suveseiklustesse!