千家信息网

如何使用Java实现控制台字符动画的小程序

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"如何使用Java实现控制台字符动画的小程序"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用Java实现控制台字符动画的小程序"文章能帮
千家信息网最后更新 2025年01月18日如何使用Java实现控制台字符动画的小程序

这篇文章主要介绍"如何使用Java实现控制台字符动画的小程序"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用Java实现控制台字符动画的小程序"文章能帮助大家解决问题。

代码呈现

图形元件父类

public class Shape implements IShape{        String shape[];//图形形状字符串        String shape_flicker[];//闪烁形状字符串        int height,width;//高、宽        int x,y;//位置坐标        String id;//元件id,用于制作动画效果时获取元件        public Shape(int x,int y,String id) {//构造方法初始化                this.x=x;this.y=y;this.id=id;        }                public Shape(String id) {                this(0,0,id);        }}

图形绘画工具类

import java.util.HashMap;public class Shapes {//存放图形元件        int width,height;//画布大小        public static String canvas[];//画布图像字符串        HashMap ShapeMap=new HashMap();//图形元件容器,添加到画布的图形都会存放在这        public Shapes(int width ,int height) {//初始化空白画布                this.width=width;                this.height=height;                canvas=new String[height];                for(int h=0;hheight-1) {                        System.out.println("超出画布边界!!");                        return;                }                if(myShape.width+px>width-1) {                        System.out.println("超出画布边界!!");                        return;                }                ShapeMap.put(myShape.id,myShape);//将元件添加到容器中                for(String line :myShape.shape) {                                                char Line[]=canvas[py+count].toCharArray();                        for(int i=px;i

动画类

import java.io.IOException;public class Animation {//用于动画效果        long timer;//计时器        int rolled;//滚动计数器        private Shapes shapes;//图形工具                public Animation() {                timer=0;                rolled=0;                init();        }        public void flicker(String id,int interval) {//闪烁效果,id为元件的id,interval是闪烁间隔                                Shape myShape=shapes.ShapeMap.get(id);                String shape_flicker[]=myShape.shape.clone(); //闪烁图像                for(int i=0;i=px&&i<=to&&i300) {                                timer=0;                        }                        cls();                        if(timer<100) {                                flicker("HB1",5);                        }else {                                roll("HB1",0,110,1);                        }                                                                        flicker("Nt1",10);                        shapes.drawCanvas();                        timer++;                        Thread.sleep(sleep);                        System.out.println(timer);                }                        }                public static void cls() throws IOException, InterruptedException//清屏方法(ide中无效)        {                new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor(); // 清屏命令        }}

主类

import java.io.IOException;public class Main {//启动动画        public static void main(String args[]) throws InterruptedException, IOException {                Animation animator=new Animation();                                animator.play(30);        }                        }

具体图形子类(Happy Birthday文字)

public class Shape_Text extends Shape{//继承图形父类                String s[]= {//字符图像                "==================================================================================================",                "= O    O   OO    OOOO   OOOO  O    O       OOOOO  OOOOO OOOOOO OOOOOO O    O OOOOO    OO   O    O =",                "= O    O  O  O  O    O O    O O    O       O    O   O   O    O   OO   O    O O    O  O  O  O    O =",                        "= OOOOOO O    O O    O O    O O    O       O    O   O   OOOOOO   OO   OOOOOO O    O O    O O    O =",                    "= O    O OOOOOO OOOOO  OOOOO   OOOO        OOOOO    O   O O      OO   O    O O    O OOOOOO  OOOO  =",                 "= O    O O    O O      O         O         O    O   O   O  O     OO   O    O O    O O    O    O   =",                    "= O    O O    O O      O         O         OOOOOO OOOOO O   O    OO   O    O OOOOO  O    O    O   =",                "=================================================================================================="        };                public Shape_Text(int i, int j,String id) {                super(i,j,id);                this.shape=s;                this.height=shape.length;                this.width=shape[0].length();        }                public Shape_Text(String id) {                this(0,0,id);        }}

关于"如何使用Java实现控制台字符动画的小程序"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0