java小白入门练手小项目:台球游戏。附赠学习教程分享
【项目】台球游戏小项目
练习目标:
1.找到敲代码的感觉
2.收获敲代码的兴趣
3.作出效果,找到自信
4.从一开始就学会调试错误
5.掌握Java代码基本结构
注意:不要求自己理解代码的语法功能,只要按照代码结构输入代码,能够经过调试实现代码的正常运行即可;
项目需求:
桌球在球桌中按照一定线路和角度移动;遇到边框会自动弹回
即使看不太懂,也要照着敲如下游戏代码,至少5遍。要求所有字符和源文件一致。
import java.awt.*;
public class BallGame extends Frame {
//球桌和桌球图片
Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
//桌球的起始位置
double x=100;
double y=100;
//桌球移动的初始角度60°
double degree = 3.14/3;
/**
* 绘制一次桌面和桌球
*/
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);
//到了球桌四个边框后桌球角度的变化
//1.如果到了底部,就要变角度
if(y>480-30-40){//480是球桌高度,30是球的直径,40是桌边框宽度
degree = - degree;
}
//2.如果到了右边界,就要变角度
if(x>856-30-40){
degree = 3.14-degree;
}
//3.如果到了上边界,就要变角度
if(x<20+20){
degree = 3.14-degree;
}
//4.如果到了左边界,就要变角度
if(y<20+20){
degree = -degree;
}
}
/**
* 绘制多次次桌面和桌球
*/
void launchFrame(){
//四个方法什么含义,你能根据运行结果看懂吗
setSize(856, 480);
setLocation(50, 50);
setTitle("尚学堂--程旭源作品");
setVisible(true);
//每隔40毫秒绘制一次桌面和桌球
while(true){
repaint(); //重画窗口!
try{
Thread.sleep(40); //40ms 1s=1000ms
}catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
System.out.println("我是尚学堂的程旭源!");
BallGame bg = new BallGame();
bg.launchFrame();
}
}