/**
* 一个简单的游戏框架
* 没有按键处理,声音播放
* @author 岳振华
*
*/
public class MySrufaceView extends SurfaceView implements Callback, Runnable {
private SurfaceHolder sfh;
private Thread thread;
@SuppressWarnings("unused")
private int surfaceW,surfaceH;
private Paint paint;
private Canvas canvas;

public MySrufaceView(Context context) {
super(context);
sfh = this.getHolder();// 获得surfaceHolder对象
sfh.addCallback(this);

thread=new Thread(this);

paint=new Paint();//新建画笔
paint.setColor(Color.RED);//设置画笔颜色
paint.setAntiAlias(true);//?

this.setKeepScreenOn(true);//保持屏幕常亮
}

/**
* 开始动画
*/
@Override
public void startAnimation(Animation animation) {
super.startAnimation(animation);
}

/**************************** callback的几个方法 ********************/

/**
* 当Surface第一次创建后会立即调用该函数
* 一般情况下都是在另外的线程来绘制界面,所以不要在这个函数中绘制Surface
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
surfaceW=this.getWidth();
surfaceH=this.getHeight();

thread.start();//开启线程

}

/**
* 当Surface的状态(大小和格式)发生变化的时候会调用
* 该函数 在surfaceCreated调用后该函数至少会被调用一次
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

}
/**************************** callback的几个方法 ********************/

/**
* 绘图方法
*/
private void draw()
{
int i=0;
try {
//获得canvas实例
canvas=sfh.lockCanvas();
canvas.drawColor(Color.WHITE);//刷屏
canvas.drawText("岳振华"+i, 100, 100, paint);//画文本
i++;
} catch (Exception e) {
e.printStackTrace();
}
finally
{
if(null!=canvas)
{
sfh.unlockCanvasAndPost(canvas);//提交画布
}
}
}

@SuppressWarnings("static-access")
@Override
public void run() {
//绘图
draw();
try {
thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

android游戏开发学习笔记一(学习书籍 Android游戏编程之从零开始)相关推荐

  1. 多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | 帧同步和状态同步

    今天继续开新坑,尽管过了很多 Unix 套接字编程的坑,但是实际还是有很多不同场景和性能的需求,以及最服务器架构的内容也就接触过 preforking 和 master 带 worker 而已. 所以 ...

  2. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第二章:Android App 开发基础

    第 2 章 Android App开发基础 本章介绍基于Android系统的App开发常识,包括以下几个方面:App开发与其他软件开发有什么不一 样,App工程是怎样的组织结构又是怎样配置的,App开 ...

  3. 【Python学习笔记】猜颜色小游戏

    [Python学习笔记]猜颜色小游戏 前言 一.算法原理 1. 生成器部分 2. 检测器部分 二.代码 过程BUG汇总笔记 总结 前言 最近馋世界游戏大全51,心血来潮用Python写了个猜颜色,顺便 ...

  4. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题

    转载:http://blog.csdn.net/iamlazybone/article/details/17191539 懒骨头(http://blog.csdn.net/iamlazybone  Q ...

  5. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应...

    2019独角兽企业重金招聘Python工程师标准>>> 上节说到cygwin下成功编译出so文件,下面我们要把游戏运行在android上. 开始干活! 其实步骤可以参考 Cocos2 ...

  6. JAVA学习笔记(四)城堡游戏

    城堡游戏 我们在尝试了之前的简单媒体库构造之后,试着整合一下之前学到的关于类,继承,多态等知识,制作一个简单的城堡游戏,城堡游戏是一个简单的文字游戏,通过输入命令可以在地图上不同的房间进行移动. 目录 ...

  7. android fmod,Android ndk开发:fmod语音学习(二)

    在上一篇文章中,介绍以及搭建了FMOD的Android示例,这篇文章是在上一篇文章的基础上写的.所以建议首先读一下我的这篇文章. 本文使用FMOD来实现变声效果,直接使用<Android ndk ...

  8. Cocos2dx游戏开发系列笔记10:解刨《战神传说》

    2019独角兽企业重金招聘Python工程师标准>>> 有点困了,从桌子换到床上,刚要开敲,豆瓣电台传来的传来奇怪的歌声"马的-马的-" 看看歌词,应该是&quo ...

  9. Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇

    懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...

  10. 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:// ...

最新文章

  1. 4K 海思 联咏 芯片_画质的好坏并不只取决于屏幕 电视芯片也很重要
  2. 面试中回答关于oracle数据库优化的方法
  3. 快排、寻找第k小数和前k小数
  4. DP:***24种设计模式--转自刘伟
  5. 页面图片延时加载(附实例下载)
  6. 【XXE】XXE漏洞攻击与防御
  7. 从Paxos到ZooKeeper-四、ZooKeeper技术内幕
  8. 最简单的基于DirectShow的示例:视频播放器图形界面版
  9. MQ发送的消息都到了死信队列中了
  10. Firefox控制台日志转入文件
  11. ws配置 zuul_spring cloud zuul 服务网关
  12. 【游记】CQOI2021
  13. c语言8bit转10bit,10bit视频转码成8bit视频教程(非常简单)
  14. 取消管理员取得所有权_win7下取得管理员所有权的技巧
  15. 二进制文件在linux如何表示,如何通过静态分析找出二进制文件是否在Linux上使用某些系统调用?...
  16. 计算机设备的快捷命令,快速打开设备管理器的快捷键教程
  17. 夯实基础——P1830 轰炸III
  18. 线程并发问题(线程安全)
  19. matlab编程画分段函数,matlab画分段函数 求程序
  20. Chromium网页GPU光栅化原理分析

热门文章

  1. redis打开外网访问端口
  2. (1)关于File类你知道多少
  3. 洛谷 P1017 进制转换
  4. 相同数据源情况下,使用Kafka实时消费数据 vs 离线环境下全部落表后处理数据,结果存在差异...
  5. netty 5 心跳
  6. 【Andrioid】在Gradle编译时生成一个不同的版本号,动态设置应用程序标题,应用程序图标,更换常数...
  7. linux 中文件的操作
  8. 求两个有序单链表的并交集
  9. Linux下硬盘分区详解
  10. Dreamweaver中出现 以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息 问题的解决方案(8,cs3,cs4似乎都会出现改问题)...