需要的东西
1.两张图片,桌面,小球
设计思路
- 画出一个窗口,设计相关的大小及其在屏幕中的位置
- 加载图片,将桌面和小球的图片加载到窗口,然后根据图片的呈现效果修改相关窗体的大小及其位置
- 移动小球,如果左右移动的话就是对于x坐标的修改,如果是进行弹回的话,那么就根据相应的角度进行修改,
- 在移动小球的时候,是对窗口的不断重画,更新。
简易的小球游戏
小球只进行左右移动
package myball;
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;//小球的纵坐标
boolean right=true;//表示小球移动的方向,right为右移。false为左移
//画窗口的方法
public void paint(Graphics g)
{
System.out.println("窗口被画了一次");
g.drawImage(desk,10,30,null);//先画桌面
g.drawImage(ball,(int)x,(int)y,null);//再画小球;
if(right)
{
x=x+10;//移动小球
}
else
{
x=x-10;
}
if(x>780)
{
right=false;//小球到达最右边时,往左边走
}
if(x<40)//40表示桌子的边框
{
right=true;//小球到达最左边时,往右边走
}
}
//加载窗口
void launchFrame()
{
setSize(856,500);//宽高
setLocation(50,50);//窗口在屏幕中的位置
setVisible(true);
//重画窗口
while(true)//表示的是一直重画
{
repaint();
try {
Thread.sleep(40);//40毫秒,表示一秒画25次窗口;
}catch(Exception e)
{
}
}
}
//添加动画
public static void main(String[] args) {
//System.out.println("");
BallGame game=new BallGame();
game.launchFrame();
}
}
小球的弹回游戏
package myball;
import java.awt.*;
import javax.swing.*;
public class BallGame2 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)
{
System.out.println("窗口被画了一次");
g.drawImage(desk,10,30,null);//先画桌面
g.drawImage(ball,(int)x,(int)y,null);//再画小球;
x=x+10*Math.cos(degree);
y=y+10*Math.sin(degree);
//上下往回弹,y的坐标大于500表示的是小球超越下边界
if(y>430||y<70)//500-70减去边框,上边框
{
degree=-degree;
}
//左右往回弹,y的坐标大于500表示的是小球超越下边界
if(x>780||x<40)//500-70减去边框,上边框
{
degree=3.14-degree;//角度互补
}
}
//加载窗口
void launchFrame()
{
setSize(856,500);//宽高
setLocation(50,50);//窗口在屏幕中的位置
setVisible(true);
//重画窗口
while(true)//表示的是一直重画
{
repaint();
try {
Thread.sleep(40);//40毫秒,表示一秒画25次窗口;
}catch(Exception e)
{
}
}
}
public static void main(String[] args) {
//System.out.println("");
BallGame2 game=new BallGame2();
game.launchFrame();
}
}
相关的图片:
小球的图片是在其他的图片上截取下来的,可以自己找到相应的图片进行操作。