java實(shí)戰(zhàn)之桌球小游戲
更新時間:2019年07月13日 10:37:11 作者:北冥有魚love
這篇文章主要為大家詳細(xì)介紹了java實(shí)戰(zhàn)之桌球小游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了java桌球小游戲的具體代碼,供大家參考,具體內(nèi)容如下
源碼:
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; //小球的橫坐標(biāo)
double y = 100; //小球的縱坐標(biāo)
double degree = 3.14/3; //弧度,此處就是60度
//畫窗口的方法
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);
if(y>500-40-30 || y<40+40) { //500是窗口高度, 40是桌子邊框, 30是球直徑, 最后一個40是標(biāo)題欄的高度
degree = -degree; //小球觸碰上下邊界時,只改變縱坐標(biāo)方向
}
if(x<40 || x>856-40-30) {
degree = 3.14 - degree; //小球觸碰左右邊界時,只改變橫坐標(biāo)方向
}
}
//窗口加載
void launchFrame() {
setSize(856,500); //窗口大小
setLocation(50,50); //窗口位置
setVisible(true); //顯示窗口
//重畫窗口
while(true) {
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
}
}
//main方法是程序執(zhí)行的入口
public static void main(String[] strgs) {
BallGame2 ballgame = new BallGame2();
ballgame.launchFrame();
}
}
圖片:


注意:images文件夾保持和src在同級目錄下:

運(yùn)行效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)字符串的分割(基于String.split()方法)
Java中的我們可以利用split把字符串按照指定的分割符進(jìn)行分割,然后返回字符串?dāng)?shù)組,下面這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)字符串的分割的相關(guān)資料,是基于jDK1.8版本中的String.split()方法,需要的朋友可以參考下2022-09-09
java使用FuncGPT慧函數(shù)對Mybatis進(jìn)行一對一查詢映射處理
這篇文章主要介紹了java使用FuncGPT慧函數(shù)對Mybatis進(jìn)行一對一查詢映射處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例
這篇文章主要介紹了詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
詳解Spring Boot配置使用Logback進(jìn)行日志記錄的實(shí)戰(zhàn)
本篇文章主要介紹了詳解Spring Boot配置使用Logback進(jìn)行日志記錄的實(shí)戰(zhàn),具有一定的參考價值,有興趣的朋友可以了解一下2017-07-07

