JavaFX游戏制作:对话框绘制

该博客介绍了如何在JavaFX游戏中实现对话框,包括人物头像、对话内容和背景贴图。通过TextAnimEntity类实现了文字逐字浮现的动画效果,使用延时计数器控制文字显示速度。同时,AnimDrawer类负责绘制对话框和动画,确保对话框显示在最上方。在主启动类中加载对话框内容并启动绘制。
摘要由CSDN通过智能技术生成

对话框是很多游戏都有的内容,当我们观察游戏的对话框,会发现其主要内容有:人物头像,对话内容以及对话框背景贴图,这篇文章就主要对对话框进行绘制。

对话框实体类

除了上面我们提到的主要内容以外,我们还需要模拟对话框中文字延时展示的效果,也就是每隔一段时间多显示几个字这样的效果。我们采用延时计数的形式进行实现,每当计数器到了某个值的时候才让字符串指针前进,并且当字符串指针已经到达字符串的尾部的时候,将不再前进。

@Data
@NoArgsConstructor
@AllArgsConstructor
// 文字动画类,主要实现的功能是一个字一个字浮现一段话
public class TextAnimEntity {

    // 这个属性是说话的人
    private String name;
    // 这个属性是说的话
    private String text;
    // 人物的头像
    private Image image;

    // 背景图片
    private Image bgImage;

    private int width = 100;
    private int height = 100;
    // 指针,指向下一个要显示的字
    private int textIdx;
    // 定义一个延时计数器,只有计数器到达一定值的时候才将指针前移
    private int clock;
    private int clock_max;

    // 是否完全显示标志位
    private boolean finish;

    public TextAnimEntity(String image, String bg_img,String name, String text){
        this.image = new Image(image, width, height, true, true);
        this.bgImage = new Image(bg_img);
        this.name = name;
        this.text = text;
        this.textIdx = 0;
        this.finish = false;
        this.clock = 0;
        this.clock_max = 5;
    }

    private String getsub(){
        if (textIdx == 0) {
            return "";
        }
        char[] c = new char[textId
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值