Andriod Studio 之飞机大战-构建游戏开始界面
2017-05-25 12:29
441 查看
1.主要思路:在Android Studio 中 新建游戏界面,并构造出主线程,另外在创建一个类作为游戏界面,在界面在新建一个方法,目的是交由游戏界面类调用;
2.具体方法(代码):
2.具体方法(代码):
package com.example.fpl.helloworld; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * Created by FPL on 2017/5/24. */ public class GameSurface extends SurfaceView implements Surfa a8b0 ceHolder.Callback { private GameMenu gameMenu; private Bitmap bmpMainBG; private Bitmap bmpLogo; private Bitmap bmpButton; private Bitmap bmpText; public static int screenwidth; public static int screenheight; private SurfaceHolder surfaceHolder; private Canvas canvas; private Paint paint; public GameSurface(Context context) { super(context); surfaceHolder = this.getHolder(); surfaceHolder.addCallback(this); paint=new Paint(); paint.setAntiAlias(true); } @Override public void surfaceCreated(SurfaceHolder holder) { screenwidth=this.getWidth(); screenheight=this.getHeight(); initBitmap(); new Thread(new Runnable() { @Override public void run() { mydraw(); } }).start(); } private void mydraw() { canvas=surfaceHolder.lockCanvas(); gameMenu.draw(canvas,paint); if (canvas!=null){ surfaceHolder.unlockCanvasAndPost(canvas); } } private void initBitmap(){ bmpMainBG= BitmapFactory.decodeResource(this.getResources(),R.drawable.mainmenu); bmpLogo= BitmapFactory.decodeResource(this.getResources(),R.drawable.logo); bmpButton= BitmapFactory.decodeResource(this.getResources(),R.drawable.menustartpress); bmpText= BitmapFactory.decodeResource(this.getResources(),R.drawable.starttext); gameMenu=new GameMenu(bmpMainBG,bmpLogo,bmpButton,bmpText); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { } } package com.example.fpl.helloworld; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; /** * Created by FPL on 2017/5/24. */ public class GameMenu { private Bitmap bmpMainBG; private Bitmap bmpLogo; private Bitmap bmpButton; private Bitmap bmpText; private Rect rect; private Rect rect2; public GameMenu(Bitmap bmpMainBG,Bitmap bmpLogo,Bitmap bmpButton,Bitmap bmpText ){ this.bmpButton=bmpButton; this.bmpLogo=bmpLogo; this.bmpMainBG=bmpMainBG; this.bmpText=bmpText; rect=new Rect(0,GameSurface.screenheight/6,GameSurface.screenwidth,GameSurface.screenheight/5+GameSurface.screenheight/5); rect2=new Rect(0,0,GameSurface.screenwidth,GameSurface.screenheight); } public void draw(Canvas canvas, Paint paint) { canvas.drawBitmap(bmpMainBG,null,rect2,paint); canvas.drawBitmap(bmpLogo,null,rect,paint); int x=GameSurface.screenwidth/2-bmpButton.getWidth()/2; int y=GameSurface.screenheight/3*2; canvas.drawBitmap(bmpButton,x,y,paint); int x1=GameSurface.screenwidth/2-bmpText.getWidth()/2; int y1=GameSurface.screenheight/3*2+20; canvas.drawBitmap(bmpText,x1,y1,paint); } }
相关文章推荐
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 04.游戏界面 主角飞机的添加
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 05.游戏界面 主角飞机的移动
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 06.游戏界面 主角飞机产生子弹
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 07.游戏界面 敌机的产生与移动
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 08.游戏界面 碰撞检测
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 09.游戏界面 道具
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 10.游戏界面 特效
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 03.游戏界面 背景层实现滚动
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(3)
- 算法与数据结构——算法题 154:全民飞机大战游戏的红包功能(腾讯2017校招笔试题) ? 待解决
- 【Android开发】范例2-个性游戏开始界面
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(1)
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(4)
- quick cocos2d-x 实战:做一个手机横版格斗游戏2:游戏开始界面设计
- [Unity3D]游戏开始的时候通过脚本设置逐渐淡出的欢迎界面
- cocos2d-x 3.0学习游戏笔记的例子《卡塔防》第五步---开始建立游戏界面
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---开始界面&关卡选择
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(5)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--游戏开始界面
- quick cocos2d-x 实战:做一个手机横版格斗游戏3:游戏开始界面切图