어떻게 Reworld 에서 캐릭터 의 변위 도약 을 만 듭 니까?

기능 효과 전시
운행 환경
Win7,Win8,Win10
Reworld 버 전 체험 판
vc_redist. x64 운영 환경
제로 기초 독자 에 대한 보충
Reworld 대응 버 전 다운로드
Reworld 홈 페이지 링크: http://www.reworlder.com/
Reworld 창작 자의 집 포럼: http://bbs.reworlder.com
다운로드 후 설치 후 계 정 을 등록 하여 빈 지 도 를 엽 니 다.
다운로드 설치 vc_redist.x64.rar 실행 환경
redist.x64 다운로드 링크
사고 분석.
변위 가 있 는 도약 을 실현 하려 면 우 리 는 먼저 인물 의 대상 을 얻어 야 인물 의 좌표 와 방향 을 이동 할 수 있다.우 리 는 점프 하 는 UI 를 만 들 고 점프 오프셋 을 설정 하여 인물 이 점프 하 는 거 리 를 양 적 으로 만들어 야 한다. 그러면 변위 점프 효 과 를 실현 할 수 있다.
기능 구축
점프 UI 인터페이스 구축 과정 1. 인터페이스 초기 화 에 2D 용기 인터페이스 를 추가 하고 Jump 로 이름 을 바 꿉 니 다.기본 속성의 닻 점 과 너비 파 라 메 터 를 조정 하여 Jump 의 범 위 를 화면 에 가득 깔 고 투명 하 게 합 니 다.다음 그림 에서 보 듯 이 如何在Reworld里制作人物有位移的跳跃_第1张图片
2. Jump 에 세 개의 버튼 컨트롤 을 추가 합 니 다. 각각 JumpBtn, JumprightBtn, Jumpleft Bt 로 이름 을 바 꿉 니 다. 이 세 개의 단 추 는 방향 버튼 입 니 다. 우 리 는 그들의 위 치 를 화면의 세 구역 에 놓 고 투명 하 게 최소 화 합 니 다.다음 그림 에서 보 듯 이 如何在Reworld里制作人物有位移的跳跃_第2张图片
핵심 기능 구축 과정
클 라 이언 트 논리 구축 은 유저 초기 화, 유저 조작 스 크 립 트 아래 클 라 이언 트 스 크 립 트 를 만 듭 니 다.다음 그림 에서 보 듯 이 如何在Reworld里制作人物有位移的跳跃_第3张图片 클 라 이언 트 스 크 립 트 는 다음 과 같 습 니 다.
local JumpUI = GameUI.Jump
 
--   
GameUI.Jump.JumpBtn.OnClick:Connect(function()
    MessageEvent.FireServer("jump")
end)
 
--   
GameUI.Jump.JumpleftBtn.OnClick:Connect(function()
    MessageEvent.FireServer("jumpleft")
end)
 
--   
GameUI.Jump.JumprightBtn.OnClick:Connect(function()
    MessageEvent.FireServer("jumpright")
end)

서버 논리 구축
서버 논리 아래 서버 스 크 립 트 를 만 듭 니 다.다음 그림 에서 보 듯 이 如何在Reworld里制作人物有位移的跳跃_第4张图片 서버 스 크 립 트 는 다음 과 같 습 니 다.
local player                --  
local Yset = 0                --Y     
local Zset = 0                --Z   
local IsJump = false            --    
local IsJumpleft = false        --     
local IsJumpright = false       --     
local State = ""                --   
 
--         
Players.PlayerAdded:Connect(function(Uid)
    player = Players:GetPlayerByUserId(Uid)
end)
 
MessageEvent.ServerEventCallBack("jump"):Connect(function()
    IsJump = true
    State = tostring(player.Avatar:GetState())
end)
 
MessageEvent.ServerEventCallBack("jumpleft"):Connect(function()
    IsJumpleft = true
    State = tostring(player.Avatar:GetState())
end)
 
MessageEvent.ServerEventCallBack("jumpright"):Connect(function()
    IsJumpright = true
    State = tostring(player.Avatar:GetState())
end)
 
GameRun.Update:Connect(function()
    if IsJump then
        if IsJump and Zset <= 0.4 and Yset <= 0.4 and State == "Ground\_Stand" then
        Yset = Yset + 0.1
        Zset = Zset + 0.1
        player.Avatar.Position = Vector3.New(player.Avatar.Position.x,
        player.Avatar.Position.y + tonumber(string.format('%.2f',tostring(Yset))),
        player.Avatar.Position.z + tonumber(string.format('%.2f',tostring(Zset))))
        player.Avatar.Rotation = Vector3.New(0,0,0)
    else
        Zset = 0
        Yset = 0
        IsJump = false
    end
    end
    if IsJumpleft then
            if IsJumpleft and Zset <= 0.4 and Yset <= 0.4 and State == "Ground\_Stand" then
        Yset = Yset + 0.1
        Zset = Zset + 0.1
        player.Avatar.Position = Vector3.New(player.Avatar.Position.x
         - tonumber(string.format('%.2f',tostring(Zset))),player.Avatar.Position.y 
         + tonumber(string.format('%.2f',tostring(Yset))),player.Avatar.Position.z)
        player.Avatar.Rotation = Vector3.New(0,-90,0)
        else
        Zset = 0
            Yset = 0
        IsJumpleft = false
        end
    end
    if IsJumpright then
        if IsJumpright and Zset <= 0.4 and Yset <= 0.4 and State == "Ground\_Stand" then
        Yset = Yset + 0.1
        Zset = Zset + 0.1
        player.Avatar.Position = Vector3.New(player.Avatar.Position.x +
        tonumber(string.format('%.2f',tostring(Zset))),
        player.Avatar.Position.y + tonumber(string.format('%.2f',tostring(Yset))),
        player.Avatar.Position.z)
        player.Avatar.Rotation = Vector3.New(0,90,0)
        else
        Zset = 0
        Yset = 0
        IsJumpright = false
        end
    end
end)

보충 설명
1. 2D 용기 인터페이스 란 무엇 인가?
2D 용기 인 터 페 이 스 는 플레이어 화면 에 표시 되 는 2D UI 대상 의 주요 저장 대상 이다.UI 대상 을 편집기 에 표시 하려 면 용기 컨트롤 의 하위 단계 로 해 야 합 니 다.
게임 이 실 행 된 후 인터페이스 초기 화 에 저 장 된 인터페이스 는 유저 인터페이스 로 복사 되 며, 유저 인터페이스 아래 의 인터페이스 만 게임 에 표 시 됩 니 다.
2. 버튼 컨트롤 이란 무엇 입 니까?
단추 컨트롤 은 사용자 의 이벤트 에 응답 하 는 데 사 용 됩 니 다. 작업 을 시작 하거나 확인 하 는 데 사 용 됩 니 다.
3. 클 라 이언 트 스 크 립 트 가 무엇 입 니까?
클 라 이언 트 에서 만 실행 되 는 스 크 립 트, 실행 되 는 논리 와 표현 도 로 컬 클 라 이언 트 에서 만 표 시 됩 니 다.다음 몇 개의 파일 디 렉 터 리 에서 자동 으로 실행 할 수 있 습 니 다. 클 라 이언 트 스 크 립 트 는 작업 영역 에서 자동 으로 실행 되 지 않 습 니 다. 다음 대상 에 넣 어야 합 니 다. 
1.  클 라 이언 트 가 가장 먼저 불 러 오기  。 2.  작업 영역 중의 캐릭터 모델.플레이어 초기 화캐릭터 초기 화 스 크 립 트 은 실행 후 캐릭터 모델 아래로 자동 으로 이동 합 니 다.  3.  플레이어 리스트 중의 플레이어.플레이어 초기 화유저 스 크 립 트 초기 화, 실행 후 자동 으로 플레이어 아래로 이동  4.  플레이어유저 인터페이스.인터페이스 초기 화 의 스 크 립 트 는 실행 후 자동 으로 유저 인터페이스 로 이동 합 니 다. 
  • 유저 의 배낭, 예 를 들 어 공구. 안의.

  • 4. 서버 스 크 립 트 란 무엇 인가?
     서버 에서 만 실행 되 는 Lua 스 크 립 트 코드 는 서버 논 리 를 작성 하 는 데 사 용 됩 니 다.
    자, 이제 게임 을 시작 하 겠 습 니 다. 화면 중간 과 좌우 양쪽 을 클릭 하면 캐릭터 의 변위 점프 를 제어 할 수 있 습 니 다.만약 에 문제 가 있 거나 더 좋 은 실현 방식 이 있 으 면 아래 에서 적극적으로 교류 하고 토론 할 수 있 습 니 다. 저희 도 참여 하여 여러분 과 경험 을 공유 하고 여러분 과 함께 발전 할 수 있 기 를 바 랍 니 다 ~

    좋은 웹페이지 즐겨찾기