对话框是很多游戏都有的内容,当我们观察游戏的对话框,会发现其主要内容有:人物头像,对话内容以及对话框背景贴图,这篇文章就主要对对话框进行绘制。
对话框实体类
除了上面我们提到的主要内容以外,我们还需要模拟对话框中文字延时展示的效果,也就是每隔一段时间多显示几个字这样的效果。我们采用延时计数的形式进行实现,每当计数器到了某个值的时候才让字符串指针前进,并且当字符串指针已经到达字符串的尾部的时候,将不再前进。
@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