너는 네가 먹었던 빵의 장수를 기억하니?(local 변수 및 State)

개시하다


이 글은 VCI Advent Calendar 2019 23일째 되는 글이다.
VCD에서 local의 변수와 STATE의 초보적인 내용에 관한 글입니다.
따라서 다른 부분의 설명은 생략했다.
(결국'이제까지'라는 부분을 채우지 못해 일부 제목 사기가 있었다.)

너는 이전에 먹었던 빵의 개수를 기억하니?


나는 이 말을 누구나 다 들은 적이 있다고 생각한다.
그런데 이렇게 말할 때 바로 대답해 주시겠어요?
대답하지 못하면 이를 악물고 화를 참아야 한다.
이런 생각을 하지 않도록 VCD를 이용해 먹는 빵의 수를 기억하는 절차를 소개한다.

내가 먹은 빵의 수를 아직 기억하지 못했어(level 1)


우선 기본 상태.

보시다시피 빵만 먹을 뿐입니다.
나는 내가 얼마나 먹었는지 전혀 모른다.
여기서부터는 빵을 잘 관리할 수 있도록 레벨을 올려보자

예전에 먹었던 빵의 개수를 기억하고 있다(level 2)


먹은 장수를 기억하기 위해 먹은 장수를 추가로 계산해 처리한다.
--"Slice N":8枚切りのパンの名前。Nは1~8のいずれか
local count = 0
function onCollisionEnter(item, hit)
  if string.find( item , "Slice" ) and hit == "Counter" then --口元にある見えないオブジェクトにあたったらカウント
    count = count + 1
    vci.assets._ALL_SetText("CounterText", count)
    ---[パンを非表示にする処理(省略)]---
end
카운트라는 변수로 먹은 장수를 기억해라. 카운터텍스로 먹은 장수를 의미한다.

이렇게 지금까지 먹었던 빵의 수를 기억해 두었다.

너는 그 녀석이 먹었던 빵의 개수를 기억하고 있다(level3)


level 2에서 로컬 변수를 사용하면 자신이 먹은 장수를 셀 수 있습니다.
하지만 사실 멈출 수 없는 일로 잘린 적도 있고, 타인의 몸을 빼앗은 적도 있다고 생각해요.
이 경우 몸이 바뀌기 때문에 상대방이 먹은 장수를 이어받아 기억해야 한다.
그러나 level2의 상태에서 다음과 같이 신체(계수기)를 빼앗아도 가치를 계승할 수 없다.

사용자마다count의 값이 있습니다
상대방이 먹은 장수는 자신이 먹은 장수로 덮이기 때문이다.
(위의 예에서 왼쪽의 빨간 아이가 11개를 먹었기 때문에 카운트는 11개, 오른쪽의 빨간 아이가 하나도 먹지 않은 카운트는 0의 상태, 0+1은 1을 나타낸다)
이 문제를 해결하기 위해 다른 사람과 공동으로 변수를 가진state 기능을 사용했다.
state에서 값을 설정하고 Get에서 값을 가져올 수 있습니다.
다음은 상기 기능을 사용하여 변수를 공유하는 코드입니다.

if vci.assets.IsMine then
  vci.state.Set("eatCount",0)
end

--"Slice N":8枚切りのパンの名前。Nは1~8のいずれか
local count = 0
function onCollisionEnter(item, hit)
  if string.find( item , "Slice" ) and hit == "Counter" then
    local count = vci.state.Get("eatCount") + 1
    vci.state.Set("eatCount",count)
    vci.assets._ALL_SetText("CounterText 1", count)
    ---[パンを非表示にする処理(省略)]---
  end
end
(주의해야 할 것은'vci.state.Set('eatCount', 0)'의 부분은 vci이다.assets.아이스민을 이용해서 자기만 움직여야 돼요.
그렇지 않으면 돌출자가 올 때마다 초기화 스크립트가 실행되고 값이 0으로 돌아갑니다.)
이 코드를 통해 지금까지 먹은 빵의 수를 순조롭게 계승할 수 있다

어때요?


이번에는 빵을 세면서 VCC의 로컬 변수와state의 차이를 소개했다.
실제로 이번에 소개한 방법에는 VCD에서 시작해 삭제될 때까지 장수만 계산돼 있어 엄밀히 말해 먹은 빵의 장수를 기억하지 못한다.(제목 사기)
VCD에 변수 등을 저장하는 방법이 추가되면 먹은 빵의 양도 셀 수 있겠죠.
그때 다 같이 빵의 장수를 외우러 가자!
Let's enjoy Remember pan!٩( 'ω' )و

좋은 웹페이지 즐겨찾기