【android-tips】SurfaceView的制作android游戏框架介绍
(转载请注明出处:http://blog.csdn.net/buptgshengod)
1.介绍
我们知道android游戏主要包含两方面。一方面是控制类,这个通过一些循环以及监听机制来实现。另一方面就是显示类。在现实类中最常见的就是view,view的机制比较适合刷新比较慢的应用,像是象棋之类的。本文要提到的SurfaceView是继承自view类。surfaceview的好处是可以随意控制对象的位置,大小等属性,最关键是的提供了SurfaceHolder类,使用getHolder方法获取,相关的有Canvas lockCanvas() 。下面就来介绍下surfaceview的结构关系。
2.代码展示
public class GameView extends SurfaceView implements SurfaceHolder.Callback
{SurfaceHolder surface; //新建surface对象public GameView(Context context) {super(context);// TODO Auto-generated constructor stubsurface = this.getHolder();surface.addCallback(this);//对应SurfaceHoder.Callback接口}public void createImage(){.....}//自己建函数,用来初始化图片。bitmap对象等public void ondraw(){Canvas c =this.surface.lockCanvas();……………….surface.unlockCanvasAndPost(c);} //自己写的函数,用canavas画出bitmap在下面的循环中调用。//以下三个函数是自动生成的
@Overridepublic void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stublength=arg2;//获得屏幕的高
width=arg3;//获得屏幕宽。真的非常实用}@Overridepublic void surfaceCreated(SurfaceHolder arg0) {// TODO Auto-generated method stubnew Thread(new Repaint()).start();//一般在这里开始循环线程,而不是在构造函数中
}@Overridepublic void surfaceDestroyed(SurfaceHolder arg0) {// TODO Auto-generated method stubisRunning=false;//结束循环}
private class Repaint implements Runnable{//runnable循环线程,不停地刷新重绘
public void run() {while(isRunning){createImage();ondraw();}//刷新try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}}}
欢迎留言讨论,have fun!
【android-tips】SurfaceView的制作android游戏框架介绍相关推荐
- android 程序 读logo,制作Android启动Logo
一.去除Embedded Linux 的开机光标: 在内核的当前目录进入到drivers/video/console/fbcon.c文件 将static void fb_flashcursor(voi ...
- android数据线接口定义,制作Android手机可连接普通键盘的数据转接线
在上一篇" 现在市面上的Android手机和Android平板电脑基本上都支持USB OTG技术.这种技术将允许用户将手机或平板电脑通过usb2.0数据线连接到标准USB键盘和鼠标,甚至普通 ...
- android okgo 参数map,OkGo 网络请求框架介绍与使用说明
前言 使用 Android Studio 用户 一般来说,只需要添加第一个 okgo 的核心包即可,其余的三个库根据自己的需要选择添加. //必须使用 compile 'com.lzy.net:okg ...
- android listview 数据数组制作,android – 从对象的数组列表中填充listview
在你的活动 AdapterPerson adbPerson; ArrayList myListItems = new ArrayList(); //then populate myListItems ...
- Leaf:GO语言游戏框架介绍及入门
Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架.Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器. Leaf 的关注点: 良好的 ...
- android studio gradle 添加jar,android studio学习----通过gradle来导入jar包
转载地址:http://www.th7.cn/Program/Android/201507/495477.shtml File->Project Structure 可以打开下面的图: 1.通过 ...
- GitHub开源游戏框架和引擎介绍
GitHub开源游戏框架介绍 ET ET的介绍 GitHub地址 NoahGameFrame NoahGameFrame的介绍 GitHub地址 CSDN相关教程 ET ET的介绍 ET是一个开源的游 ...
- 【读书笔记《Android游戏编程之从零开始》】11.游戏开发基础(SurfaceView 游戏框架、View 和 SurfaceView 的区别)...
1. SurfaceView 游戏框架实例 实例效果:就是屏幕上的文本跟着点击的地方移动,效果图如下: 步骤: 新建项目"GameSurfaceView",首先自定义一个类&quo ...
- Android使用SurfaceView开发《捉小猪》小游戏 (一)
先上效果图: 哈哈, 说下实现思路: 我们可以把每一个树桩, 小猪, 车厢都看成是一个Drawable, 这个Drawable里面保存了x, y坐标, 我们的SurfaceView在draw的时候, ...
最新文章
- PHP学习总结(函数、数组、字符串)
- 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用
- leetcode 1046. 最后一块石头的重量(堆)
- [css] css怎样使每个字符宽度一样?
- 【MySQL】Java.sql.SQLException Incorrect string value: \xF0\x9F\x98\x8D\xE8\xBE...
- MyBatis的总结(上)
- EmEditor Pro 8.3简体中文绿色增强(无需安装)版
- malloc函数C语言实现
- 用C语言计算矩阵求和
- 【读书笔记->统计学】03-02 各种“距”和“差”-方差、标准差、标准分概念简介
- 怎样恢复计算机程序打开文件名,Word提示如何解决使用文本恢复转换器打开文件的问题...
- 2019级软件工程应用与实践-人工智能快递柜(代码分析7)
- Java用户账号密码创建登录
- 关于STM32F407ZGT6的一些知识小结及串口1程序
- C语言初阶_初识C语言(1)
- 川崎机器人 K-ROSET 仿真软件插件开发
- iOS开发——网络请求案例汇总
- Using fallback Sshlinedraw for CID-keyed font STSong-Light
- 给IntelliJ IDEA换了个皮肤,加了几个插件,发现我爱上了敲代码:)
- 用DFS和函数实现全排列:
热门文章
- 程序设计竞赛算法基础考试真题2020年(回忆版)
- 方舟服务器建家位置,《方舟 生存进化》最佳建家位置,新手玩家根本无法想象!...
- rmg超声波流量计算机价格,超声波流量计
- linux同名文件夹覆盖_第一天:Linux——复习
- 开放大学计算机应用基础形考答案,国家开放大学计算机应用基础形考作业二答案~.doc...
- 2019帝豪gs装软件_短试新帝豪GS:冷门的跨界SUV,为什么吉利能做成爆款?
- Qt中的QInputDialog
- mysql复制架构迁移到pxc_mysql复制(高可用架构方案的基础)
- 单片机实现环形队列_单片机模块化程序: 难道有环形队列串口发送数据就万事大吉了吗...
- 三目运算法求一个大值,以及指定位数的应用,以及函数的声明,以及函数的嵌套,以及函数的递归,以及用递归法求阶乘