?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요... 모르는게 있어 질문드립니다....

 

 

 

 

기본 변수 메소드 - $gameVariables.setValue(value,n)

셀프 변수 플러그인 - this.get_self_variable(name,n)

 

 

 

 

질문드리는 식은 아래 초록색 식입니다.

 

for (var i = 0; i < 100; i++) {

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i))

}

 

 

 

 

이렇게 썻는데 실행하면 작동은 되는데 게임상에서는

 

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 1))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 2))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 3))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 99))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 100))

 

이렇게 표시나요?

 

 

 

 

 

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 1~100))

아니면, 빨간색갈 부분의 숫자만 바뀌나요 ..................?

 

 

 

 

-----------------------------------------------------

 

 

 

 

 

$gameVariables.setValue(146, 이곳에)

 

위의 식의 '이곳에'라는 곳에 아래의 식을 다 더해서 넣어주고 싶습니다...

물론, 노가다로 1부터 100까지 직접 작성하는 방법이 있지만,

for문이나 어떠한 요약식으로 요약하여 1~100을 쉽게 더하는 방법이 있는지 질문드립니다... ㅠㅠ

 

this.get_self_variable("병렬처리대상", 1)

this.get_self_variable("병렬처리대상", 2)

this.get_self_variable("병렬처리대상", 3)

.

.

.

this.get_self_variable("병렬처리대상", 99)

this.get_self_variable("병렬처리대상", 100)

 

어떻게 써야 1~100까지 위의 문장을 반복해서 더해줄 수가 있을까요?

 

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 1) + .................... + this.get_self_variable("병렬처리대상", 100))

 

이런 느낌입니다...

 

도와주세요 ㅠㅠ

?
  • profile
    lklslel 2016.12.17 11:12
    흐음... 진부한 설명은 컴퓨터나 하드웨어 관련 학과의

    자료구조나 알고리즘에 대해서 이야기를 해야하겠지만요...

    그런 말을 하면 괜시리 머리만 아파오는 것이 알반적이니

    알기 쉽게 말을 풀어서 설명해드리겠습니다.

    모든 loop(반복)구문들은 { }(대괄호 : 구문의 처음과 끝을 구분짓는 기호)을

    기준으로 한 번씩 반복을 합니다.



    for (var i = 0; i < 100; i++) {

    $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i))

    }



    직접 작성하신 부분을 예로 들자면

    실행 순서는 다음과 같이 됩니다.

    (그냥 적힌 문자열의 순서대로 설명해드립니다.)


    1. 실행할 구문 : for

    -> 실행할 구문에 따라 실행하는
    방식이 다르므로 반드시 읽습니다.


    2. 현재값 : i = 0~99

    -> (초기값 0, ++연산으로 }이후에 1만큼 증가)


    3. 실행 임계 조건 : i < 100

    ->i 가 100보다 작을 때 실행됩니다.
    i 가 100이 되면 for(){} 의 구문의 실행은 하지 않습니다.


    4. 변수 값 조정부분 : i++ (after increase)

    -> for(){}가 한번 실행되고 나서 마지막으로 실행됩니다.


    5. 구문 내부 읽기 시작 : {

    -> { 괄호의 시작기호 - ( / [ / { - 를 만나면

    어떤 구문이라도 안에 있는 내용을 우선시합니다.


    6. 구문 내부 실행부분 : $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i));


    7. 구문 내부 읽기 종료 : }



    실상적인 구문의 실행은 다음과 같습니다.



    for문이 처음 실행될 때


    for (0; 0 < 100; 0++) {

    $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 0))

    }


    ....



    for문이 100번째 실행될 때


    for (99; 99 < 100; 99++) {

    $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 99))

    }



    for문이 종료될 때


    for (100; 100 < 100; )


    조건부분의 값이 false를 나타내기 때문에

    이후의 처리는 공백상태의 초기 형태를

    실행하는 구조로 마무리 됩니다.


    어셈블리어로 살펴보면 jump(해당 메모리 주소로 즉각이동명령어) 관련 명령어들이

    없고 다음으로 진행하도록 변경됩니다.



    ※ 어셈블리어란 기계어(0,1로 이루어진 원시언어)보다

    최소 한 단계 높은 원시언어로 메모리 영역에서

    실제적인 데이터의 처리를 하는데 쓰여집니다.


    ※ 모든 프로그래밍 언어는 해당 언어에서 어셈블리어로,

    어셈블리어에서 기계어로 변환되어서 실행됩니다.



    실행에 대한 설명은 이정도로 마무리 짓겠습니다.
  • profile
    lklslel 2016.12.17 15:09

    프로그래밍 언어마다 구문을 구분하는 괄호가

    없는 경우도 있다는 점은 참고하시기 바랍니다.


    몽롱하다님께서 말씀하신 부분은 속도적인 측면에서

    직관적인 부분을 콕 집어내셨다고 할 수 있습니다.


    for문을 일일이 실행하면서 1개의 값을

    더하는 과정은 속도 저하로 이루어집니다.


    몽롱하다님께서 쓰시려는 플러그인이 HIME_SelfVariables.js

    인듯해서 스크립트를 받아서 쓰시려는 부분에 대해서 찾아보았습니다.

    this.set_self_variable(NAME, VALUE, EVENT_ID)
    this.get_self_variable(NAME, EVENTID)

    쓰시는 부분이 eventID에 저장된 변수의

    값을 더하는 부분인 듯하여 더 필요한

    정보를 정리를 해보았습니다.



    get / set_self_variable 함수는

    각종 Interpreter 객체
    Game_Player 객체
    Game_Follower 객체
    Game_Vehicle 객체
    Game_Event 객체

    의 인스턴스에서만 사용하실 수

    있다는 점을 잊으시면 안됩니다.



    다음은 사용하는 것이 가능한

    변수들의 모음입니다.



    $gamePlayer



    $gamePlayer._followers._data[팔로워인덱스]

    팔로워인덱스

    팔로워중에 데이터를 처리할 팔로워의 인덱스번호



    $gameMap._vehicles[차량타입]

    차량타입

    0 = 보트
    1 = 배
    2 = 비행선



    $gameMap._interpreter



    $gameMap._events[이벤트Id]

    이벤트Id

    맵에서 발생하는 각종 이벤트의 Id



    위에 제가 정리해드린 부분과 각종 interpreter관련

    변수들에서는 사용하실 수 있지만 이외에는 불가합니다.

    현재 당장 생각하셔야 할 점은 다음과 같습니다.

    1. 값을 찾기 원하는 변수명

    2. 찾기 시작하는 변수의 인덱스 번호

    3. 마지막으로 찾을 변수의 인덱스 번호

    4. 원하는 기능을 구현하는 방법



    을 생각하시고 나서 즉각적으로 쓰려고 하면

    다음과 같이 작성하는 것이 제일 단순할 겁니다.

    .setValue(146, this.get_self_variable("병렬처리대상", 1) + .................... + this.get_self_variable("병렬처리대상", 100))



    이처럼 작성하실 수도 있지만 좀 더 간편하게

    사용할 함수로 만들어보도록 하겠습니다.



    function range_sum(object , variable_name , start_index , last_index){
    var i, j, k, l,reg;
    switch(true){
    case (start_index != NaN && typeof start_index === "number" && last_index != NaN && typeof last_index != "number"):
    //시작 인덱스 데이터가 숫자이고
    //끝 인덱스 데이터가 숫자가 아니면
    //끝 인덱스 데이터는 시작 인덱스 데이터와 같도록 설정합니다.
    last_index = start_index;
    break;
    case (start_index != NaN && typeof start_index != "number" && last_index != NaN && typeof last_index != "number"):
    //시작 인덱스와 끝 인덱스가 숫자가 아니면
    //에러문을 찍어주고 강제로 종료합니다.
    throw new Error('range_sum\'s\nparameter is incorrect.');
    return false;
    }
    //j 는 합을 저장할 임시 변수입니다.
    j = 0;
    //k 는 단위 처리 갯수 변수입니다.
    k = 10;
    //l 은 전체 갯수를 k로 나누었을 때 발생한 나머지 값 변수입니다.
    l = (last_index - start_index) % k;
    switch(true){
    case (last_index >= start_index):
    //끝 인덱스가 시작 인덱스보다 클 때
    for(i = start_index;i < (last_index - l) + 1;i += k){
    j += object.get_self_variable(variable_name,i) + object.get_self_variable(variable_name,i + 1) + object.get_self_variable(variable_name,i + 2) + object.get_self_variable(variable_name,i + 3) + object.get_self_variable(variable_name,i + 4) + object.get_self_variable(variable_name,i + 5) + object.get_self_variable(variable_name,i + 6) + object.get_self_variable(variable_name,i + 7) + object.get_self_variable(variable_name,i + 8) + object.get_self_variable(variable_name,i + 9);
    }
    for(;i < last_index;i++){
    j += object.get_self_variable(variable_name,i);
    }
    break;
    case (last_index < start_index):
    //끝 인덱스가 시작 인덱스보다 작을 때
    for(i = last_index;i > (start_index + l) - 1;i -= k){
    j += object.get_self_variable(variable_name,i) + object.get_self_variable(variable_name,i - 1) + object.get_self_variable(variable_name,i - 2) + object.get_self_variable(variable_name,i - 3) + object.get_self_variable(variable_name,i - 4) + object.get_self_variable(variable_name,i - 5) + object.get_self_variable(variable_name,i - 6) + object.get_self_variable(variable_name,i - 7) + object.get_self_variable(variable_name,i - 8) + object.get_self_variable(variable_name,i - 9);
    }
    for(;i > start_index - 1;i--){
    j += object.get_self_variable(variable_name,i);
    }
    break;
    }
    return j;
    };



    사용방법의 예는 다음과 같습니다.

    $gameVariables.setValue(146,range_sum($gamePlayer,"병렬처리대상",1,100));

     

    ※ $gamePlayer 는 다른 변수로 대체될 수 있습니다. ※




    range_sum함수는 HIME_SelfVariables.js에

    추가하시기 보다는 작성한 함수를 등록하는

    플러그인을 하나 만드시면 되겠습니다.


    그렇게까지는 못하시겠다면 다른 플러그인의

    주석 부분 바로 뒤쪽에 붙여넣기 하시면 됩니다.


    HIME_SelfVariables.js를 예로 들자면


    Which will return true or false depending on what the value of the variable is.

    -------------------------------------------------------------------------------
    */

    //바로 여기에

    var Imported = Imported || {} ;
    var TH = TH || {};


List of Articles
번호 제목 글쓴이 날짜 조회 수
8668 [RMMV] 안드로이드용 apk로 빌드하니 Fail to load : img~ 에러가 발생합니다. 8 MVMAKER 2017.04.17 2574
8667 [네코노벨] 선택지 질문 JkzmN 2017.04.16 528
8666 RPGMAKER의 전문가분을 찾고 싶은 심정이네요. 13 정술 2017.04.13 1793
8665 [RMMV] 특정 스위치나 변수값 변동시 다른 이벤트도 동시에 영향주기? 2 file MVMAKER 2017.04.06 692
8664 RPGVXACE는 광고삽입을 할 수 없나요? 2 흔들린콜라 2017.04.05 747
8663 RPG Maker mv 이상한 검은창 dlwndud9 2017.04.03 461
8662 스팀 MV 작동이 중지되었습니다 오류 2 액티팹 2017.04.03 901
8661 [RMMV] 말풍선이 쭉 떠있게 할 순 없을까요? 4 MVMAKER 2017.04.03 774
8660 한가지 질문이 있는데 말이에요 1 MV초보자 2017.04.02 738
8659 안녕하세요! 게임회사 포트폴리오 제작을위해서 알만툴로 게임을 제작중인 학생입니다. 1 헤르모드 2017.03.30 894
8658 [RMMV] MV에서 특정 장비를 장착하고 있을때의 이벤트는 어떻게 구현하죠? 2 허공의경계식 2017.03.30 727
8657 퀘스트 마커와 퀘스트 목록 구현은 어떻게 하는게 좋을까요? 4 MVMAKER 2017.03.30 887
8656 현재 저는 게임 출시 직전 치명적인 버그에 걸렸습니다.좀 도와주세요. 5 file RPG란무엇인가? 2017.03.29 802
8655 [RMVX] 액알 - 플레이어가 레벨업 했을 때만 모두회복되는 방법?? 히토리로랑 2017.03.25 453
8654 존경하는 행님들 Dkdjdos 2017.03.22 294
8653 네코 Rpgxp에 게임을 다운 받아도 게임이 나타나지 않습니다. 1 쿠크다 2017.03.21 733
8652 게임에지장이있어서물어봅니다. 반짝반짝작은별 2017.03.20 276
8651 Rpg maker mv java에대해서 질문드립니다. 1 길가메스 2017.03.17 896
8650 인텔 xdk 써보려고하는데.. 1 file 쭌잉 2017.03.16 332
8649 [VX] 액알 - 일정 변수 초과&다수 몹리젠이 안되는 오류 2 file 히토리로랑 2017.03.16 683
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 442 Next
/ 442






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)