RMMV

플러그인 내 글자 줄바꿈 적용

by 초코동 posted Aug 01, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
종류 플러그인 사용

현재 Gameus' Quest System 를  이용하고 있습니다.


그런데 quest description 항목에서 엔터같은 줄바꿈이 적용 안되어 스페이스바를 이용하면 글씨의 장평이 쪼그라들게 보이게 되어 원하는 문장 형태로 볼 수 없는 상황입니다.


자바 스크립트를 전혀 할줄 모르는 상황에서 아래 코드가 의심되고 비슷한 코드 까지 찾아 줄바꿈을 적용해보려고 했지만,

도저히 하지 못해 이곳에 글을 남기게 되었습니다.


아래가 플러그인 코드 ------------------------------------------------------------------


Window_Base.prototype.sliceText = function(text, width) {

        var words = text.split(" ");

        if (words.length === 1)

            return words;

        var result = [];

        var current_text = words.shift();

        for (var i = 0; i < words.length; i += 1) {

            var word = words[i];

            var textW = this.contents.measureTextWidth(current_text + " " + word);

            if (textW > width) {

                result.push(current_text);

                current_text = word;

            } else {

                current_text += " " + word;

            }

            if (i >= words.length - 1)

                result.push(current_text)

        }

        return result

    }

 

 

 

제가 찾은 예시 코드 입니다.-----------------------------------------------------------------------------------------------------




function wrapText(context, text, x, y, maxWidth, lineHeight) {

    var words = text.split(' ');

    var line = '';


    for(var n = 0; n < words.length; n++) {

        var testLine = line + words[n] + ' ';

        var metrics = context.measureText(testLine);

        var testWidth = metrics.width;

        if (testWidth > maxWidth && n > 0) {

            context.fillText(line, x, y);

            line = words[n] + ' ';

            y += lineHeight;

        }

        else {

            line = testLine;

        }

    }

    context.fillText(line, x, y);

}



아래는 drawtext  아마 글자가 그림으로표현(?)되게 하는 코드 같고 ---------------------------------------------------



    var lines = this.sliceText(q.desc, this.contentsWidth());

        for (var i = 0; i < lines.length; i += 1) {

            this.questBitmap.drawText(lines[i], 0, this.lineY, this.contentsWidth(), this.lineHeight());

            this.write();

        }



q.desc 가 제가 exe 파일에서 입력한 글을 위에 slice에서 한번 넣어서 잘라온 값 같습니다