JAVA入门03-项目前瞻

IDEA的使用和第一个java项目

IDEA的使用(开发神器)

打开idea

创建第一个代码项目

编写如下代码

/**
 * 我的第一个IDEA测试类
 * 测试IDEA的使用
 */
public class Main {
    public static void main(String[] args) {
        System.out.println("你好吗!");
    }
}

main+回车快速补齐

sout+回车快速补齐

字节码文件:

源码文件夹:

小型项目:台球游戏_绘制窗口_加载图片

注意;

要求:

素材

项目开始

第一步:

在项目文件src文件夹下创建一个包,在包中创建一个BallGame类

先书写如下开始播报代码:
public class BallGame extends JFrame{
 

    public static void main(String[] args) {
        System.out.println("我的小游戏开始了"); //开始播报
    }

游戏窗口设置代码:
package GAME;

import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame{
    //创建窗口
    void    launchFrame(){
        setSize(856,501);//窗口大小
        setLocation(100,100);//窗口位置
        setVisible(true);//窗口是否可见
    }

    public static void main(String[] args) {
        System.out.println("我的小游戏开始了"); //开始播报
 //调用窗口
        BallGame game = new BallGame();
        game.launchFrame();
    }
}

运行可出现空白窗口:

第二步:

在项目文件下创建image文件夹,把两张素材图片复制粘贴到文件夹中。

调用素材文件地址代码:
//引用文件路径

    Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.png");
游戏窗口代码:
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.png");
    //绘制窗口
    public void paint(Graphics g){
        System.out.println("窗口被画了一次!");//窗口动态播报
        g.drawImage(desk,0,0,null);
        g.drawImage(ball,200,200,null);
    }
完整代码:
package GAME;

import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame{
    //引用文件路径

    Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.png");
    //绘制窗口
    public void paint(Graphics g){
        System.out.println("窗口被画了一次!");//窗口动态播报
        g.drawImage(desk,0,0,null);
        g.drawImage(ball,200,200,null);
    }
    //创建窗口
    void    launchFrame(){
        setSize(856,501);//窗口大小
        setLocation(100,100);//窗口位置
        setVisible(true);// 窗口是否可见
    }

    public static void main(String[] args) {
        System.out.println("我的小游戏开始了"); //开始播报
        //调用窗口
        BallGame game = new BallGame();
        game.launchFrame();
    }
}

运行结果:

第三步:动画实现效果(球体碰撞)

 while(true){
            repaint();

            try {
                Thread.sleep(40);  //1s=1000ms; 一秒绘制1000/40=25次每秒。
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
package GAME;

import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame{
    //引用文件路径

    Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.png");
    //绘制窗口
    double x = 200;
    double y = 200;
    double degree = 3.14/3; //弧度。 3.14 =180°。    60°。

//    boolean right =true; //控制小球水平移动方向

    public void paint(Graphics g){
        System.out.println("窗口被画了一次!");//窗口动态播报
        g.drawImage(desk,0,0,null);
        g.drawImage(ball,(int)x,(int)y,null);
//       if (right){
//        x = x + 2;
//    }else {
//       x = x - 2;
//       }
//       if (x>816){
//            right = false;           //左边界
//       }
//       if (x<40){
//            right = true;           //右边界
//       }
        x = x + 10*Math.cos(degree);
        y = y + 10*Math.sin(degree);


        //碰到上下边界
        if(y>501||y<0){
            degree = - degree;
        }

        //碰到左右边界
        if(x>831||x<0){
            degree = 3.14 - degree;
        }
    }
    //创建窗口
    void    launchFrame(){
        setSize(856,501);//窗口大小
        setLocation(100,100);//窗口位置
        setVisible(true);// 窗口是否可见

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

            try {
                Thread.sleep(40);  //1s=1000ms; 一秒绘制1000/40=25次每秒。
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }

    public static void main(String[] args) {
        System.out.println("我的小游戏开始了"); //开始播报
        //调用窗口
        BallGame game = new BallGame();
        game.launchFrame();
    }
}

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值