首页 生活指南 正文内容

android游戏源码(android小游戏源码)

阿立指南 生活指南 2022-11-11 01:11:09 547 0

哪里有APP、Android游戏开发及商业等源代码?

github:各种源码都有。

国内其他网站的源码,大部分比较栏,但大部分都收费。游戏的源码你就别想了,烂的一点也没法用,只有app的源码,可以参考一些技术点的实现。

android游戏源码(android小游戏源码) 第1张

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

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;irow;i++){

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

}

for(int i=0;icol;i++){

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

}

for(int r=0;rrow;r++){

for(int c=0;ccol;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(r0 || rrow-1 || c0 || ccol-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 rrow c=0 ccol r+x=0 r+xrow c+y=0 c+ycol chess[r][c] == chess[r+x][c+y]){

count++;

if(y0){

c++;

}else if(y0){

c--;

}

if(x0){

r++;

}else if(x0){

r--;

}

}

while(a=0 arow b=0 bcol a-x=0 a-xrow b-y=0 b-ycol chess[a][b] == chess[a-x][b-y]){

count++;

if(y0){

b--;

}else if(y0){

b++;

}

if(x0){

a--;

}else if(x0){

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,一个类文件,别把它当成一个文件了

游戏软件怎么查看源代码?

源代码是看不成的,因为游戏软件打包好做成app的话,是没法看源码的,虽然存在一些特殊情况下,我们可以推测出exe程序是用什么程序写的。但是多数情况下,我们是无法只根据一个exe程序就判断出来的。

根据exe程序我们是无法直接得到程序的源码的。虽然也有一些用于逆向工程的办法,但那不可能把已经是exe的程序反回到它原始的源码情况。而且这些工具都很难用。你可以用“反编译”搜到很多工具,但是说实话,即便是这方面的专家,要看懂反编译以后的程序也不是一件轻松的事情。

github 上有什么价值的android 源码

1. ActionBarSherlock

ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。

对于Android

4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于

Ice Cream Sandwich的自定义动作栏实现将自动围绕布局。能够让开发者轻松开发一款带动作栏(Action

bar)的应用,并且适用于Android 2.x及其以上所有版本。

详情请参考:ActionBarSherlock

2. facebook-android-sdk

Facebook SDK for Android是一个开源库,允许开发者将Facebook集成到所开发的Android应用中。

如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Facebook Developers查看。

3. SlidingMenu(SlidingMenu Demos)

SlidingMenu是一个开源的Android库,能够让开发者轻松开发一款应用,实现类似于Google+、Youtube和Facebook应用中非常流行的滑动式菜单。

使用SlidingMenu的Android应用:

Foursquare

Rdio

Plume

VLC for Android

ESPN ScoreCenter

MLS MatchDay

9GAG

Wunderlist 2

The Verge

MTG Familiar

Mantano Reader

Falcon Pro (BETA)

MW3 Barracks

4. cocos2d-x

在移动开发领域,将Cocos2D-X用于主流iOS/Android游戏开发的公司、开发团队多不胜数。cocos2d-x是一个开源的支持多平

台的2D游戏框架,使用C++开发,基于cocos2d-iphone,在MIT许可证下发布。主分支在GitHub上使用OpenGL ES

2.0渲染,而旧版gles11分支则使用OpenGL ES 1.1渲染。

支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。支持C++、Lua、JavaScript编程语言。

5. android

GitHub Android App是

GitHub开源的Android客户端,支持Issues、Gists,并集成了新闻Feed,能够让你及时跟进组织及关注的开发者、库等。同时,该应

用还提供了一个用户快速访问你所创建、监控及发布issue的面板,可查看并将问题加入到收藏夹,可对标签、里程碑和任务进行过滤配置。

android资源库包含了GitHub Android App的所有源代码。

6. Android-ViewPagerIndicator

ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面。

兼容Android支持库的ViewPager及ActionBarSherlock,最初是基于Patrik Åkerfeldt的ViewFlow,开发者可以直接登陆Google Play下载该项目的演示应用。

7. MonoGame

MonoGame是一个Microsoft XNA 4.x Framework的开源跨平台实现。用于让XNA开发者将他们在Xbox

360、Windows Windows Phone上开发的游戏移植到iOS、Android、Mac OS

X、Linux及Windows 8 Metro上,目前,PlayStation Mobile Raspberry

PI的开发正在进行中。

详情请参考:MonoGame

8. Android-PullToRefresh

该项目用于为Android提供一个可重用的下拉刷新部件。它最初来源于Johan Nilsson的库(主要是图形、字符串和动画),但这些后来都已被取代。

9. android-async-http

android-async-http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。

10. Android-Universal-Image-Loader

Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。

Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。

11. GreenDroid

GreenDroid最初是由Cyril Mottier发起,是一个Android的UI开发类库,能够让UI开发更加简便,并且在应用中始终保持一致。

详情请参考:Cyril Mottier's Blog

12. Anki-Android

AnkiDroid是一个免费、开源的Android的闪存应用,可直接从Google Play进行下载。

详情请参考:ankidroid

13. android-actionbar

Action

bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当开发者需要突出展现用户行为或在全局导航的

activity中使用action bar,因为action

bar能够使应用程序给用户提供一致的界面,且系统能够很好地根据不同的屏幕配置来适应操作栏的外观。

Action bar的主要目的:

提供一个用于识别应用程序的标示和用户的位置的专用空间。

在不同的应用程序之间提供一致的导航和视觉体验。

突出Activity的关键操作,并且在可预见的方法内给用户提供快捷的访问。

14. android-viewflow

android-viewflow是Android平台上的一个视图切换的效果库,ViewFlow相当于Android UI部件提供水平滚动的ViewGroup,使用Adapter进行条目绑定。

15. android-mapviewballoons

当使用Android地图外部库(com.google.android.maps)时,android-mapviewballoons会提供一个简单的方式来对地图覆盖进行标注,就是一个简单的信息气泡。

它由BalloonOverlayView组成,是一个代表显示你的MapView及BalloonItemizedOverlay的气泡的视图,BalloonItemizedOverlay是ItemizedOverlay的一个抽象扩展。

16. PushSharp

一个向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone和Windows 8设备发送推送通知的服务器端库。

17. androidannotations

Android Annotations是一个开源的框架,用于加速 Android应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性。

18. HockeyKit

Hockey是一个iOS Ad-Hoc自动更新框架。苹果App

Store中的所有App都可以使用它,它能够显著地提高Beta测试的整个过程,分为两部分:服务器和客户端框架。服务器组件需要所有脚本,但在没有客

户端库的情况下,也可以单独工作。它提供一个Web接口,Beta测试者可以使用它来安装最新的AdHoc配置文件,也可以直接在设备上通过Safari

安装最新的Beta版本。

只需在服务器上安装一次服务端,就可以处理包标识符不同的多个应用程序(有开发者强烈建议对Debug、AdHoc Beta和AppStore发布版使用不同的包标识符)。

默认当App启动或唤醒时,客户端会从服务器检测更新,用户可以在设置对话框中进行修改:一天一次或手动检查更新。

除了支持iOS,HokeyKit也支持Android平台,不过Android版还处在Alpha阶段,支持OTA及应用内更新。

为HockeyKit用户提供服务器托管服务。

19. android-menudrawer

Android上的菜单展示风格各异,其中用得最多且体验最好的莫过于左右滑动来显示隐藏的菜单,android-menudrawer是一个滑动

式菜单实现,允许用户在应用当中实现无缝导航。该项目具有多种菜单展示效果,其中最常见的就是通过屏幕边缘拖动或点击动作栏的“向上”按钮显示。

实现功能:

菜单可以沿着四个边放置。

支持附加一个始终可见、不可拖动的菜单。

菜单的内容和整个窗口都可以隐藏。

可用于XML布局。

显示当前可见屏幕的指示器。

20. android-flip

Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。

欢迎 发表评论:

文章目录
    搜索