日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

大鱼吃豆子游戏java_java swing开发简单的大鱼吃豆子小游戏,可用于毕业设计(附详细设计文档)...

發布時間:2023/12/3 综合教程 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 大鱼吃豆子游戏java_java swing开发简单的大鱼吃豆子小游戏,可用于毕业设计(附详细设计文档)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/**

* @(#)fish.BigMouthFish.java 2008-7-31

* Copy Right Information: Tarena

* Project: fish

* JDK version used: jdk1.6.4

* Comments: 大嘴魚類

* Version: 1.0

* SrDateModified ByWhy & What is modified

* 1.2008-7-31 小豬 新建

**/

package fish;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.Timer;

/**

* 大嘴魚類

* 此類繼承AcitonListener,實現AcitonPerformed方法,練習ActionListener的另一種實現方法

* 此類還練習定時器Timer的使用

* 此類還練習圖形類Graphics的使用

* 2008-7-31

* @author達內科技[Tarena Training Group]

* @version1.0

* @sinceJDK1.6(建議)

*/

public class BigMouthFish implements ActionListener{

/** 大嘴魚嘴的方向:0-上 */

public static int UP = 0;

/** 大嘴魚嘴的方向:1-右 */

public static int RIGHT = 1;

/** 大嘴魚嘴的方向:2-下 */

public static int DOWN = 2;

/** 大嘴魚嘴的方向:3-左 */

public static int LEFT = 3;

/** 大嘴魚的身體大小,以size為半徑畫圓 */

public int size = 50;

/** 大嘴魚現在的方向(以嘴的方向為基準) */

public int direction = RIGHT;

/** 大嘴魚身體的顏色 */

private Color color = Color.CYAN;

/** 大嘴魚的位置x */

public int posx = 80;

/** 大嘴魚的位置y */

public int posy = 80;

/** 大嘴魚的速度,魚每次前進的像素 */

public int speed = 4;

/** 大嘴魚眼睛的大小 */

private int eyesize = size/5;

/** 大嘴魚眼睛的位置x */

private int eyeposx = posx+size/2;

/** 大嘴魚眼睛的位置y */

private int eyeposy = posy+size/5;

/** 大嘴魚眼睛的顏色 */

private Color eyecolor = Color.RED;

/** 大嘴魚嘴的最大角度的一半 */

private int maxMonth = 30;

/** 大嘴魚現在嘴角的角度 */

private int monthsize = 30;

/** 大嘴魚的嘴是否張開 */

private boolean isOpen = true;

private Timer time = null;

/**

* 大嘴魚缺省構造函數.

* 創建一個位置為(200,200),大小為50,方向為右,顏色為Color.CYAN,速度為10的大嘴魚

*/

public BigMouthFish() {

//this的使用。

this(200,200,50,RIGHT,Color.CYAN,4);

}

/**

* 根據位置、大小、方向、顏色、速度構造一個大嘴魚。

* @param posx 大嘴魚的位置x。

* @param posy 大嘴魚的位置y。

* @param size 大嘴魚的大小。

* @param direction 大嘴魚的方向:0-上;1-右;2-下;3-左。出入錯誤時,默認改為1。

* @param color 大嘴魚的顏色。

* @param speed 大嘴魚的速度。

*/

public BigMouthFish(int posx,int posy,int size,int direction,Color color,int speed) {

this.posx = posx;

this.posy = posy;

this.size = size;

if(direction==1 || direction==2 || direction==3 || direction==4)

this.direction = direction;

this.color = color;

this.speed = speed;

eyesize = size/7;

initEye();

time = new Timer(FishPool.reTime,this);

time.start();

}

/**

* 大嘴魚移動。根據魚的方向移動魚。

*/

public void move(){

switch (direction) {

case 0:

posy--;

break;

case 1:

posx++;

break;

case 2:

posy++;

break;

case 3:

posx--;

break;

default:

break;

}

}

/**

* 改變大嘴魚身體的顏色。

* @param color 欲改變大嘴魚身體的顏色

*/

public void changeColor(Color color){

this.color = color;

}

/**

* 改變大嘴魚的方向

* @param direction 欲改變大嘴魚的方向

*/

public void changeDir(int direction){

this.direction = direction;

}

/**

* 使用畫筆繪畫大嘴魚.大嘴魚的頭像:一個扇形的是魚臉,上面有一個小圓是眼睛

* 1.保存畫筆顏色

* 2.繪制大嘴魚的臉

* 3.繪制大嘴魚的眼睛

* 4.恢復畫筆顏色

* @param g 畫筆

*/

public void paint(Graphics g){

//保存畫筆的顏色

Color c = g.getColor();

//繪制魚臉

g.setColor(color);

//從(posx,posy)點開始,繪制寬為size,高為size,開始角度為(direction%2==0?(direction+1):(direction-1))*90+monthsize,弧度為360-2*maxMonth的弧形

g.fillArc(posx, posy, size, size, (direction%2==0?(direction+1):(direction-1))*90+monthsize, 360-2*monthsize);

//繪制魚眼

initEye();

g.setColor(eyecolor);

g.fillOval(eyeposx, eyeposy, eyesize, eyesize);

//恢復畫筆顏色

g.setColor(c);

}

/**

* 大嘴魚張嘴閉嘴事件

* 此處只負責魚的角度的變化,不負責魚的重繪。

* 重繪在魚池中實現。

* 這樣的好處:保證魚的繪制和步伐分開。顯示層和邏輯層單獨處理。(面向對象的責任問題)。

* @param e 事件對象

*/

public void actionPerformed(ActionEvent e) {

if(isOpen){

monthsize -= 2;

if(monthsize<=0)

isOpen = false;

}else{

monthsize += 2;

if(monthsize>=maxMonth)

isOpen = true;

}

}

/**

* 方向改變時,眼睛的改變。

*/

private void initEye(){

switch (direction) {

case 0:

eyeposx = posx+size/7;

eyeposy = posy+size/2-eyesize;

break;

case 1:

eyeposx = posx+size/2;

eyeposy = posy+size/7;

break;

case 2:

eyeposx = posx+size*5/7;

eyeposy = posy+size/2;

break;

case 3:

eyeposx = posx+size/2-eyesize;

eyeposy = posy+size/7;

break;

default:

break;

}

}

}

總結

以上是生活随笔為你收集整理的大鱼吃豆子游戏java_java swing开发简单的大鱼吃豆子小游戏,可用于毕业设计(附详细设计文档)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。