飞机大战的第一个页面
2017-05-24 23:51
127 查看
飞机大战的第一个页面
结果:
GameSurface类
package com.example.asus.myapplication; 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 asus on 2017/5/24. */ public class GameSurface extends SurfaceView implements SurfaceHolder.Callback { private Canvas canvas; private Paint paint; private SurfaceHolder surfaceHolder; public static int screenWidth; public static int screenHeight; //menu相关的东西 private GameMenu gameMenu; private Bitmap bmpMenuBG; //菜单页面背景图片 private Bitmap bmpLogo; //菜单页面logo private Bitmap bmpButton; //菜单页面button private Bitmap bmpText; //菜单页面文本 public GameSurface(Context context) { super(context); surfaceHolder=this.getHolder(); //初始化holder 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() { while (true) { myDraw(); } } }).start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { } /** * 绘图方法 */ private void myDraw() { canvas = surfaceHolder.lockCanvas(); //调用GameSurface对象画游戏菜单页面 gameMenu.draw(canvas, paint); if (canvas != null) { surfaceHolder.unlockCanvasAndPost(canvas); //解锁画布 } } /** * 初始化图片方法 */ private void initBitmap(){ //把图片转换成bitmap格式 bmpMenuBG= BitmapFactory.decodeResource(this.getResources(),R.drawable.mainmenu); bmpLogo= BitmapFactory.decodeResource(this.getResources(),R.drawable.logo); bmpButton= BitmapFactory.decodeResource(this.getResources(),R.drawable.menustart); bmpText= BitmapFactory.decodeResource(this.getResources(),R.drawable.starttext); //初始化对象 gameMenu = new GameMenu(bmpMenuBG,bmpLogo,bmpButton,bmpText); } }
GameMenu类
package com.example.asus.myapplication; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; /** * Created by asus on 2017/5/24. */ public class GameMenu { private Bitmap bmpMenuBG; //菜单页面背景图片 private Bitmap bmpLogo; //菜单页面logo private Bitmap bmpButton; //菜单页面button private Bitmap bmpText; //菜单页面文本 private Rect rect; //矩形 public GameMenu(Bitmap bmpMenuBG,Bitmap bmpLogo,Bitmap bmpButton,Bitmap bmpText){ this.bmpMenuBG=bmpMenuBG; this.bmpLogo=bmpLogo; this.bmpButton=bmpButton; this.bmpText=bmpText; rect=new Rect(0,GameSurface.screenHeight/3,GameSurface.screenWidth,GameSurface.screenHeight/3+GameSurface.screenHeight/5); } /** * 画菜单页面 */ public void draw(Canvas canvas, Paint paint){ //画背景图 canvas.drawBitmap(bmpMenuBG,0,0,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); canvas.drawBitmap(bmpText,x+bmpButton.getWidth()/6,y+bmpButton.getHeight()/6,paint); } }
结果:
相关文章推荐
- 关于飞机大战的第一个页面的制作
- 前端零基础入门(四):第一个HTML页面
- 第一个Web页面,呵呵
- 这是我第一个页面
- web前端——第一个页面
- 页面加载时给的子元素的第一个元素加class
- .NET第一个页面显示弹出页面中控件的内容
- 【PHP系列教程】(1)——第一个PHP页面
- 学习日记-第一个Bootstrap页面总结
- 开发微信小程序:设置某个页面为启动后打开的第一个页面
- 第一个页面练习
- JavaScript学习笔记1---焦点定位在页面表单第一个字段
- ORACLE ADF11g: 第二个页面MANGEDBEAN使用第一个页面所绑定的VO
- 编写第一个小程序页面
- 第一个响应式布局的简单页面
- 页面第一个控件获得焦点(js实现)
- 第一个 PHP 页面
- 用node.js建博客(二) - 构建第一个markdown页面
- ios 解决第一个页面是通过loadData或者是loadHtml时返回控制的问题
- 第一个redis应用:把一张表的数据保存到内存中,在查询页面调用