安卓小游戲源碼網(wǎng)(app游戲源碼)
本篇文章給大家談?wù)劙沧啃∮螒蛟创a網(wǎng),以及app游戲源碼對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、誰能給我一個(gè)手機(jī)游戲的源代碼啊
- 2、游戲源碼哪買的
- 3、哪里有APP、Android游戲開發(fā)及商業(yè)等源代碼?
- 4、請問哪里有android SRPG(SLG)戰(zhàn)棋類游戲源碼下載?求高手解答,萬分感謝!
- 5、開發(fā)手游的代碼
誰能給我一個(gè)手機(jī)游戲的源代碼啊
這個(gè)地址也有,不過直接給你吧,這樣比較好
先給你看看主要的類吧
package Game;
import DreamBubbleMidlet;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
public class Game extends GameCanvas implements Runnable {
protected DreamBubbleMidlet dreamBubbleMidlet;
protected Graphics g;
protected Image loadingImage;
protected Image pauseImage;
protected Image cursorImage;
protected Image jackStateImage;
protected Image johnStateImage;
protected Image numberImage;
protected Sprite cursor;
protected Sprite number;
protected LayerManager cursorManager;
protected LayerManager numberManager;
protected Hashtable bombTable;
protected Map map;
protected LayerManager gameLayerManager;
protected Role player;
protected Sprite playerGhost;
protected int screenWidth;
protected int screenHeight;
protected int delay = 50;
protected int[][] bornPlace;
protected int chooseIndex;
protected int stageIndex = 1;
protected int gameClock;
protected int loadPercent;
protected boolean isPause;
protected boolean isEnd;
protected boolean isPlaying;
protected boolean isLoading;
protected Thread mainThread;
public Game(DreamBubbleMidlet dreamBubbleMidlet) {
super(false);
this.setFullScreenMode(true);
this.dreamBubbleMidlet = dreamBubbleMidlet;
this.screenWidth = this.getWidth();
this.screenHeight = this.getHeight();
try {
this.loadingImage = Image.createImage("/Game/Loading.png");
this.pauseImage = Image.createImage("/Game/Pause.png");
this.cursorImage = Image.createImage("/Game/Cursor.png");
this.jackStateImage = Image.createImage("/State/JackState.png");
this.johnStateImage = Image.createImage("/State/JohnState.png");
this.numberImage = Image.createImage("/State/Number.png");
} catch (IOException e) {
e.printStackTrace();
}
this.g = this.getGraphics();
}
public void loadStage(int stage) {
this.isEnd = false;
this.isPause = false;
this.isPlaying = false;
this.gameLayerManager = new LayerManager();
this.cursorManager = new LayerManager();
this.numberManager = new LayerManager();
this.bombTable = new Hashtable();
this.cursor = new Sprite(this.cursorImage, 32, 32);
this.number = new Sprite(this.numberImage, 12, 10);
this.loadPercent = 20;
sleep();
loadMap(stage);
this.loadPercent = 40;
sleep();
loadPlayer();
this.loadPercent = 60;
sleep();
this.gameLayerManager.append(map.getBombLayer());
this.gameLayerManager.append(map.getBuildLayer());
this.gameLayerManager.append(map.getToolLayer());
this.gameLayerManager.append(map.getFloorLayer());
this.gameLayerManager.setViewWindow(0, -5, screenWidth,
Global.MAP_HEIGHT + 5);
this.cursorManager.append(cursor);
this.numberManager.append(number);
this.loadPercent = 80;
sleep();
this.loadPercent = 100;
sleep();
isPlaying = true;
}
public void run() {
while (!isEnd) {
long beginTime = System.currentTimeMillis();
this.drawScreen();
long endTime = System.currentTimeMillis();
if (endTime - beginTime this.delay) {
try {
Thread.sleep(this.delay - (endTime - beginTime));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public void loadMap(int stage) {
switch (stage) {
case 0:
this.map = new Map(Global.MAP_BLOCK);
this.bornPlace = Global.MAP_BLOCK_BORNPLACE;
break;
case 1:
this.map = new Map(Global.MAP_FACTORY);
this.bornPlace = Global.MAP_FACTORY_BORNPLACE;
break;
case 2:
this.map = new Map(Global.MAP_FOREST);
this.bornPlace = Global.MAP_FOREST_BORNPLACE;
break;
case 3:
this.map = new Map(Global.MAP_PIRATE);
this.bornPlace = Global.MAP_PIRATE_BORNPLACE;
break;
case 4:
this.map = new Map(Global.MAP_FAUBOURG);
this.bornPlace = Global.MAP_FAUBOURG_BORNPLACE;
break;
}
}
public void loadPlayer() {
this.player = SingleGameRole.createSingleGameRole(this, Global.JACK,
this.bornPlace[0][0], this.bornPlace[0][1]);
this.gameLayerManager.append(player);
try {
this.playerGhost = new Sprite(Image.createImage("/Character/Jack.png"),
this.player.width, this.player.height);
this.gameLayerManager.append(playerGhost);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void playerUpdate() {
if(!this.player.isAlive)
this.playerGhost.setVisible(false);
this.playerGhost.setFrame(this.player.getFrame());
this.player.updateRole();
}
public void bombUpdate() {
Enumeration enu = this.bombTable.keys();
while (enu.hasMoreElements()) {
String key = (String) enu.nextElement();
Bomb bomb = (Bomb) (bombTable.get(key));
if (bomb.isvisable) {
bomb.update();
} else {
bombTable.remove(key);
bomb = null;
}
}
}
public void mapUpdate() {
this.map.update();
}
public void drawScreen() {
if (gameClock 10000)
gameClock++;
else
gameClock = 0;
if (!this.isLoading) {
if (!isPause) {
this.operate();
this.bombUpdate();
this.playerUpdate();
this.mapUpdate();
g.setColor(0x000000);
g.fillRect(0, 0, getWidth(), getHeight());
this.drawState();
gameLayerManager.paint(g, 0, this.screenHeight
- Global.MAP_HEIGHT - 5);
} else {
this.drawPauseFrame();
}
} else {
this.drawLoadingFrame();
}
this.flushGraphics();
}
public void drawFailScreen() {
}
public void drawState() {
if (this.player.type == Global.JACK) {
g.drawImage(jackStateImage, 60, 5, Graphics.TOP | Graphics.LEFT);
}
if (this.player.type == Global.JOHN) {
g.drawImage(johnStateImage, 60, 5, Graphics.TOP | Graphics.LEFT);
}
this.number.setFrame(this.player.bombNums);
this.numberManager.paint(g, 101, 15);
this.number.setFrame(this.player.speed);
this.numberManager.paint(g, 133, 15);
this.number.setFrame(this.player.power);
this.numberManager.paint(g, 165, 15);
}
protected void drawPauseFrame() {
g.setColor(0x000000);
g.fillRect(0, 0, getWidth(), getHeight());
this.drawState();
if (gameClock % 5 == 0)
this.cursor.setFrame((this.cursor.getFrame() + 1) % 4);
this.gameLayerManager.paint(g, 0, this.screenHeight - Global.MAP_HEIGHT
- 5);
this.cursorManager.paint(g, screenWidth / 2 - pauseImage.getWidth() / 2
- 32, screenHeight / 2 - pauseImage.getHeight() / 2
+ this.chooseIndex * 33 + 24);
g.drawImage(pauseImage, screenWidth / 2, screenHeight / 2,
Graphics.HCENTER | Graphics.VCENTER);
}
protected void drawLoadingFrame() {
g.setColor(66, 70, 246);
g.fillRect(0, 0, screenWidth, screenHeight);
g.drawImage(loadingImage, screenWidth / 2, 2 * screenHeight / 5,
Graphics.HCENTER | Graphics.VCENTER);
g.setColor(0, 255, 0);
g.fillRect((screenWidth - 120) / 2, 2 * screenHeight / 3,
(this.loadPercent * 120) / 100, 10);
g.setColor(255, 0, 0);
g.drawRect((screenWidth - 120) / 2, 2 * screenHeight / 3, 120, 10);
}
public void showMe() {
new Loading(this.stageIndex);
if (this.mainThread == null) {
mainThread = new Thread(this);
mainThread.start();
}
this.dreamBubbleMidlet.show(this);
}
public void operate() {
int keyStates = getKeyStates();
this.playerGhost.setPosition(this.player.xCoodinate, this.player.yCoodinate);
if ((keyStates DOWN_PRESSED) != 0) {
this.player.walk(Global.SOUTH);
} else {
if ((keyStates UP_PRESSED) != 0) {
this.player.walk(Global.NORTH);
} else {
if ((keyStates RIGHT_PRESSED) != 0) {
this.player.walk(Global.EAST);
} else {
if ((keyStates LEFT_PRESSED) != 0) {
this.player.walk(Global.WEST);
}
}
}
}
}
protected void keyPressed(int key) {
if (!this.isPlaying)
return;
if (!this.isPause key == -7) {// 右鍵
this.chooseIndex = 0;
this.pauseGame();
return;
}
if (key == 35) {// #鍵
this.nextStage();
return;
}
if (key == 42) {// *鍵
this.preStage();
return;
}
if (this.isPause) {
switch (key) {
case -1:
case -3:
if (this.chooseIndex == 0)
this.chooseIndex = 2;
else
this.chooseIndex = (this.chooseIndex - 1) % 3;
break;
case -2:
case -4:
this.chooseIndex = (this.chooseIndex + 1) % 3;
break;
case -5:// 確認(rèn)鍵
case -6:// 左軟鍵
switch (chooseIndex) {
case 0:
this.continueGame();
break;
case 1:
this.restart();
break;
case 2:
this.endGame();
break;
}
break;
default:
break;
}
} else {
switch (key) {
case 53:
case -5:// 確認(rèn)鍵
this.player.setBomb(this.player.getRow(), this.player.getCol());
break;
}
}
}
public void restart() {
new Loading(this.stageIndex);
}
public void continueGame() {
this.isPause = false;
this.player.play();
}
public void pauseGame() {
this.isPause = true;
this.player.stop();
}
public void endGame() {
this.isEnd = true;
this.mainThread = null;
System.gc();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.dreamBubbleMidlet.menu.showMe();
}
public void nextStage() {
if (this.stageIndex 4) {
this.stageIndex++;
}
new Loading(this.stageIndex);
}
public void preStage() {
if (this.stageIndex 0) {
this.stageIndex--;
}
new Loading(this.stageIndex);
}
class Loading implements Runnable {
private Thread innerThread;
private int stageIndex;
public Loading(int stageIndex) {
this.stageIndex = stageIndex;
innerThread = new Thread(this);
innerThread.start();
}
public void run() {
isLoading = true;
loadPercent = 0;
System.gc();
loadStage(stageIndex);
isLoading = false;
}
}
public void sleep() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
這個(gè)是游戲主體類
下面是游戲的人物類
package Game;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
public abstract class Role extends Sprite {
/**
* 人物的基本屬性
*/
protected int type;
protected int xCoodinate;
protected int yCoodinate;
protected int row;
protected int col;
protected int width;
protected int height;
protected int speed;
protected int status;
protected boolean isCanOperate = false;
protected boolean isAlive = true;
/**
* 人物放置炸彈的基本屬性
*/
protected int power;
protected int bombNums;
protected int characterClock = 0;
protected int deadTime = 0;
protected Game game;
protected Role(Image image, int width, int Height, Game game) {
super(image, width, Height);
this.game = game;
}
/**
* 人物拾起道具
* @param tool
*/
public abstract void pickupTool(int tool);
/**
* 碰撞檢測以及坐標(biāo)的改變,如果對行走條件有特殊需求,既可以在這里寫自己的條件
* @param direction
*/
public abstract void collisionCheck(int direction);
public void updateRole() {
if (this.characterClock 10000) {
this.characterClock++;
} else {
this.characterClock = 100;
}
int row = this.getRow();
int col = this.getCol();
if (this.isAlive) {
int tool = this.game.map.getToolLayer().getCell(col, row);
if (tool 0) {
this.pickupTool(tool);
this.game.map.getToolLayer().setCell(col, row, 0);
}
if (this.game.map.hasFeature(row, col, Global.DEADLY)) {
this.isAlive = false;
return;
}
if (this.status == Global.BORN
this.characterClock Global.BORN_TIME) {
this.status = Global.SOUTH;
this.setFrame(Global.SOUTH * 6);
this.isCanOperate = true;
}
if (this.status == Global.BORN) {
if (this.characterClock % 2 == 0)
this.setFrame(Global.BORN * 6 + (this.getFrame() - 1) % 4);
return;
}
} else {
this.isCanOperate = false;
if (this.deadTime = 20) {
this.deadTime++;
} else {
this.deadTime = 100;
this.setVisible(false);
return;
}
if (this.characterClock % 2 == 0) {
if (this.getFrame() Global.DEAD * 6) {
this.setFrame(Global.DEAD * 6);
} else {
if (this.getFrame() 29) {
this.setFrame(this.getFrame() + 1);
} else {
if (this.characterClock % 4 == 0) {
this.setFrame(29);
this.setVisible(true);
} else {
this.setVisible(false);
}
}
}
}
}
}
public void walk(int direction) {
if (!isAlive)
return;
if (!isCanOperate)
return;
if(direction==9) return;
this.collisionCheck(direction);
if (this.characterClock % 2 == 0) {
if (this.status == direction) {
this.setFrame(this.status * 6 + (this.getFrame() + 1) % 6);
} else {
this.status = direction;
this.setFrame(this.status * 6);
}
}
this.setPosition(xCoodinate, yCoodinate);
}
public void stop() {
this.isCanOperate = false;
}
public void play() {
this.isCanOperate = true;
}
public abstract void setBomb(int row, int col);
public void increaseBomb() {
if (this.bombNums Global.MAX_BOMB_NUMBER)
this.bombNums++;
}
public int getRow() {
return getRow(getBottomY(yCoodinate) - Global.MAP_CELL / 2);
}
public int getCol() {
return getCol(xCoodinate + Global.MAP_CELL / 2);
}
protected int getBottomY(int y) {
return y + this.height - 1;
}
protected int getRightX(int x) {
return x + Global.MAP_CELL - 1;
}
protected int getPreY(int y) {
return getBottomY(y) + 1 - Global.MAP_CELL;
}
protected int getRow(int x) {
return x / Global.MAP_CELL;
}
protected int getCol(int y) {
return y / Global.MAP_CELL;
}
}
我的QQ是609419340
看不明白的可以隨時(shí)來問我哦,還可以當(dāng)時(shí)傳給你撒
游戲源碼哪買的
百度、長游分享網(wǎng)。
游戲源碼可以在百度、長游分享網(wǎng)購買。他們的源碼都是經(jīng)過人工審核上架的,價(jià)格實(shí)惠,如果沒有你想要的源碼,可以去他們的在線求助求,有人發(fā)如果能用就會上架的。
游戲源碼是指可編譯運(yùn)行出游戲的代碼。源代碼:是代碼的分支,某種意義上來說,源代碼相當(dāng)于代碼?,F(xiàn)代程序語言中,源代碼可以書籍或磁帶形式出現(xiàn),但最為常用格式是文本文件,這種典型格式的目的是為了編譯出計(jì)算機(jī)程序。
哪里有APP、Android游戲開發(fā)及商業(yè)等源代碼?
github:各種源碼都有。
國內(nèi)其他網(wǎng)站的源碼,大部分比較欄,但大部分都收費(fèi)。游戲的源碼你就別想了,爛的一點(diǎn)也沒法用,只有app的源碼,可以參考一些技術(shù)點(diǎn)的實(shí)現(xiàn)。
請問哪里有android SRPG(SLG)戰(zhàn)棋類游戲源碼下載?求高手解答,萬分感謝!
搜素開源項(xiàng)目
google代碼搜索
開源代碼搜索
android現(xiàn)在是社交,小工具之類的開源多
開發(fā)手游的代碼
4.1游戲的的思路、構(gòu)想
4.1.1游戲想法的產(chǎn)生
相信大家一定都在8位機(jī)機(jī)上玩過《冒險(xiǎn)島》這款游戲,非常有趣味性。
游戲中玩家通過不斷的闖關(guān),來解救公主。在每個(gè)關(guān)都很很多的怪物阻擋著你,所以需要運(yùn)用各種機(jī)關(guān)或者秘籍來殺死它們。殺死他們的同時(shí)還可以獲得各種獎勵(lì),加生命,加血等,增加了游戲的趣味性。
如圖2所示:
這款《冒險(xiǎn)島》游戲的實(shí)現(xiàn)相對于其他RPG或者網(wǎng)絡(luò)版手機(jī)游戲稍簡單一些,適合初學(xué)者作為練習(xí),所以我決定編寫一款類似的手機(jī)游戲。
由于之前對手機(jī)游戲的編程知識以及游戲的設(shè)計(jì)只有初步的了解,因此,我們在游戲的構(gòu)架和思路上經(jīng)歷了幾個(gè)階段。
這款《冒險(xiǎn)島》游戲的實(shí)現(xiàn)相對于其他RPG或者網(wǎng)絡(luò)版手機(jī)游戲稍簡單一些,適合初學(xué)者作為練習(xí),所以我決定編寫一款類似的手機(jī)游戲。
由于之前對手機(jī)游戲的編程知識以及游戲的設(shè)計(jì)只有初步的了解,因此,我們在游戲的構(gòu)架和思路上經(jīng)歷了幾個(gè)階段。
4.1.2對游戲設(shè)計(jì)的初步認(rèn)識
剛開始我們只對J2ME有初步的了解。這時(shí)我們只是模仿之前在PC上看到的游戲,用語言把游戲的實(shí)現(xiàn)感性的描述為幾大部分:
游戲界面系統(tǒng):包括游戲開始界面;游戲開局界面;游戲運(yùn)行界面;游戲結(jié)束界面。
游戲元素:菜單類;畫布類;人物類;排行榜類。
4.1.3模塊成型階段
在進(jìn)一步熟悉了J2ME知識后,對框架做出了一些修改,逐步把游戲的基本功能確定。游戲依次進(jìn)入加載界面;主菜單;游戲運(yùn)行界面;游戲結(jié)束界面。
具體實(shí)現(xiàn)的功能為:
1.主菜單,有如下選項(xiàng):
(1)開始游戲——進(jìn)入游戲界面。
(2)聲音——設(shè)置聲音的有無選項(xiàng)。
(3)幫助——介紹游戲的玩法。
(4)排行榜——玩家所得分?jǐn)?shù)的排行榜。
(5)關(guān)于——用來顯示說明信息以及背景圖片。
2.游戲運(yùn)行界面,包括:
游戲界面;目前游戲得分;游戲關(guān)數(shù);生命次數(shù);
3.游戲結(jié)束界面:游戲結(jié)束后,顯示一行說明信息,然后退回到菜單。
游戲的主要模塊為:
1.游戲主MIDlet(GameMIDlet)——對游戲生命周期的判斷;對畫布類的調(diào)用;管理游戲程序中各個(gè)屏幕之間的轉(zhuǎn)換。
2.游戲畫布(MyGame)——對游戲所用變量,常量的設(shè)定;游戲的初始化;游戲中精靈運(yùn)動軌跡的控制;精靈與磚塊的碰撞檢測以及磚塊狀態(tài)的控制;游戲中各關(guān)卡的基本設(shè)定;游戲中對按鍵狀態(tài)的處理。
3.菜單類——游戲中菜單事件的處理。
4.GameOgre類——游戲中怪物的類。
5.GamePlayer類——玩家控制的精靈類。
6.GameRMS類——用于實(shí)現(xiàn)分?jǐn)?shù)排行榜。
7.PlayMusic類——用于實(shí)現(xiàn)音樂的播放。
8.MySet類——聲音大小的設(shè)置。
4.2 程序的類結(jié)構(gòu)
程序一共有8個(gè)主要類,其中菜單類負(fù)責(zé)各個(gè)屏幕的切換。程序的類結(jié)構(gòu)如圖3所示:
4.3 游戲的流程圖
進(jìn)入游戲菜單。初始情況下,游戲菜單有5個(gè)選項(xiàng),它們分別是開始游戲、游戲說明和排行榜、設(shè)置、關(guān)于。選擇開始新游戲則進(jìn)入游戲,在游戲中如果按下非游戲鍵則中斷游戲返回菜單,此時(shí)菜單中增加了一個(gè)繼續(xù)游戲的選項(xiàng),可以返回游戲也可以重新開始新的游戲。在菜單中選擇游戲說明或者高分記錄,則進(jìn)入相應(yīng)的屏幕,他們都能用“后退”軟鍵返回菜單。菜單中的退出選項(xiàng)用于退出程序。游戲的流程如圖4所示:
4.4.1主類GameMIDlet的實(shí)現(xiàn)
MIDlet是最核心的類。MIDlet程序有三種狀態(tài):
1.暫停狀態(tài)
2.運(yùn)行狀態(tài)
3.銷毀狀態(tài)
J2ME程序都是從MIDlet類開始執(zhí)行,系統(tǒng)在執(zhí)行MIDlet程序時(shí),首先構(gòu)造一個(gè)MIDlet類型的對象,然后使程序進(jìn)入到暫停狀態(tài),按照生命周期的規(guī)定,系統(tǒng)會自動調(diào)用MIDlet對象的startApp方法使程序進(jìn)入到運(yùn)行狀態(tài),開始程序的執(zhí)行。
下圖是運(yùn)行時(shí)顯示的畫布對象:
首先,先要創(chuàng)建MIDlet類型的對象,下面我們來看對象的構(gòu)造方法:
//主程序構(gòu)造方法
public GameMIDlet()
{
rs = null;
RecordName = “GameRMS”;
GameMenu.display = Display.getDisplay(this) ;
GameMenu.midlet = this;
}
java
開發(fā)語言
oppo手機(jī)型號及價(jià)格
精選推薦
廣告
JAVA基于J2ME的手機(jī)游戲開發(fā)(文檔+源代碼).zip
0下載·0評論
2022年1月27日
JAVA基于J2ME的手機(jī)游戲開發(fā)免費(fèi)
717閱讀·0評論·0點(diǎn)贊
2022年8月23日
JAVA五子棋手機(jī)網(wǎng)絡(luò)對戰(zhàn)游戲的設(shè)計(jì)與實(shí)現(xiàn)(源代碼+論文)
568閱讀·2評論·0點(diǎn)贊
2022年12月5日
J2ME手機(jī)游戲引擎程序結(jié)構(gòu)簡述
170閱讀·0評論·0點(diǎn)贊
2021年9月12日
最新45款Java手機(jī)游戲開發(fā)源代碼免費(fèi)下載
10下載·0評論
2019年3月4日
經(jīng)典50個(gè)Java手機(jī)游戲源碼.7z
3下載·0評論
2022年7月8日
無敵版游戲下載
精選推薦
廣告
java手機(jī)小游戲源碼_Java手機(jī)版數(shù)獨(dú)小游戲(J2me)JAVA游戲源碼下載
435閱讀·0評論·0點(diǎn)贊
2021年3月14日
java 300行代碼 冒險(xiǎn)闖關(guān)小游戲(代碼+講解)
2637閱讀·1評論·6點(diǎn)贊
2022年9月9日
java俄羅斯方塊代碼_【俄羅斯方塊java】分享一個(gè)Java寫的俄羅斯方塊源碼 算法簡單(300行) 注釋詳細(xì)!...
304閱讀·0評論·0點(diǎn)贊
2021年3月5日
java小游戲源碼_分享幾款java小游戲源碼
4921閱讀·0評論·4點(diǎn)贊
2021年3月5日
java手機(jī)游戲開發(fā)如何_用JAVA開發(fā)手機(jī)游戲需要如何構(gòu)建開發(fā)環(huán)境?
1209閱讀·0評論·0點(diǎn)贊
2021年2月26日
《精通Java手機(jī)游戲與應(yīng)用程序設(shè)計(jì)》源碼
35閱讀·0評論·0點(diǎn)贊
2022年3月24日
java怎么制作游戲,看完這篇徹底明白了
4803閱讀·0評論·2點(diǎn)贊
2021年6月29日
泡泡堂代碼 JAVA_Java手機(jī)游戲泡泡堂源碼
566閱讀·0評論·1點(diǎn)贊
2021年3月14日
十款經(jīng)典游戲的Java版本(開源)
19.0W閱讀·95評論·214點(diǎn)贊
2014年12月7日
飛翔的小鳥--Java小游戲?qū)崙?zhàn)(代碼完整)
1.1W閱讀·13評論·50點(diǎn)贊
2021年4月5日
Vue——獲取后端json數(shù)據(jù)中的URL并通過按鈕跳轉(zhuǎn)到此URL
1683閱讀·4評論·0點(diǎn)贊
2021年2月5日
java安卓游戲源碼下載_77個(gè)安卓游戲 android源碼
801閱讀·0評論·0點(diǎn)贊
2021年3月15日
去首頁
看看更多熱門內(nèi)容
關(guān)于安卓小游戲源碼網(wǎng)和app游戲源碼的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。