메타버스/Zep

[zep] zepscript 2차시 라이프 사이클, 메시지 출력하기, 스피드 조절하기, 타이틀 바꾸기, 랜덤 바꾸기, Math, let, jav

Olivia-BlackCherry 2023. 3. 29. 23:05

1.  라이프 사이클 

앱이 실행되어 종료될 때까지를 하나의 생애 주기(Lifecycle)라고 합니다.
Lifecycle 함수는 앱의 생애 주기를 관리해주는 함수입니다. 

1-1 앱이 실행될 때 : Enter 단계의 함수가 동작

// App이 최초로 시작될 때
App.onInit.Add(function(){
	// 이 시점에 App에는 플레이어들이 참가하지 않은 상태
    // App의 나머지 필요한 부분을 초기화시킨다.
});

// 플레이어가 들어올 때
App.onJoinPlayer.Add(function(player){
  // 해당하는 모든 플레이어가 이 이벤트를 통해 App에 입장
});

// 플레이어가 모두 입장한 뒤에 한번 호출
App.onStart.Add(function(){
  // App에서 원하는 플레이어 속성값을 부여할 수 있다.
});
 
 
 

1-2 앱이 실행 중 일 때 : Update 단계의 함수가 주기적으로 동작

// 매 20ms(0.02초) 마다 실행
App.onUpdate.Add(function(){
})

 

 

 1-3앱이 종료될 때 : Exit 단계의 함수가 동작

// 플레이어가 떠날 때
App.onLeavePlayer.Add(function(player){
  // 플레이어가 단순히 중간에 나갔을 때
  // App이 종료될 때에서 이 이벤트를 통해 모두 App에서 퇴장합니다.
})

// App이 종료될 때
App.onDestroy.Add(function(){
   // 이미 모든 플레이어가 App에서 나간 상태
   // App을 나머지를 정리한다.
})

 

 

2. 메시지 출력하기 

♣결과

♧코드

App.onJoinPlayer.Add(function(player){
    App.showCenterLabel("Hello world");
})

 

 

3. 스피드 조절하기

♣결과
https://www.awesomescreenshot.com/video/16042829?key=548775d94005ab5186a5fdca3021fe80

ZEP - zepscript

www.awesomescreenshot.com

♧코드
listen: 플레이어가 진입할 때
action: 플레이어의 스피드를 300으로 바꾼다.

App.onJoinPlayer.Add(function(player){
    player.moveSpeed = 300
    player.sendUpdated();
})

 
 

4. 캐릭터 타이틀 바꾸기 

♣결과

♧코드
listen: 플레이어가 진입할 때
action: 플레이어의 타이틀을 랜덤하게 바꿔준다.

App.onJoinPlayer.Add(function(player){
    player.title = "투자자"
    player.sendUpdated();
})

 
 

5. 캐릭터 타이틀 랜덤하게 바꾸기, let, Math

let

- let 명령문은 지역 변수를 선언하며, 선언과 동시에 임의의 값으로 초기화할 수 있다. 
let을 사용하면 블록 명령문이나, 표현식 내로 범위가 제한되는 변수를 선언한다. 
이것은 var 키워드와 다른 점이다.
- 변수 선언 후에 ; 를 붙인다.
 

Math 함수

-Math는 자바스크립트의 내장 함수이다.  Math는 수학적 요소와 관련된 속성과 메서드를 가지고 있다.
- 정적 속성 ex) Math.Pie = 3.14, Math.E = 2.718
- 정적 메서드 ex) Math.abs() 절대값 함수, Math.exp 지수 함수, Math.log() 로그 함수,
Math.random() 0~1 사이의 랜덤한 숫자,
Math.floor() 그 수가 갖은 가장 크거나 같은 정수  
 
 
♣결과

♧코드

App.onJoinPlayer.Add(function(player){
    let names = ["벤저민 그레이엄", "워렌버핏", "피터린치", "필립피셔", "애스워드 다모다란", "하워드 막스"];
    let random_number = Math.floor(Math.random() *names.length);
    player.title = names[random_number];
    player.sendUpdated();
})