零基础开发桌球小游戏项目(激发编程兴趣)@ycy

第一次写博客,希望通过写博客给自己一种约束,学习不能"三天打鱼两天晒网",坚持编程,坚持刷题!

需要的图片

零基础开发桌球小游戏项目(激发编程兴趣)零基础开发桌球小游戏项目(激发编程兴趣)

画窗口的方法


	//画窗口的方法
	public void paint(Graphics g){
		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>500-40-30||y<40+40)
		{
			degree =-degree;      //进行X轴翻转
			//500是窗口高度,40是桌子边框,30是球直径;最后一个40是标题栏的高度
		}
		
		//碰到左右边界问题处理
		if(x<40||x>856-40-30)
		{
			degree =3.14 -degree;  //进行Y轴翻转
		}
			
}

源代码

import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame{
	Image ball =Toolkit.getDefaultToolkit().getImage("images/ball.png");
	Image desk =Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
	double x=100;  //小球的横坐标
	double y=100;  //小球的纵坐标
	double degree =3.14/3;   //弧度.此处就是:60度
	
	//画窗口的方法
	public void paint(Graphics g){
		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>500-40-30||y<40+40)
		{
			degree =-degree;      //进行X轴翻转
			//500是窗口高度,40是桌子边框,30是球直径;最后一个40是标题栏的高度
		}
		
		//碰到左右边界问题处理
		if(x<40||x>856-40-30)
		{
			degree =3.14 -degree;  //进行Y轴翻转
		}
			
}
	
	//窗口加载
	void launchFrame()
	{
		setSize(856,500);
		setLocation(50,50);
		setVisible(true);
	
		//重画窗口,每秒画25次
		while(true)
		{
			repaint();
			try{
				Thread.sleep(40);  //40ms , 1秒=1000毫秒 一秒画25次窗口
			}catch(Exception e)
			{
				e.printStackTrace();
			}
	}
}


	public static void main(String[] args)
	{
		System.out.println("这个小游戏项目让大家体验编程的快感!");
		BallGame game=new BallGame();
		game.launchFrame();
	}

}














相关文章:

猜你喜欢
相关资源
相似解决方案