亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java實現飛機大戰-連接數據庫并把得分寫入數據庫

2024-07-14 08:41:36
字體:
來源:轉載
供稿:網友

編寫飛行物類

package com.tarena.shoot; import java.awt.image.BufferedImage; /** * 飛行物(敵機,蜜蜂,子彈,英雄機) */public abstract class FlyingObject {	protected int x;	protected int y;	protected int width; 	protected int height;	protected BufferedImage image;	protected BufferedImage[] ember; 	public int getX() {		return x;	} 	public void setX(int x) {		this.x = x;	} 	public int getY() {		return y;	} 	public void setY(int y) {		this.y = y;	} 	public int getWidth() {		return width;	} 	public void setWidth(int width) {		this.width = width;	} 	public int getHeight() {		return height;	} 	public void setHeight(int height) {		this.height = height;	} 		public BufferedImage getImage() {		return image;	} 	public void setImage(BufferedImage image) {		this.image = image;	} 	/**	 * 檢查是否出界	 * @param width 邊界寬	 * @param height 邊界高	 * @return true 出界與否	 */	public abstract boolean outOfBounds();		/**	 * 飛行物移動一步	 */	public abstract void step();		/**	 * 檢查當前飛行物體是否被子彈(x,y)擊(shoot)中,	 * true表示擊中,飛行物可以被擊中	 * @param Bullet 子彈對象	 * @return true表示被擊中了	 */	public boolean shootBy(Bullet bullet){		if(bullet.isBomb()){			return false;		}		int x = bullet.x; //子彈橫坐標		int y = bullet.y; //子彈縱坐標		boolean shoot = this.x<x && x<this.x+width && this.y<y && y<this.y+height;		if(shoot){			bullet.setBomb(true);		}		return shoot;	} }

編寫飛機類

package com.tarena.shoot;   /** * 敵飛機: 是飛行物,也是敵人 */public class Airplane extends FlyingObject implements Enemy { 	int speed = 2; //移動步驟		public Airplane(){		this.image = ShootGame.airplane;		this.ember = ShootGame.airplaneEmber;		width = image.getWidth();		height = image.getHeight();		y = -height;   		x = (int)(Math.random()*(ShootGame.WIDTH - width));	} 		@Override	public int getScore() { //獲取分數		return 5;	} 	@Override	public 	boolean outOfBounds() { //越界處理		return y>ShootGame.HEIGHT;	} 	@Override	public void step() { //移動		y += speed;	} } 

編寫獎勵接口

package com.tarena.shoot;/** * 獎勵 */public interface Award {	int DOUBLE_FIRE = 0; //雙倍火力	int LIFE = 1;  //1條命	/** 獲得獎勵類型(上面的0或1) */	int getType();}

編寫蜜蜂類

package com.tarena.shoot; import java.util.Random; public class Bee extends FlyingObject implements Award{	private int xSpeed = 1;	private int ySpeed = 2;	private int awardType;		public Bee(){		this.image = ShootGame.bee;		this.ember = ShootGame.beeEmber;		width = image.getWidth();		height = image.getHeight();		y = -height;		Random rand = new Random();		x = rand.nextInt(ShootGame.WIDTH - width);		awardType = rand.nextInt(2);  //初始化時給獎勵	}		public int getType(){		return awardType;	} 	@Override	public boolean outOfBounds() {		return y>ShootGame.HEIGHT;	} 	@Override	public void step() {   //可斜飛		x += xSpeed;		y += ySpeed;		if(x > ShootGame.WIDTH-width){			xSpeed = -1;		}		if(x < 0){			xSpeed = 1;		}	}}

編寫大飛機類

package com.tarena.shoot; import java.util.Random; public class BigPlane extends FlyingObject 	implements Enemy, Award{	private int xSpeed=1;	private int ySpeed=1;		private int life;	private int awardType; 	public BigPlane() {		life = 4;		this.image = ShootGame.bigPlane;		this.ember = ShootGame.bigPlaneEmber;		width = image.getWidth();		height = image.getHeight();		y = -height;    		Random rand = new Random();		x = rand.nextInt(ShootGame.WIDTH - width);		awardType = rand.nextInt(2);	}		public int getType() {		return awardType;	} 	@Override	public int getScore() {		return 50;	} 	@Override	public boolean outOfBounds() {		return false;	} 	//	@Override//	public BufferedImage getImage() {//		Graphics g = image.getGraphics();//		g.setColor(Color.white);//		g.fillRect(0, 0, 40, 30);//		g.setColor(Color.black);//		g.drawString("L:"+life, 10, 20);//		return image;//	}		public EnemyBullet[] shoot() { // 發射子彈		int xStep = width / 4; // 子彈步分為飛機寬度4半		int yStep = 20;		EnemyBullet[] bullets2 = new EnemyBullet[1];		bullets2[0] = new EnemyBullet(x + 2 * xStep, y - yStep); 		return bullets2;		}		@Override	public void step() {  //移動		x += xSpeed;		y += ySpeed;		if(x > ShootGame.WIDTH-width){			xSpeed = -1;		}		if(x < 0){			xSpeed = 1;		}	}		public boolean shootBy(Bullet bullet) {		if(super.shootBy(bullet)){			life--;		}		return life==0;	}}

編寫子彈類

package com.tarena.shoot;  /** * 子彈類 */public class Bullet extends FlyingObject {	private int speed = 3; //移動的速度	private boolean bomb;	public Bullet(int x,int y){		this.x = x;		this.y = y;		this.image = ShootGame.bullet;	}		public void setBomb(boolean bomb) {		this.bomb = bomb;	}		public boolean isBomb() {		return bomb;	} 	@Override	public void step(){  //移動方法		y-=speed;	} 	@Override	public boolean outOfBounds() {		return y<-height;	} }

編寫飛機爆炸效果

package com.tarena.shoot; import java.awt.image.BufferedImage; /** * 灰燼 飛機被打掉以后的殘影 * @author Robin */public class Ember {	private BufferedImage[] images={};	private int index;	private int i;	private BufferedImage image;	private int intevel = 10;	private int x,y;	public Ember(FlyingObject object) {		images = object.ember;		image = object.image;		x = object.x;		y = object.y;		index = 0;		i = 0;	}		public boolean burnDown(){		i++;		if(i%intevel==0){			if(index == images.length){				return true;			}			image = images[index++];		}		return false;	}	public int getX() {		return x;	}	public int getY() {		return y;	}	public BufferedImage getImage() {		return image;	}}

編寫敵人類

package com.tarena.shoot; /** * 敵人,可以有分數 */public interface Enemy {	//敵人的分數	int getScore();}

編寫敵機子彈類

package com.tarena.shoot; public class EnemyBullet extends FlyingObject {	private int speed = 2; //移動的速度	private boolean bomb;		public EnemyBullet(int x,int y){		this.x = x;		this.y = y;		this.image = ShootGame.EnemyBullet;	}		public void setBomb(boolean bomb) {		this.bomb = bomb;	}		public boolean isBomb() {		return bomb;	} 	@Override	public void step(){  //移動方法		y+=speed;	} 	@Override	public boolean outOfBounds() {		return y<-height;	} }  

編寫英雄機類

package com.tarena.shoot; import java.awt.image.BufferedImage;  /** * 英雄機 *  * @author Administrator *  */public class Hero extends FlyingObject {		protected BufferedImage[] images = {};	protected int index = 0; 	//private boolean doubleFire;	private int doubleFire;	private int life; 	public Hero() {		life = 3;		doubleFire = 0;		this.image = ShootGame.hero0;		this.ember = ShootGame.heroEmber;		images = new BufferedImage[]{ShootGame.hero0, ShootGame.hero1};		width = image.getWidth();		height = image.getHeight();		x = 150;		y = 400;	} 	public int isDoubleFire() {		return doubleFire;	} 	public void addDoubleFire(){		doubleFire = 40;	}		public void setDoubleFire(int doubleFire) {		this.doubleFire = doubleFire;	} 	public void addLife() { // 增命		life++;	} 	public void subtractLife() { // 減命		life--;	} 	public int getLife() {		return life;	} 	/**	 * 當前物體移動了一下,相對距離, x,y鼠標位置	 */	public void moveTo(int x, int y) {		this.x = x - width / 2;		this.y = y - height / 2;	} 	@Override	public boolean outOfBounds() {		return x < 0 || x > ShootGame.WIDTH - width || y < 0				|| y > ShootGame.HEIGHT - height;	} 	public Bullet[] shoot() { // 發射子彈		int xStep = width / 4; // 子彈步分為飛機寬度4半		int yStep = 20;		if (doubleFire>0) {			Bullet[] bullets = new Bullet[2];			bullets[0] = new Bullet(x + xStep, y - yStep);			bullets[1] = new Bullet(x + 3 * xStep, y - yStep);			doubleFire -= 2;			return bullets;		} else { // 單倍			Bullet[] bullets = new Bullet[1];			bullets[0] = new Bullet(x + 2 * xStep, y - yStep); // y-yStep(子彈距飛機的位置)			return bullets;		}	} 	@Override	public void step() {		if(images.length>0){			image = images[index++/10%images.length];		}	} 	public boolean hit(FlyingObject other) { // 碰撞算法 		int x1 = other.x - this.width / 2;		int x2 = other.x + other.width + this.width / 2;		int y1 = other.y - this.height / 2;		int y2 = other.y + other.height + this.height / 2;		return this.x + this.width / 2 > x1 && this.x + this.width / 2 < x2				&& this.y + this.height / 2 > y1				&& this.y + this.width / 2 < y2;	} 	public boolean hit2(EnemyBullet bb1) {		int x1 = bb1.x - this.width / 2;		int x2 = bb1.x + bb1.width + this.width / 2;		int y1 = bb1.y - this.height / 2;		int y2 = bb1.y + bb1.height + this.height / 2;		int hx = this.x + this.width / 2;		int hy = this.y + this.height / 2;		return hx > x1 && hx < x2 && hy > y1 && hy < y2; 	}}

編寫bgm類

package com.tarena.shoot; import java.applet.Applet;import java.applet.AudioClip;import java.io.File;import java.net.URI;import java.net.URL;import javax.swing.JFrame;public class Sound extends JFrame{ File f; URI uri;  URL url;   Sound(){  try {      f = new File("C://Users//姜濤//Desktop//dddd//StudioEIM - MapleStory.wav");    uri = f.toURI();   url = uri.toURL(); //解析地址   AudioClip aau;    aau = Applet.newAudioClip(url);   aau.loop(); //循環播放 } catch (Exception e)  { e.printStackTrace(); } }}

編寫主類

package com.tarena.shoot; import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.image.BufferedImage;import java.util.Arrays;import java.util.Random;import java.util.Timer;import java.util.TimerTask; import javax.imageio.ImageIO;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JPanel; import DAO.DAO; public class ShootGame extends JPanel {	public static final int WIDTH = 400; // 面板寬	public static final int HEIGHT = 654; // 面板高	/** 游戲的當前狀態: START RUNNING PAUSE GAME_OVER */	private int state;	public static final int START = 0;	public static final int RUNNING = 1;	public static final int PAUSE = 2;	public static final int GAME_OVER = 3;  	private int score = 0; // 得分	private Timer timer; // 定時器	private int intervel = 1000/100; // 時間間隔(毫秒)		public static BufferedImage background;	public static BufferedImage start;	public static BufferedImage pause;	public static BufferedImage gameover;	public static BufferedImage bullet;	public static BufferedImage airplane;	public static BufferedImage EnemyBullet;	public static BufferedImage[] airplaneEmber=new BufferedImage[4];	public static BufferedImage bee;	public static BufferedImage[] beeEmber=new BufferedImage[4];;	public static BufferedImage hero0;	public static BufferedImage hero1;	public static BufferedImage[] heroEmber=new BufferedImage[4];;	public static BufferedImage bigPlane;	public static BufferedImage[] bigPlaneEmber=new BufferedImage[4];; 	private FlyingObject[] flyings = {}; // 敵機數組	private Bullet[] bullets = {}; // 子彈數組	private EnemyBullet[] bullets2 = {};//敵機子彈數組	private Hero hero = new Hero(); // 英雄機	private Ember[] embers = {}; // 灰燼	private BigPlane bigplane=new BigPlane(); 	static {// 靜態代碼塊		try {			background = ImageIO.read(ShootGame.class					.getResource("background.png"));			bigPlane = ImageIO					.read(ShootGame.class.getResource("bigplane.png"));			airplane = ImageIO					.read(ShootGame.class.getResource("airplane.png"));			bee = ImageIO.read(ShootGame.class.getResource("bee.png"));			bullet = ImageIO.read(ShootGame.class.getResource("bullet.png"));			hero0 = ImageIO.read(ShootGame.class.getResource("hero0.png"));			hero1 = ImageIO.read(ShootGame.class.getResource("hero1.png"));			pause = ImageIO.read(ShootGame.class.getResource("pause.png"));			EnemyBullet= ImageIO.read(ShootGame.class.getResource("EnemyBullet.png"));			gameover = ImageIO					.read(ShootGame.class.getResource("gameover.png"));			start = ImageIO					.read(ShootGame.class.getResource("start.png"));			for(int i=0; i<4; i++){				beeEmber[i] = ImageIO.read(						ShootGame.class.getResource("bee_ember"+i+".png"));				airplaneEmber[i] = ImageIO.read(						ShootGame.class.getResource("airplane_ember"+i+".png"));				bigPlaneEmber[i] = ImageIO.read(						ShootGame.class.getResource("bigplane_ember"+i+".png"));				heroEmber[i] = ImageIO.read(						ShootGame.class.getResource("hero_ember"+i+".png"));			}		} catch (Exception e) {			e.printStackTrace();		}	} 	@Override	public void paint(Graphics g) {		g.drawImage(background, 0, 0, null); // 畫背景圖		paintEmber(g);		paintHero(g); // 畫英雄機		paintBullets(g); // 畫子彈		paintFlyingObjects(g); // 畫飛行物		paintScore(g); // 畫分數		paintState(g); // 畫游戲狀態		paintEnemyBullets(g);//畫敵機子彈	} 	/** 畫英雄機 */	public void paintHero(Graphics g) {		g.drawImage(hero.getImage(), hero.getX(), hero.getY(), null);	}		public void paintEmber(Graphics g) {		for (int i = 0; i < embers.length; i++) {			Ember e = embers[i];			g.drawImage(e.getImage(), e.getX(), e.getY(), null);		}	} 	/** 畫子彈 */	public void paintBullets(Graphics g) {		for (int i = 0; i < bullets.length; i++) {			Bullet b = bullets[i];			if(! b.isBomb())				g.drawImage(b.getImage(), b.getX() - b.getWidth() / 2, b.getY(),					null);		}							}	public void paintEnemyBullets(Graphics g) {		for(int i=0;i<bullets2.length;i++) {			EnemyBullet e=bullets2[i];			if(! e.isBomb()) {				g.drawImage(e.getImage(),e.getX() - e.getWidth() / 2, e.getY(),null);			}		}			} 	/** 畫飛行物 */	public void paintFlyingObjects(Graphics g) {		for (int i = 0; i < flyings.length; i++) {			FlyingObject f = flyings[i];			g.drawImage(f.getImage(), f.getX(), f.getY(), null);		}	} 	/** 畫分數 */	public void paintScore(Graphics g) {		int x = 10;		int y = 25;		Font font = new Font(Font.SANS_SERIF,Font.BOLD, 14);		g.setColor(new Color(0xFFFFFF));		g.setFont(font); // 設置字體		g.drawString("SCORE:" + score, x, y); // 畫分數		y+=20;		g.drawString("LIFE:" + hero.getLife(), x, y);	} 	/** 畫游戲狀態 */	public void paintState(Graphics g) {		switch (state) {		case START:			g.drawImage(start, 0, 0, null);			break;		case PAUSE:			g.drawImage(pause, 0, 0, null);			break;		case GAME_OVER:			g.drawImage(gameover, 0, 0, null);			break;		}	} 	public static void main(String[] args) {		new Sound();		JFrame frame = new JFrame("Shoot Game");		ShootGame game = new ShootGame(); // 面板對象		frame.add(game); // 將面板添加到JFrame中		frame.setSize(WIDTH, HEIGHT); // 大小		frame.setAlwaysOnTop(true); // 其總在最上		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 默認關閉操作		frame.setIconImage(new ImageIcon("images/icon.jpg").getImage()); // 設置窗體的圖標		frame.setLocationRelativeTo(null); // 設置窗體初始位置		frame.setVisible(true); // 盡快調用paint 		game.action(); // 啟動執行	} 	public void action() { // 啟動執行代碼		// 鼠標監聽事件		MouseAdapter l = new MouseAdapter() {			@Override			public void mouseMoved(MouseEvent e) { // 鼠標移動				if (state == RUNNING) { // 運行時移動英雄機					int x = e.getX();					int y = e.getY();					hero.moveTo(x, y);				}			} 			@Override			public void mouseEntered(MouseEvent e) { // 鼠標進入				if (state == PAUSE) { // 暫停時運行					state = RUNNING;				}			} 			@Override			public void mouseExited(MouseEvent e) { // 鼠標退出				if (state != GAME_OVER) {					state = PAUSE; // 游戲未結束,則設置其為暫停				}			} 			@Override			public void mouseClicked(MouseEvent e) { // 鼠標點擊				switch (state) {				case START:					state = RUNNING;					break;				case GAME_OVER: // 游戲結束,清理現場					flyings = new FlyingObject[0];					bullets = new Bullet[0];					hero = new Hero();					score = 0;					state = START;					break;				}			}		};		this.addMouseListener(l); // 處理鼠標點擊操作		this.addMouseMotionListener(l); // 處理鼠標滑動操作 		timer = new Timer(); // 主流程控制		timer.schedule(new TimerTask() {			@Override			public void run() {				if (state == RUNNING) {					enterAction(); // 飛行物入場					stepAction(); // 走一步					shootAction(); // 射擊					bangAction(); // 子彈打飛行物					outOfBoundsAction(); // 刪除越界飛行物及子彈					checkGameOverAction(); // 檢查游戲結束					emberAction();				}				repaint(); // 重繪,調用paint()方法			}  		}, intervel, intervel);	} 	private void emberAction() {		Ember[] live = new Ember[embers.length];		int index = 0;		for (int i = 0; i < embers.length; i++) {			Ember ember = embers[i];			if(! ember.burnDown()){				live[index++]=ember;			}		}		embers = Arrays.copyOf(live, index);	}	int flyEnteredIndex = 0; // 飛行物入場計數 	/** 飛行物入場 */	public void enterAction() {		flyEnteredIndex++;		if (flyEnteredIndex % 40 == 0) { // 300毫秒--10*30			FlyingObject obj = nextOne(); // 隨機生成一個飛行物			flyings = Arrays.copyOf(flyings, flyings.length + 1);			flyings[flyings.length - 1] = obj;		}	} 		public void stepAction() {		/** 飛行物走一步 */		for (int i = 0; i < flyings.length; i++) { // 飛行物走一步			FlyingObject f = flyings[i];			f.step();		} 		/** 子彈走一步 */		for (int i = 0; i < bullets.length; i++) {			Bullet b = bullets[i];			b.step();		}				hero.step();				for (int i = 0; i < bullets2.length; i++) {			EnemyBullet c = bullets2[i];			c.step();		}		} 	int shootIndex = 0; // 射擊計數 	/** 射擊 */	public void shootAction() {		shootIndex++;		if (shootIndex % 30 == 0) { // 100毫秒發一顆			Bullet[] bs = hero.shoot(); // 英雄打出子彈			bullets = Arrays.copyOf(bullets, bullets.length + bs.length); // 擴容			System.arraycopy(bs, 0, bullets, bullets.length - bs.length,bs.length); // 追加數組		}		if (shootIndex % 100 == 0) {// 大Boss發射子彈			for (int i = 0; i < flyings.length; i++) {				if (flyings[i] instanceof BigPlane) {// 大Boss發射子彈					BigPlane boss = (BigPlane) flyings[i];					EnemyBullet[] b = boss.shoot();					bullets2 = Arrays.copyOf(bullets2, bullets2.length + b.length);					System.arraycopy(b, 0, bullets2, bullets2.length - b.length, b.length);				}			}		}			}					//		if (shootIndex % 30 == 0) { // 100毫秒發一顆//			//			EnemyBullet[] bs2 =big.shoot(); //			bullets = Arrays.copyOf(bullets, bullets.length + bs2.length); // 擴容//			System.arraycopy(bs2, 0, bullets, bullets.length - bs2.length,//					bs2.length); // 追加數組//		}	//}	/** 子彈與飛行物碰撞檢測 */	public void bangAction() {		for (int i = 0; i < bullets.length; i++) { // 遍歷所有子彈			Bullet b = bullets[i];			bang(b);		}	} 	/** 刪除越界飛行物及子彈 */	public void outOfBoundsAction() {		int index = 0;		FlyingObject[] flyingLives = new FlyingObject[flyings.length]; // 活著的飛行物		for (int i = 0; i < flyings.length; i++) {			FlyingObject f = flyings[i];			if (!f.outOfBounds()) {				flyingLives[index++] = f; // 不越界的留著			}		}		flyings = Arrays.copyOf(flyingLives, index); // 將不越界的飛行物都留著 		index = 0; // 重置為0		Bullet[] bulletLives = new Bullet[bullets.length];		for (int i = 0; i < bullets.length; i++) {			Bullet b = bullets[i];			if (!b.outOfBounds()) {				bulletLives[index++] = b;			}		}		bullets = Arrays.copyOf(bulletLives, index); // 將不越界的子彈留著	} 	/** 檢查游戲結束 */	public void checkGameOverAction() {		if (isGameOver()) {			try {				DAO.save(score);			} catch (Exception e) {				// TODO Auto-generated catch block				e.printStackTrace();			}			state = GAME_OVER; // 改變狀態		}	} 	/** 檢查游戲是否結束 */	public boolean isGameOver() {		int index = -1;				for (int i = 0; i < flyings.length; i++) {			FlyingObject obj = flyings[i];			if (hero.hit(obj)) { // 檢查英雄機與飛行物是否碰撞				hero.subtractLife();				hero.setDoubleFire(0);				index = i;								Ember ember = new Ember(hero);				embers = Arrays.copyOf(embers, embers.length+1);				embers[embers.length-1]=ember;			}		}		if(index!=-1){			FlyingObject t = flyings[index];			flyings[index] = flyings[flyings.length-1];			flyings[flyings.length-1] = t;			flyings = Arrays.copyOf(flyings, flyings.length-1);						Ember ember = new Ember(t);			embers = Arrays.copyOf(embers, embers.length+1);			embers[embers.length-1]=ember;		}				for (int i = 0; i < bullets2.length; i++) {			EnemyBullet bb = bullets2[i]; // 獲取每一個敵人對象			if (hero.hit2(bb)) { // 返回true,英雄機與敵人相撞了				hero.subtractLife(); // 英雄機減命				hero.setDoubleFire(0); // 英雄機火力值為0,單倍火力				// 碰撞后敵人的后果是消失				EnemyBullet bb1 = bullets2[i];				bullets2[i] = bullets2[bullets2.length - 1];				bullets2[bullets2.length - 1] = bb1;				bullets2 = Arrays.copyOf(bullets2, bullets2.length - 1);			}		}		return hero.getLife() <= 0;	} 	/** 子彈和飛行物之間的碰撞檢查 */	public void bang(Bullet bullet) {		int index = -1; // 擊中的飛行物索引		for (int i = 0; i < flyings.length; i++) {			FlyingObject obj = flyings[i];			if (obj.shootBy(bullet)) { // 判斷是否擊中				index = i; // 記錄被擊中的飛行物的索引				break;			}		}		if (index != -1) { // 有擊中的飛行物			FlyingObject one = flyings[index]; // 記錄被擊中的飛行物 			FlyingObject temp = flyings[index]; // 被擊中的飛行物與最后一個飛行物交換			flyings[index] = flyings[flyings.length - 1];			flyings[flyings.length - 1] = temp; 			flyings = Arrays.copyOf(flyings, flyings.length - 1); // 刪除最后一個飛行物(即被擊中的) 			// 檢查one的類型 如果是敵人, 就算分			if (one instanceof Enemy) { // 檢查類型,是敵人,則加分				Enemy e = (Enemy) one; // 強制類型轉換				score += e.getScore(); // 加分			} 						if (one instanceof Award) { // 若為獎勵,設置獎勵				Award a = (Award) one;				int type = a.getType(); // 獲取獎勵類型				switch (type) {				case Award.DOUBLE_FIRE:					hero.addDoubleFire(); // 設置雙倍火力					break;				case Award.LIFE:					hero.addLife(); // 設置加命					break;				}			}						//飛行物變成灰燼			Ember ember = new Ember(one);			embers = Arrays.copyOf(embers, embers.length+1);			embers[embers.length-1]=ember;		}	} 	/**	 * 隨機生成飛行物	 * 	 * @return 飛行物對象	 */	public static FlyingObject nextOne() {		Random random = new Random();		int type = random.nextInt(20); // [0,4)		if (type==0) {			return new Bee();		}else if(type<=2){			return new BigPlane();		}else{			return new Airplane();		}	}}

下面實現數據庫的連接,首先編寫將分數寫入數據庫的方法,在src重新建一個包,包里寫寫入分數的方法。

<code class="language-java">package DAO;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import util.DBUtil;public class DAO {	/*	 * 增加分數的方法	 */	public static void save(int score) throws Exception{		PreparedStatement ps=null;		Connection conn = null;		try{		conn = DBUtil.getConnection();		String sql ="INSERT INTO mydb2(score) values(?)";		ps = conn.prepareStatement(sql);		ps.setInt(1,score);		ps.executeUpdate();		}catch(SQLException e){			e.printStackTrace();		}finally{			DBUtil.close(conn);		}	}}</code>

然后連接數據庫

package util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class DBUtil {	public static void main(String[]args) throws Exception{		Connection conn = DBUtil.getConnection();		System.out.println(conn);		DBUtil.close(conn);	}	public static void close(Connection conn){		try{			if(conn != null){				conn.close();			}		}catch(SQLException e){			e.printStackTrace();		}	}	public static Connection getConnection() throws Exception{		//System.out.println("112");		Connection conn = null;		//1.注冊驅動(加載驅動)		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");		conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=數據庫名字","sa", "********");				//System.out.println("123");		//		try{//		Class.forName("com.microsoft.sqlserver.jdbc.Driver");//		System.out.println("111");//		//2.建立連接//		conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1443/mydb2","sa","the1012secret");//		System.out.println("111");//		}catch(ClassNotFoundException e){//			//System.out.println("注冊驅動");//		}catch(SQLException e){//			e.printStackTrace();//		}		return conn;	}}


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品r级在线| 精品伊人久久97| 国产精品羞羞答答| 国产精品免费一区豆花| 亚洲一区二区三区777| 成人午夜黄色影院| 久久久久久久久久久国产| 青青草99啪国产免费| 欧美性猛交xxxx| 久久久在线免费观看| 国产精品人成电影| 欧美性视频网站| 亚洲国产精品热久久| 国产精品久久国产精品99gif| 午夜精品一区二区三区视频免费看| 萌白酱国产一区二区| 成人写真福利网| 亚洲综合中文字幕在线| 亚洲第一男人av| 国产精品久久一区主播| 欧美俄罗斯乱妇| 精品国产鲁一鲁一区二区张丽| 亚洲欧美三级在线| 欧美日韩亚洲精品内裤| 免费不卡在线观看av| 久久久99免费视频| 国产精品1区2区在线观看| 69视频在线播放| 在线观看日韩专区| 91免费的视频在线播放| 91黑丝高跟在线| 亚洲第一精品夜夜躁人人躁| 欧美性猛交xxx| 97欧美精品一区二区三区| 欧美激情视频网| 7m精品福利视频导航| 正在播放亚洲1区| 国产精品欧美日韩久久| 国产91精品久久久久| 一区二区三区在线播放欧美| 欧美肥臀大乳一区二区免费视频| 久久久精品一区二区三区| 欧美性色19p| 国产精品mp4| 国产精品视频久久久| 成人激情av在线| 成人高清视频观看www| 欧美激情伊人电影| 国产精品678| 欧美激情一级二级| 国产成人精品日本亚洲专区61| 亚洲综合中文字幕在线| 成人福利在线视频| 欧美成人免费全部| 欧美成人午夜激情视频| 亚洲天堂av在线免费| 国产精品一区av| 91午夜理伦私人影院| 91精品在线国产| 欧美国产日本在线| 黑人与娇小精品av专区| 亚洲欧美激情另类校园| 国产一区二区三区精品久久久| 欧美劲爆第一页| 日韩欧美第一页| 国产精品久久久av久久久| 国产噜噜噜噜噜久久久久久久久| 亚洲自拍欧美色图| 欧亚精品中文字幕| 国内精品久久久久久影视8| 国产精品久久久久久五月尺| 色av吧综合网| 91久久久在线| 国产精品电影久久久久电影网| 成人中心免费视频| 8090理伦午夜在线电影| 日本精品免费观看| 久久成人精品视频| 日韩国产激情在线| 欧美日韩ab片| 中文字幕在线看视频国产欧美在线看完整| 欧美国产日韩一区二区| 4438全国成人免费| 国内揄拍国内精品少妇国语| 国产精品啪视频| 亚洲影影院av| 日韩精品中文字幕在线| 欧美一级淫片aaaaaaa视频| 国产精品xxxxx| 国产欧美日韩中文字幕在线| 国产99久久精品一区二区 夜夜躁日日躁| 欧美xxxx做受欧美.88| 日本一区二区三区在线播放| 91精品综合久久久久久五月天| 精品丝袜一区二区三区| 97人人爽人人喊人人模波多| 亚洲自拍偷拍网址| 欧美日韩国产精品一区二区三区四区| 亚洲最新中文字幕| 久久久久久久久91| 精品五月天久久| 欧洲s码亚洲m码精品一区| 午夜精品一区二区三区在线视| 亚洲精品国产品国语在线| 欧美性感美女h网站在线观看免费| 毛片精品免费在线观看| 成人性生交xxxxx网站| 国产精品专区第二| 97视频免费看| 日韩亚洲成人av在线| 国产欧美婷婷中文| 久久久久久久久久婷婷| 成人黄色av播放免费| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕免费精品一区| 色综合久久精品亚洲国产| 日韩精品在线电影| 亚洲欧美日韩中文在线制服| 国产亚洲美女久久| 国产精品美女在线观看| 夜夜嗨av色一区二区不卡| 国产精品久久99久久| 97香蕉超级碰碰久久免费软件| 欧美在线国产精品| 国产精品成人国产乱一区| 国产一区二区丝袜高跟鞋图片| 91亚洲国产成人久久精品网站| 日韩在线中文字幕| 久久久影视精品| 国产一区二区三区视频在线观看| 国产成人jvid在线播放| 性亚洲最疯狂xxxx高清| 日韩精品久久久久久福利| 国产精品视频在线观看| 4388成人网| 欧美精品一区二区三区国产精品| 国产视频精品一区二区三区| 2020久久国产精品| 亚洲天堂av在线免费| 久久精品视频一| 欧美激情视频一区| 91久久国产综合久久91精品网站| 国产欧洲精品视频| 中文字幕国产亚洲2019| 成人激情视频免费在线| 亚洲精品自拍第一页| 粉嫩av一区二区三区免费野| 亚洲天堂男人的天堂| 日本欧美精品在线| 大量国产精品视频| 亚洲精品免费一区二区三区| 欧美精品videossex88| 色偷偷偷亚洲综合网另类| 国产精品专区h在线观看| 搡老女人一区二区三区视频tv| 国产福利视频一区| 亚洲国产精品久久91精品| 亚洲最大av网| 精品视频在线导航| 2019中文字幕在线观看| 97在线视频观看| 国产成人精品久久亚洲高清不卡| 欧美精品在线第一页| 欧美性色视频在线|