- 浏览: 225407 次
- 性别:
- 来自: 淄博
文章分类
- 全部博客 (666)
- java (6)
- android (9)
- 架构 (0)
- android游戏 (13)
- android系统 (14)
- c++ (14)
- 数据库 (10)
- javascript (2)
- 版本控制 (1)
- webservice (1)
- linux (5)
- uml (1)
- android多媒体部分 (16)
- java中的JNI (6)
- HTML5 (5)
- CSS3 (1)
- swing (13)
- 线程并发 (9)
- 分布式 (5)
- 云计算 (1)
- 通信协议 (4)
- xml (4)
- c# (1)
- lucene (0)
- ibatis (0)
- hibernate (3)
- struts1 (3)
- struts2 (4)
- jsf (0)
- spring (5)
- spring for android (0)
- 感悟 (2)
- jpa (1)
- android gis (1)
- jbpm (0)
- java设计模式 (8)
- java web (4)
- EXT js (0)
- node JS (2)
- python (3)
- c (17)
- weblogic (0)
- opencv (1)
最新评论
/**
* 剪切动画+移动位图
*
* @author 岳振华
*
*/
public class ClipSurfaceView extends SurfaceView implements Callback, Runnable {
private SurfaceHolder sfh;
private int screenX, screenY;// 屏幕大小
private Thread thread;
private boolean flag;
private Paint paint, paint2;
private Canvas canvas;
private Bitmap fish, water;
private int currentFream = 0;
private float bmpX, bmpY;
public ClipSurfaceView(Context context) {
super(context);
sfh = this.getHolder();
sfh.addCallback(this);
paint = new Paint();
paint2 = new Paint();
paint.setColor(Color.RED);
paint2.setColor(Color.WHITE);
paint.setAntiAlias(true);
this.setFocusable(true);
fish = BitmapFactory.decodeResource(this.getResources(), R.drawable.fish);
water = BitmapFactory.decodeResource(this.getResources(), R.drawable.water);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
screenX = getWidth();
screenY = getHeight();
// 宽度刚好填满屏幕
bmpX = -water.getWidth() + screenX;
// 高度是屏幕高度-图片高度
bmpY = screenY - water.getHeight();
flag = true;
thread = new Thread(this);
thread.start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
flag = false;
}
@SuppressWarnings("static-access")
@Override
public void run() {
while (flag) {
try {
// begin
long begin = System.currentTimeMillis();
draw();
logic();
// end
long end = System.currentTimeMillis();
if (end - begin < 50) {
thread.sleep(50 - (end - begin));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 绘图
*/
private void draw() {
try {
canvas = sfh.lockCanvas();
if (null != canvas) {
canvas.drawColor(Color.WHITE);
// 设置可见区域的大小
canvas.save();
canvas.clipRect(0, 0, fish.getWidth() / 10, fish.getHeight());
// 绘制鱼
canvas.drawBitmap(fish, -currentFream * fish.getWidth() / 10, 0, paint);
canvas.restore();
// 绘制水
canvas.drawBitmap(water, bmpX, bmpY, paint2);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != canvas) {
sfh.unlockCanvasAndPost(canvas);
}
}
}
/**
* 游戏逻辑
*/
private void logic() {
currentFream++;
if (currentFream >= 10) {
currentFream = 0;
}
if (bmpX < 0) {
bmpX += 5;
} else {
bmpX = -water.getWidth() + screenX;
}
}
}
发表评论
-
android游戏开发学习笔记一(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:52 571/** * 一个简单的游戏框架 * 没有按键处理,声音 ... -
android游戏开发学习笔记二(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:54 491/** * 画布 * * @author 岳 ... -
android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:55 617/** * 画笔 * * @author 岳 ... -
android游戏开发学习笔记四(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:57 537/** * 位图 * * @author 岳振华 * ... -
android游戏开发学习笔记六(学习书籍 Android游戏编程之从零开始)
2012-09-07 10:37 522/** * 位图 * * @author 岳振华 * ... -
android游戏开发学习笔之七 (学习书籍 Android游戏编程之从零开始)
2012-09-07 10:39 631/** * 可视区域 * * @time 上午10:42 ... -
android 游戏学习(jbox2d)
2012-09-09 11:14 520导入jbox2d-2.0.1-library-only.jar ... -
android游戏开发学习笔之八 (学习书籍 Android游戏编程之从零开始)
2012-09-09 11:23 472/** * 操作游戏中的人物 * * @time 上午1 ... -
android游戏开发学习笔之九 (学习书籍 Android游戏编程之从零开始)
2012-09-09 11:25 675/** * 矩形碰撞 * * @time 上午11:29 ... -
android 启动流程
2012-09-10 15:45 403bootload 加载linux 内核 挂载ramd ... -
android jbox2d学习笔记一 滑轮关节
2012-09-13 12:45 560/** * 滑轮关节 * * @time 下午12:49 ... -
andriod jbox2d学习笔记二 通过移动关节移动body
2012-09-13 12:47 569/** * 通过移动关节移动body * * @time ...
相关推荐
Android 开发学习笔记,学习android的好资料
Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...
Android应用开发_学习笔记.docAndroid应用开发_学习笔记.docAndroid应用开发_学习笔记.docAndroid应用开发_学习笔记.doc
新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--基础UI编程1 新版Android开发教程+笔记八--基础UI编程2 新版Android开发教程+笔记九--基础...
新版Android开发教程&笔记五--模拟器、应用1、2 新版Android开发教程&笔记六--应用3、4 布局 新版Android开发教程&笔记七--基础UI编程1 新版Android开发教程&笔记八--基础UI编程2 ......... ..... .... 新版Android...
【第一部分】历史文章: ...Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share
Android驱动开发笔记
Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发...
Android学习笔记 Android学习笔记 Android学习笔记
新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局.pd 新版Android开发教程+笔记十--基础UI编程4.pdf 新版Android开发教程+笔记十一--可视化UI设计Dr 新版Android...
应用3、4 布局.Android开发教程+笔记7--基础UI编程1.Android开发教程+笔记8--基础UI编程2.Android开发教程+笔记9--基础UI编程3.Android开发教程+笔记10--基础UI编程4.Android开发教程+笔记11--可视化UI设计DroidDraw...
Android学习笔记
android高级编程开发笔记,中间有实例代码。 包括Intent、广播接收器、Adapter和Internet使用实例 数据存储、检索和共享 p2p通信等
新版Android开发教程+笔记五--模拟器、应用1、2.pdf 新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发教程+笔记七--基础UI编程1.pdf 新版Android开发教程+笔记八--基础UI编程2.pdf 新版Android开发...
新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--基础UI编程1 新版Android开发教程+笔记八--基础UI编程2 新版Android开发教程+笔记九--基础...
Eclipse开发学习笔记。感觉挺好的,就传上来给大家共享
学习java和android的笔记 更容易学习android 资深学习android 具有大量学习的笔记 很多的错误 都是从细节开始学习的
新版Android开发教程+笔记五--模拟器、应用1、2.pdf 新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发教程+笔记七--基础UI编程1.pdf 新版Android开发教程+笔记八--基础UI编程2.pdf 新版Android开发...
Android程序开发学习笔记(手电筒软件设计).pdf
粉丝可免费下载哦!!!《Android开发教程笔记完全版》将教会你基本的Android编程,以及学习一些Android应用程序开发相关的高级概念。