android 游戏代码,Android小游戏实现代码

Android课程设计作品,一个小游戏,使用传感器控制小鲸鱼的游动,避免被水面上捕鲸船的鱼枪捕到,针对屏幕为800*480的屏幕设计。

主进程:

package

game.whale;

import android.app.Activity;

import android.content.pm.ActivityInfo;

import android.graphics.Rect;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.MotionEvent;

import android.view.View;

import android.view.Window;

import android.view.WindowManager;

public class Whale extends Activity {

Rect rectStart;// 开始游戏按钮区域

Rect rectExit;// 退出游戏按钮区域

Rect gvRectStart;// GameView中游戏结束时绘制的重新开始游戏按钮

Rect gvRectExit;// GameView中游戏结束时绘制的退出游戏按钮

Rect gvRectBacktoMain;// GameView中绘制的游戏结束时返回主菜单按钮

Rect rectAbout;

Rect helpRectBack;//HelpView中返回主菜单按钮

View currView;// 当前显示的View

WelcomeView wv;// 欢迎View

GameView gv;// 游戏View

HelpView hv;//关于View

SensorManager mySensorManager;

WhaleListener whaleListener;

Handler myHandler = new Handler() {

public void handleMessage(Message msg) {

switch (msg.what) {

case 0:// 0为收到WelcomeView开始游戏命令

gv = new GameView(Whale.this);

setContentView(gv);

currView = gv;

startSensor();

wv = null;

break;

case 1:// 1为收到WelcomeView退出游戏命令

System.exit(0);

break;

case 2://2为收到GameView重新开始游戏命令

gv.shutAllThreads();

gv=null;

gv=new GameView(Whale.this);

setContentView(gv);

currView=gv;

break;

case 3://3为收到GameView的返回主菜单命令

gv.shutAllThreads();

wv=new WelcomeView(Whale.this);

setContentView(wv);

currView=wv;

pauseSensor();

gv=null;

break;

case 4://4为收到GameView的退出游戏命令

System.exit(0);

break;

case 5://收到WelcomeView关于按钮按下命令

hv=new HelpView(Whale.this);

setContentView(hv);

currView=hv;

wv=null;

break;

case 6://收到HelpView关于返回主菜单的命令

//hv.ht.run=false;

wv=new WelcomeView(Whale.this);

setContentView(wv);

currView=wv;

hv=null;

break;

}

}

};

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置全屏

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

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//禁止锁屏

wv = new WelcomeView(Whale.this);

setContentView(wv);

currView = wv;

whaleListener = new WhaleListener(Whale.this);

mySensorManager = (SensorManager)

getSystemService(SENSOR_SERVICE);

initRect();

}

public void initRect() {

rectStart = new Rect(313, 120, 487, 160);

rectExit = new Rect(313, 320, 487, 360);

gvRectStart = new Rect(70, 400, 244, 440);

gvRectBacktoMain = new Rect(314, 400, 488, 440);

gvRectExit = new Rect(558, 400, 732, 440);

rectAbout=new Rect(313,220,487,260);

helpRectBack=new Rect(313,320,487,360);

}

public void startSensor() {

mySensorManager.registerListener(whaleListener,

SensorManager.SENSOR_ORIENTATION,

SensorManager.SENSOR_DELAY_GAME);

}

public void pauseSensor() {

mySensorManager.unregisterListener(whaleListener);

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

pauseSensor();

super.onPause();

}

@Override

public boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_UP) {

int x = (int) event.getX();

int y = (int) event.getY();

if (currView == wv) {

if (rectStart.contains(x, y)) {

wv.status = 1;

wv.selectIndex = 0;

} else if (rectExit.contains(x, y)) {

wv.status = 2;

wv.selectIndex = 1;

}else{

if(rectAbout.contains(x, y)){

wv.status=4;

wv.selectIndex=5;

}

}

} else {

if(currView==gv){

if(gv.status==1){

if(gvRectStart.contains(x, y)){

gv.buttonStatus=1;

gv.selectIndex=2;

}else{

if(gvRectBacktoMain.contains(x, y)){

gv.buttonStatus=2;

gv.selectIndex=3;

}else{

if(gvRectExit.contains(x,y)){

gv.buttonStatus=3;

gv.selectIndex=4;

}

}

}

}

}else{

if(currView==hv){

if(helpRectBack.contains(x, y)){

hv.status=1;

hv.selectIndex=6;

}

}

}

}

}

return true;

}

}

刚进入程序时的主界面,即欢迎界面:

package

game.whale;

import android.content.Context;

import android.content.res.Resources;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.SurfaceHolder.Callback;

public class WelcomeView extends SurfaceView implements Callback

{

Whale whale;

WelcomeDrawThread wdt;

Bitmap bmpBacKScreen;//背景图片

Bitmap bmpStartGame;//开始图片按钮区

Bitmap bmpStartGameClick;//开始游戏按下后的按钮

Bitmap bmpExitGame;//退出图片按钮区

Bitmap bmpExitGameClick;//退出游戏按钮按下后图片

Bitmap bmpAbout;//关于帮助按钮图片

Bitmap bmpAboutClick;//关于帮助图片按下时图片

int selectIndex=-1;//用于向Whale发送消息,0表示按了开始,1表示按了退出,5表示按下关于

int

status=-1;//状态值,0表示待命,1表示开始按钮按下,2表示退出按钮按钮,3表示显示加载中,4表示关于按钮按下

public WelcomeView(Whale whale){

super(whale);

this.whale=whale;

getHolder().addCallback(this);

wdt=new

W

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值