首页源码android游戏源码 求一个安卓开发小游戏源代码,临时交作业用

android游戏源码 求一个安卓开发小游戏源代码,临时交作业用

编程之家2023-10-31213次浏览

朋友们,你是否曾想过深入了解android游戏源码和求一个安卓开发小游戏源代码,临时交作业用的内涵?在本文中,我将为你详细解析这两个话题,希望能给你带来全新的视角和思考。

android游戏源码 求一个安卓开发小游戏源代码,临时交作业用

游戏软件怎么查看源代码

游戏都是进行过编译,加密的无法看到源代码。如果你想查看的游戏是开源的,可以到游戏的开源网站进行查看。

查看APP应用的源代码的具体方法步骤如下:

1、首先在电脑内下载并安装获取网页源码app。

2、然后单击打开网页源码APP并在APP中的输入框内输入想要查看的网址,再在界面内找到GO选项单并单击。

3、单击后等待APP最后加载3秒就可以成功的获取APP源代码并查看了。

Android系统源代码多大

android游戏源码 求一个安卓开发小游戏源代码,临时交作业用

是指sdk的源码,还是android操作系统的源码,不过都有10G左右,另外sdk的源码是用git管理的,一次下载后,用gitcheck就可以切换到各个版本。

AndroidSDK是用于开发Android上JAVA应用程序的,另外发布AndroidNDK,可以添加一些C语言写的链接库,至于Linux代码,可以在Android源代码中找到(SDK程序中只有编译好的测试映像)。

应用程序开发用不到Linux代码(搞嵌入式开发才会用到,而SDK不负责底层开发)。

怎样查看 Android APP源代码

将apk文件拷贝至sdcard上。

命令顺序如下:

进入Android sdk文件夹/tools目录下

android游戏源码 求一个安卓开发小游戏源代码,临时交作业用

输入adb shell

输入su

输入cd data

输入cd app

这时就可以看到你安装的所有的apk文件。输入cp空格对应的apk空格/sdcard/

这样就将apk文件拷贝出来了。

将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,

其中xml文件打开后都是二进制的,无法查看。

这时就用到了一个android4me的AXMLPrinter2工具。(请自行百度搜索)

输入以下命令,将xml文件解析出来

java-jar AXMLPrinter2.jar showtimes_list.xml

此命令是在命令行中查看此showtimes_list.xml

将showtimes_list.xml生成xml文件,则输入以下命令:

java-jar AXMLPrinter2.jar showtimes_list.xml> h.xml

目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。

这里用到了另一个工具dex2jar。(自行搜索下载)

在Windows下解压之后的目录如下图所示:

在命令行中,进入到此目录下:

在Windows下,输入以下命令:

dex2jar.bat c:\classes.dex

运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。

利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)

它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。

解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!

求一个安卓开发小游戏源代码,临时交作业用

package com.fiveChess;

import android.app.Activity;

import android.os.Bundle;

import android.view.Display;

import android.view.Menu;

import android.view.MenuItem;

import android.view.Window;

import android.view.WindowManager;

public class MainActivity extends Activity{

GameView gameView= null;

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

Display display= this.getWindowManager().getDefaultDisplay();

gameView= new GameView(this,display.getWidth(),display.getHeight());

setContentView(gameView);

}

@Override

public boolean onCreateOptionsMenu(Menu menu){

menu.add("重新开始").setIcon(android.R.drawable.ic_menu_myplaces);

menu.add("退出");

return super.onCreateOptionsMenu(menu);

}

@Override

public boolean onOptionsItemSelected(MenuItem item){

if(item.getTitle().equals("重新开始")){

gameView.canPlay= true;

gameView.chess= new int[gameView.row][gameView.col];

gameView.invalidate();

}else if(item.getTitle().equals("退出")){

finish();

}

return super.onOptionsItemSelected(item);

}

}

package com.fiveChess;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Paint.Style;

import android.view.MotionEvent;

import android.view.View;

public class GameView extends View{

Context context= null;

int screenWidth,screenHeight;

String message="";//提示轮到哪个玩家

int row,col;//划线的行数和列数

int stepLength= 30;//棋盘每格间距

int[][] chess= null;//0代表没有棋子,1代表是黑棋,2代表白旗

boolean isBlack= true;

boolean canPlay= true;

public GameView(Context context,int screenWidth,int screenHeight){

super(context);

this.context= context;

this.screenWidth= screenWidth;

this.screenHeight= screenHeight;

this.message="黑棋先行";

row=(screenHeight-50)/stepLength+1;

col=(screenWidth-10)/stepLength+1;

chess= new int[row][col];

}

@Override

protected void onDraw(Canvas canvas){

super.onDraw(canvas);

Paint paint= new Paint();

paint.setColor(Color.WHITE);

canvas.drawRect(0, 0, screenWidth, screenHeight, paint);//画背景

paint.setColor(Color.BLUE);

paint.setTextSize(25);

canvas.drawText(message,(screenWidth-100)/2, 30, paint);//画最顶层的字

paint.setColor(Color.BLACK);

//画棋盘

for(int i=0;i<row;i++){

canvas.drawLine(10, 50+i*stepLength, 10+(col-1)*stepLength, 50+i*stepLength, paint);

}

for(int i=0;i<col;i++){

canvas.drawLine(10+i*stepLength,50,10+i*stepLength,50+(row-1)*stepLength, paint);

}

for(int r=0;r<row;r++){

for(int c=0;c<col;c++){

if(chess[r][c]== 1){

paint.setColor(Color.BLACK);

paint.setStyle(Style.FILL);

canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);

}else if(chess[r][c]== 2){

//画白棋

paint.setColor(Color.WHITE);

paint.setStyle(Style.FILL);

canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);

paint.setColor(Color.BLACK);

paint.setStyle(Style.STROKE);

canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);

}

}

}

}

@Override

public boolean onTouchEvent(MotionEvent event){

if(!canPlay){return false;}

float x= event.getX();

float y= event.getY();

int r= Math.round((y-50)/stepLength);

int c= Math.round((x-10)/stepLength);

if(r<0|| r>row-1|| c<0|| c>col-1){return false;}

if(chess[r][c]!=0){return false;}//若有棋子则不再画棋子了

if(isBlack){

chess[r][c]= 1;

isBlack= false;

message="轮到白棋";

}else{

chess[r][c]= 2;

isBlack= true;

message="轮到黑棋";

}

invalidate();

if(judge(r, c,0,1)) return false;

if(judge(r, c,1,0)) return false;

if(judge(r, c,1,1)) return false;

if(judge(r, c,1,-1)) return false;

return super.onTouchEvent(event);

}

private boolean judge(int r, int c,int x,int y){//r,c表示行和列,x表示在y方向上的偏移,y表示在x方向上的偏移

int count= 1;

int a= r;

int b= c;

while(r>=0&& r<row&& c>=0&& c<col&& r+x>=0&& r+x<row&& c+y>=0&& c+y<col&& chess[r][c]== chess[r+x][c+y]){

count++;

if(y>0){

c++;

}else if(y<0){

c--;

}

if(x>0){

r++;

}else if(x<0){

r--;

}

}

while(a>=0&& a<row&& b>=0&& b<col&& a-x>=0&& a-x<row&& b-y>=0&& b-y<col&& chess[a][b]== chess[a-x][b-y]){

count++;

if(y>0){

b--;

}else if(y<0){

b++;

}

if(x>0){

a--;

}else if(x<0){

a++;

}

}

if(count>=5){

String str="";

if(isBlack){

str="白棋胜利";

}else{

str="黑棋胜利";

}

new AlertDialog.Builder(context).setTitle("游戏结束").setMessage(str).setPositiveButton("重新开始", new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

chess= new int[row][col];

invalidate();

}

}).setNegativeButton("观看棋局", new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

canPlay= false;

}

}).show();

return true;

}

return false;

}

}

PS:五子棋,无需图片,直接在程序里画出来的。注意我发的是两个文件,一个activity,一个类文件,别把它当成一个文件了

文章到此结束,希望我们对于android游戏源码和求一个安卓开发小游戏源代码,临时交作业用的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。

在线教育系统源码(目前国内较好的在线教育平台有哪些)asp.net 空间,ASP和asp.net有什么区别的呢最主要的区别是什么呢