美文网首页
GameObjects-Bitmaptext

GameObjects-Bitmaptext

作者: skoll | 来源:发表于2023-06-07 15:35 被阅读0次

    位图字体

    1 .https://www.bytetalking.com/bitmap-font-maker
    2 .就是把美术给的图,合成一张,并且做出映射。实际展示的时候,你输入1,就会显示美术给的1那张图
    3 .很多张图片,就是意味着有很多种字体。
    4 .还有就是英文就很好弄,但是中文就太多了,不过幸好游戏里面用到的可能不是那么多.

    Dynamic

    1 .this.add.dynamicBitmapText(200, 300, 'ice', 'tian xia', 128)
    2 .BitmapText 对象通过获取纹理文件和描述字体结构的 XML 或 JSON 文件来工作。
    3 .在渲染期间,文本的每个字母都被渲染到显示器上,按比例间隔开并对齐以匹配字体结构。
    4 .动态位图文本对象与静态位图文本的不同之处在于,它们为渲染过程中渲染的每个字母调用回调。此回调允许您操纵正在呈现的每个字母的属性,例如其位置、比例或色调,从而允许您创建有趣的效果,例如抖动文本,这是静态文本无法做到的。这意味着动态文本需要更多的处理时间,所以只有在您需要它们具有的回调能力时才使用它们。
    5 .BitmapText 对象不如 Text 对象灵活,因为它们具有较少的功能,例如阴影、填充和使用 Web 字体的能力,但是您可以用这种灵活性来换取渲染速度。您还可以通过在图像编辑器中处理字体纹理、应用填充和任何其他所需的效果来创建视觉上引人注目的 BitmapText
    6 .要创建多行文本,请在文本字符串中插入 \r、\n 或 \r\n 转义码。
    7 .xml to json https://codebeautify.org/xmltojson
    8 .生成位图字体 https://www.71squared.com/en/glyphdesigner

    1686142540719.png
    9 .每一个都是不停的刷新,可以改这个里面的关于数字的属性
    1 . 数字上下浮动,上下按照cos移动,左右在x的 +-2 之间移动,颜色在一堆数组里面循环
    const text1=this.add.dynamicBitmapText(32,100,'desyrel','HELLO WORLD',100)
    text1.setDisplayCallback(this.text1Call)
    
    text1Call(data){
        rainbowWave+=0.01
        data.color=rainbowColor[parseInt(rainbowWave*100+data.index)%rainbowColor.length]
        data.y=Math.cos(rainbowWave+data.index)*10
        data.x=Phaser.Math.Between(data.x-2,data.x+2)
        return data
      }
    

    2 .动画的思路就是tween来决定动画的值,然后textCall回调函数拿到最新的值渲染
    3 .tween动画,textcallback可以同时存在,一起对字体进行动画操作

    var text = this.add.dynamicBitmapText(60, 200, 'desyrel', 'HELLO WORLD!', 64);
    
            text.setDisplayCallback(this.textCallback);
    
            this.tweens.add({
                targets: text,
                duration: 2000,
                delay: 2000,
                scaleX: 2,
                scaleY: 2,
                ease: 'Sine.easeInOut',
                repeat: -1,
                yoyo: true
            });
    

    Retro Font

    1 .Retro Font 类似于 BitmapFont,因为它使用纹理来呈现文本。然而,与 BitmapFont 不同的是,RetroFont 中的每个字符。都是相同的大小。这使得它类似于精灵表。您通常会从旧的 8/16 位游戏和演示中找到这样的字体表


    knight3.png

    2 .图片资源必须按照chars定义的方式排列,这样使用很局限。

    var config = {
                image: 'knighthawks',
                width: 31,
                height: 25,
                chars: Phaser.GameObjects.RetroFont.TEXT_SET6,
                charsPerRow: 10,
                spacing: { x: 1, y: 1 }
            };
    
            this.cache.bitmapFont.add('knighthawks', Phaser.GameObjects.RetroFont.Parse(this, config));
    

    3 .加载这个字体,并使用动态渲染文字方式

    const config = {
                image: 'knighthawks',
                width: 31,
                height: 25,
                chars: Phaser.GameObjects.RetroFont.TEXT_SET6,
                charsPerRow: 10,
                spacing: { x: 1, y: 1 }
            };
    
            this.cache.bitmapFont.add('knighthawks', Phaser.GameObjects.RetroFont.Parse(this, config));
    
            this.dynamic = this.add.dynamicBitmapText(0, 100, 'knighthawks', 'PHASER 3 IS IN THE HOUSE');
    

    bitmapText

    1 .BitmapText 对象通过获取纹理文件和描述字体结构的 XML 或 JSON 文件来工作。
    2 .在渲染期间,文本的每个字母都被渲染到显示器上,按比例间隔开并对齐以匹配字体结构。
    3 .BitmapText 对象不如 Text 对象灵活,因为它们具有较少的功能,例如阴影、填充和使用 Web 字体的能力,但是您可以用这种灵活性来换取渲染速度。您还可以通过在图像编辑器中处理字体纹理、应用填充和任何其他所需的效果来创建视觉上引人注目的 BitmapText。
    4 .要创建多行文本,请在文本字符串中插入 \r、\n 或 \r\n 转义码

    相关文章

      网友评论

          本文标题:GameObjects-Bitmaptext

          本文链接:https://www.haomeiwen.com/subject/cojgedtx.html