Java|零基础开发桌球小游戏项目
欢迎点击「算法与编程之美」↑关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
欢迎加入团队圈子!与作者面对面!直接点击!
1 练习目标
1.找到敲代码的感觉
2.收获敲代码的乐趣
3.做出效果,找到自信
4.从一开始就学会调试错误
5.掌握Java代码基本结构
1.1 有关问题的解决方法
1.//画窗口的方法 public void paint(Graphics g){ g.drawImage(desk, 0, 0, null); g.drawImage(ball, (int)x,(int)y,null); x =x+10Math.cos(degree);//数学问题:三角函数 y =y+10Math.sin(degree); 2.//碰到上下边界问题 if(y>500-40-30||y<40+40) { degree =-degree;//进行X轴翻转 3.//500是窗口高度,40是桌子边框,30是球直径;最后一个40是标题栏的高度 } 4.//碰到左右边界问题处理 if(x<40||x>856-40-30) { degree =3.14 -degree;//进行Y轴翻转 } } |
1.2 项目步骤:
1.编写main方法,创建对象game
2.编写窗口加载方法
3.导入图片ball和desk,设置好ball的位置
4.解决小球移动出界面的问题
5.实现小球沿任意方向移动
2 项目所需图片:
3.源代码
//桌球游戏开发 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) { 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) {//500是窗口高度,40是桌子边框,30是球直径,最后一个40是标题栏的高度 degree = -degree; } //碰到左右边界 if(x < 40||x > 856 - 40 - 30) {degree = 3.14 - degree; } } //窗口加载 void launchFrame() { setSize(856,500); setLocation(50,50); setVisible(true); //重画窗口,每秒画25次 while(true) { repaint(); try { Thread.sleep(40);//40ms, 1m = 1000ms,//大约一秒画25次窗口 }catch(Exception e) { e.printStackTrace(); } } } //main方法是程序执行的入口 public static void main(String[] args) { BallGame2 game = new BallGame2(); game.launchFrame(); } } |
END
编 辑 | 王文星
责 编 | KyrieLi
where2go 团队
微信号:算法与编程之美
长按识别二维码关注我们!
温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!