Criando botões sofisticados sem usar imagens (DOM) (Phaser3)

この記事は約3分で読めます。
スポンサーリンク

Coisas que eu quero fazer

No Phaser3, você pode registrar eventos de clique em um GameObject e usá-lo como um botão.

No entanto, com GameObjects, é difícil criar botões elaborados, a não ser usando imagens com formas simples como retângulos e círculos.

Aqui, usaremos o objeto DOM para criar um botão sofisticado.

スポンサーリンク

Como criar

O método para criar objetos DOM foi explicado no seguinte artigo.

Com base no artigo, criei a seguinte função.

export function createBtn(scene, x, y, text, font_size, color, callback){
    let el = document.createElement('div');
    el.innerHTML = text
    el.onclick =callback;
    let style = "font: ' + font_size + 'px Arial;color:' + color + ';border-color:' + color + ';border:solid; ";// you should add button style
    let btn = scene.add.dom(x, y, el, style); 

    return btn;
}

A variável `style` é usada para definir o estilo do botão.

Adicionei border-radius e user-select.

Em particular, é mais seguro definir `user-select` como `none`, porque, caso contrário , o texto interno poderá ser selecionado arrastando-o.

chamar

A função acima é chamada de dentro da classe Scene da seguinte forma:

let x = 100;
let y = 200;
let html = "BUT<i>TON</i>"
let font_size = 10;
let color  =  "#000000" ;
let func = () =>{alert()};
createRadiusBtn(this, x, y, html ,font_size , color ,func )

O HTML também pode conter outras tags, como mostrado no exemplo. Quebras de linha também podem ser criadas usando tags como
.

スポンサーリンク

Resultado

Consegui criar um botão elaborado sem usar nenhuma imagem.

O texto exibido é MASTONELADA.

コメント

タイトルとURLをコピーしました