JAVA 實現《超級瑪麗升級版》遊戲
public class Enemy implements Runnable{
// 座標
private int x;
private int y;
// 初始座標
private int startx;
private int starty;
// 怪物型別
private int type;
// 顯示圖片
private BufferedImage showImage;
// 移動方向
private boolean isLeftOrUp = true;
// 移動範圍
private int upMax = 0;
private int downMax = 0;
// 加入執行緒
private Thread t = null;
// 定義圖片變化
private int imageType = 0;
// 定義所在場景
private BackGround bg ;
// 蘑菇怪
public Enemy(int x,int y,boolean isLeft,int type,BackGround bg){
this.x = x;
this.y = y;
this.startx = x;
this.starty = y;
this.isLeftOrUp = isLeft;
this.type = type;
this.bg = bg;
if(type==1){
this.showImage = StaticValue.allTriangleImage.get(0);
}
this.t = new Thread(this);
t.start();
t.suspend();
}
// 食人花
public Enemy(int x,int y,boolean isUp,int type,int upMax,int downMax,BackGround bg){
this.x = x;
this.y = y;
this.startx = x;
this.starty = y;
this.isLeftOrUp = isUp;
this.type = type;
this.upMax = upMax;
this.downMax = downMax;
this.bg = bg;
if(type==2){
this.showImage = StaticValue.allFlowerImage.get(0);
}
this.t = new Thread(this);
t.start();
t.suspend();
}
public void run() {
while(true){
// 判斷怪物型別
if(type==1){
if(this.isLeftOrUp){
this.x -= 5;
}else{
this.x += 5;
}
if(imageType==0){
imageType = 1;
}else{
imageType = 0;
}
// 定義標記
boolean canLeft = true;
boolean canRight = true;
for(int i=0;i<this.bg.getAllObstruction().size();i++){
Obstruction ob = this.bg.getAllObstruction().get(i);
// 不能向右移動
if(ob.getX()==this.x+60 && (ob.getY()+50>this.y && ob.getY()-50<this.y)){
canRight =跟單網gendan5.com false;
}
// 不能向左移動
if(ob.getX()==this.x-60 && (ob.getY()+50>this.y && ob.getY()-50<this.y)){
canLeft = false;
}
}
if(!canLeft && this.isLeftOrUp || this.x == 0){
this.isLeftOrUp = false;
}else if(!canRight && !this.isLeftOrUp || this.x == 840){
this.isLeftOrUp = true;
}
this.showImage = StaticValue.allTriangleImage.get(imageType);
}
if(type==2){
if(this.isLeftOrUp){
this.y -=5;
}else{
this.y +=5;
}
if(imageType==0){
imageType = 1;
}else{
imageType = 0;
}
if(this.isLeftOrUp && this.y == this.upMax){
this.isLeftOrUp = false;
}
if(!this.isLeftOrUp && this.y == this.downMax){
this.isLeftOrUp = true;
}
this.showImage = StaticValue.allFlowerImage.get(imageType);
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void reset(){
// 還原座標
this.x = this.startx;
this.y = this.starty;
// 還原圖片
if(this.type == 1){
this.showImage = StaticValue.allTriangleImage.get(0);
}else if(this.type == 2){
this.showImage = StaticValue.allFlowerImage.get(0);
}
}
public void dead(){
// 死亡圖片
this.showImage = StaticValue.allTriangleImage.get(2);
this.bg.getAllEnemy().remove(this);
this.bg.getRemoveEnemy().add(this);
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public BufferedImage getShowImage() {
return showImage;
}
public void setBg(BackGround bg) {
this.bg = bg;
}
public int getType() {
return type;
}
public void startMove(){
t.resume();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2910812/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python實現超級瑪麗遊戲系列教程01瑪麗登場Python遊戲
- python實現超級瑪麗小遊戲(動圖演示+原始碼分享)Python遊戲原始碼
- Scratch(五):Scratch小遊戲之超級瑪麗遊戲
- NOI1.1題庫——超級瑪麗
- 如何用 Python 實現超級瑪麗的介面和狀態機?Python
- [藍橋杯][演算法提高VIP]超級瑪麗演算法
- java實現“資料平滑升級”Java
- 超級瑪麗啟示錄:曾風靡全球的FC小遊戲,為何能征服億萬人的心?遊戲
- 超級英雄遊戲需要拋棄「現實主義」遊戲
- Java工程師【2020升級版】Java工程師
- iOS 小遊戲專案——數字速算升級版iOS遊戲
- nginx實現平滑升級Nginx
- flyway實現java 自動升級SQL指令碼JavaSQL指令碼
- 超級瑪麗中那些不為人知的細節(下):碰撞與跳躍
- python tkinter 超級瑪麗原始碼下載顏色碰撞檢測試程式.pyPython原始碼
- Redis分散式鎖升級版RedLock及SpringBoot實現Redis分散式Spring Boot
- FPGA -- SPI 時序實現(超級靈活,超級好用)FPGA
- 超級瑪麗中那些不為人知的細節(上)慣性與衝刺
- 為實現電動車長途旅行,特斯拉超級充電站將大幅升級
- PC遊戲商店競爭再升級,Epic商店MAU已超6100萬遊戲
- 遊戲:下一個超級平臺遊戲
- 如何實現OpenHarmony的OTA升級
- 互動內容的遊戲化“升級”遊戲
- 如何做出“好玩”的小遊戲?——升級遊戲體驗遊戲
- 甜品狂潮,升級首選!耕升RTX 4060全系列GPU今日正式釋出,DLSS 3為遊戲提供超級動力GPU遊戲
- 微信小遊戲程式碼包侵權解決方案升級版遊戲
- 小米遊戲本和增強版區別對比 小米遊戲本增強版升級了什麼?遊戲
- java 8 - java 17 升級指北Java
- 升級win10玩遊戲卡怎麼辦 win10升級後玩遊戲特卡處理方法Win10遊戲
- 技術升級 & 行業升級,TiDB + 易車打造超級汽車狂歡節行業TiDB
- 揭秘:如何為 Kubernetes 實現原地升級
- 用node實現一個簡單的聊天室—— 升級版
- SpringCloud升級之路2020.0.x版-30. FeignClient 實現重試SpringGCCloudclient
- (十二).NET6 + React :升級!升級!還是***升級!!!+ IdentityServer4實戰ReactIDEServer
- windows10升級後打遊戲卡頓怎麼辦 win10升級後打遊戲很卡修復方法Windows遊戲Win10
- Android Target 31 升級全攻略 —— 記阿里首個超級 App 的坎坷升級之路Android阿里APP
- 大資料:小白升級版大資料
- Excel轉Json升級版-PythonExcelJSONPython