728x90
둘째 아이가 만들고 싶어한 맵이 '길건너 친구들'처럼 이동하는 물체를 딛고 건너가는 형식의 점프맵이었습니다.
이동하는 물체는 스크립트로 위치를 조정해주면 쉽게 되는데, 그 위에 탈 수 있게 하는 것은 조금 더 복잡하더라구요.
CFrame이 핵심이었던 것 같기도 하고~~~
길 건너 친구들처럼 공중에서 떨어지지 않고 건너가는 맵을 만들 때 사용 할 수 있는 모듈을 만들어 봤어요.
여러가지 방식이 있는 것 같은데, 참고 한 방식은 두 개의 파트 사이에서 충돌하면 방향을 변경 해 주는 방식입니다.
두 개의 파트가 있어야 한다는 제약이 있지만, 달리 말하면 두 개의 파트 위치를 조정하면 직관적으로 수정이 용이하죠.
코드는 아래와 같습니다. 아직 초보라서 좀 이해 안되는 부분이 있긴한데, 언제고 이해 될 날이 오겠죵~
local SPEED = 10;
local start = script.Parent:WaitForChild("start");
local finish= script.Parent:WaitForChild("finish");
local attach0 = Instance.new("Attachment");
attach0.CFrame = CFrame.new();
attach0.Parent = script.Parent;
local attach1 = Instance.new("Attachment");
attach1.CFrame = finish.CFrame;
attach1.Parent = game.Workspace.Terrain;
local pris = Instance.new("PrismaticConstraint");
pris.ActuatorType = Enum.ActuatorType.Motor;
pris.MotorMaxForce = math.huge;
pris.Attachment0 = attach1;
pris.Attachment1 = attach0;
pris.Parent = script.Parent;
local foward = true;
pris.Velocity = SPEED;
attach1.CFrame = finish.CFrame
start.Touched:Connect(function(hit)
if (hit == script.Parent and not foward)then
foward = true;
pris.Velocity = SPEED;
attach1.CFrame = finish.CFrame
end
end)
finish.Touched:Connect(function(hit)
if (hit == script.Parent and foward)then
foward = false;
pris.Velocity = -SPEED;
attach1.CFrame = start.CFrame
end
end)
아래와 같이 올라타서 움직일 수 있으며, 중간에 끼면 의도하지 않은 몸개그도.....
저장소 : github.com/red112/roblox/tree/main/0001_movingobj
참고자료 : youtu.be/PK4Ed6hm4Io
728x90
반응형
'공허의 유산 > 표현의 자유' 카테고리의 다른 글
[opengl].[#2.GLSL] 03. Shader, 이걸 누가 설명 해 줬더라면... (0) | 2023.01.05 |
---|---|
[아빠의 Roblox 숙제]#2. 물체를 밀어서 이동시키기(1) (0) | 2021.01.30 |
[opengl].[#2.GLSL] 02. Shader 사용 기반 코드 작성 (0) | 2020.08.09 |
[opengl].[#2.GLSL] 01. OpenGL 1.1 기반의 랜더링 (0) | 2020.08.09 |
[opengl].[#1.Setup] Windows/VS2019/glut 기반의 셋업(3) - glew로 shader 사용 환경 구축 (0) | 2020.08.08 |
댓글