zoukankan      html  css  js  c++  java
  • 窗口调用实现简单动画(Java描述)

    原理:通过高频率绘制窗口实现动画效果

    //引入图片

      资源准备:

    1.在桌面上放置所有所需图片,修改图片名(尽量简洁)

    2.选中所有图片CTRL+C选中,

    3.在idea中的工程一栏新建文件夹Direction,取名为images,鼠标进行选中,CTRL+V;

      代码操作:

    //引入图片:调用方法,为图片创建一个对象。注意,狗日的idea会给你补全一些东西,妈的,只能用它的
    Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
    Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.png");

    //创建窗口
    void launchFrame(){
    setSize(856,400);
    setLocation(100,100);
    setVisible(true);

    //实现动画,每秒绘制动画25次
    while (true) {
    repaint();
    }
    完整代码:


    /*
    * 在新建一个项目的时候,file new project src package class
    * 插入图片,在project文件夹下ctrl c选中图片,新建Direction,输入images,回车,
    * 选中新建文件夹 CTRL V即可*/
    package com.bjsxt;

    import org.w3c.dom.ls.LSOutput;

    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;

    public class BallGame extends JFrame {
    //引入图片:调用方法,为图片创建一个对象。注意,狗日的idea会给你补全一些东西,妈的,只能用它的
    Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
    Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.png");

    double x=200;
    double y=200;

    double degree=3.14/3;//java 默认使用这弧度制.3.14即为180°

    //绘制窗口
    public void paint(Graphics g){
    System.out.println("窗口被画了一次");
    g.drawImage(desk,0,0,null);
    g.drawImage(ball,(int)x,(int)y,null);


    x=x+10*Math.cos(degree);
    y=y+10*Math.sin(degree);

    //碰到上下边界
    if(y>300||y<0){
    degree=-degree;
    }
    //碰到左右边界
    if(x>756||x<0){
    degree=3.14-degree;
    }
    }
    /*窗口使用
    * 1.创建窗口,void launchFrame()
    * 2.方法体里,setSize setLocation,setVisible*/

    void launchFrame(){
    setSize(856,400);
    setLocation(100,100);
    setVisible(true);

    //实现动画,每秒绘制动画25次
    while (true) {
    repaint();

    try {
    Thread.sleep(40);//1s=1000ms;大约1秒绘制1000/40=25次
    }catch (InterruptedException e){
    e.printStackTrace();
    }
    }
    }

    public static void main(String[] args) {
    System.out.println("第一个游戏开始");

    BallGame game=new BallGame();
    game.launchFrame();
    }

    }
  • 相关阅读:
    生成建表脚本(V2.0)
    QQ抢车位游戏PhysicalDataModel
    自定义工资公式设计
    .NET开发人员必知的八个网站
    MongoDB 学习 error以及解决方法
    lm_sensors 查看硬件信息
    setuid on shell scripts
    SSD寿命状态检测
    SysBench安装使用。
    用rsync对网站进行镜像备份(不靠谱)
  • 原文地址:https://www.cnblogs.com/WAsbry/p/14288201.html
Copyright © 2011-2022 走看看