android平台上的sprite,tilelayer设计,android平台上的sprite,tilelayer设计
android平台上的sprite,tilelayer设计
Android 没有提供 javaMe 里面的 Sprite, TileLayer 等,但自己可以设计,为图形处理建立一个基本的框架,同时可以快速将 javaMe 上的应用移植到Android 平台上。这个框架依照 MIDP 中 javax.microedition.lcdui.game 包设计的Layer 类import android.graphics.Canvas;import android.graphics.Paint;public abstract class Layer {public abstract void paintCanvas canvas,Paint paint;public abstract void paintCanvas canvas,Paint paint,int x,int y;}Sprite 类import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;public class Sprite extends Layer{private int length 0;// 帧序列长度private int currentPosition 0;//当前帧序列下标private int[][] framesXY null;//各个帧序列在图片的坐标private int frameWidth 0;//帧的宽度private int frameHeight 0;//帧的高度private Bitmap bigFrames null;//大的图片private int cols 0;private int rows 0;private int PositionX 0;//精灵的X 坐标private int PositionY 0;//精灵的Y 坐标private int[] frameSequence null;//加入的帧序列private int sequencePosition 0;//加入的帧序列的显示下标public SpriteBitmap image,int frameWidth,int frameHeight{//初始化this.bigFrames image;this.frameWidth frameWidth;this.frameHeight frameHeight;framesXY initSpriteimage, frameWidth, frameHeight;this.length framesXY.length;}//初始化精灵private int[][] initSpriteBitmap bitmap,int frameWidth,int frameHeight{int imageWidth bitmap.getWidth;int imageHeight bitmap.getHeight;this.cols Math.roundimageWidth/frameWidth;//列数this.rows Math.roundimageHeight/frameHeight;//行数int[][] tempXYs new int[cols*rows][2];forint i0,k0;ilength-1{currentPosition 0;}}else{sequencePosition;ifsequencePositionframeSequence.length-1{sequencePosition 0;}currentPosition frameSequence[sequencePosition];}}//获得当前 帧序列的上一个 帧public void prevFrame{ifthis.frameSequencenull{currentPosition--;ifcurrentPosition0}//得到单 元格的宽度public int getCellWidth{return this.tileWidth;}//得到单 元格的高度public int getCellHeight{return this.tileHeight;}//得到图层 中单元格的列数public int getColumns{return this.cols;}//得到图层 中单元格的行数public int getRows{return this.rows;}//获得整 张地图的宽度public int getMapWidth{return this.cols*this.tileWidth;}//获得整 张地图的高度public int getMapHeight{return this.rows*this.tileHeight;}public void setPositionint x,int y{this.viewX x;this.viewY y;}public void paintCanvas canvas,Paint paint{forint i0;i0{Log.d“x,y“, ““i*this.tileWidth - this.viewX“,“j*this.tileHeight - this.viewY;Bitmap bitmap Bitmap.createBitmapditu,tileXY[id-1][0],tileXY[id-1][1],tileWidth,tileHeight;canvas.drawBitmapbitmap,i*this.tileWidth - this.viewX,j*this.tileHeight - this.viewY, paint;}else{}}}}public void paintCanvas canvas,Paint paint,int x,int y{this.viewX x;this.viewY y;forint i0;i0{Bitmap bitmap Bitmap.createBitmapditu,tileXY[id-1][0],tileXY[id-1][1],tileWidth,tileHeight;canvas.drawBitmapbitmap,i*this.tileWidth - this.viewX,j*this.tileHeight - this.viewY, paint;}else{}}}}}LayerManager 类import java.util.ArrayList;import android.graphics.Canvas;import android.graphics.Paint;public class LayerManager {// 定义图层 容器private ArrayList
android平台上的sprite,tilelayer设计,android平台上的sprite,tilelayer设计相关推荐
- ios android安全性分析,Android与iOS的对比分析及Android安全技术的设计与实现
摘要: 近年来科技的发展和进步极大的推动了智能手机的飞速发展,手机功能的日益强大使人们对其依赖度显著上升.作为与人们生活密不可分通讯工具,手机安全的重要性不言而喻.现如今,随着手机网络的迅猛发展和形形 ...
- Android学习笔记(一) - 如果我们来设计Android
大家应该都背过公式,对于背公式,大体上有这么几种做法: 1,死背. 2,看公式的证明,并看懂. 3,尝试自己证明公式,而后对照"标准"证明. 一般来说,对公式的记忆和使用:3 &g ...
- Jquery Mobile设计Android通讯录第二章
本文是jQuery Mobile设计Android通讯录系统教程的第二篇,在上一篇教程中(http://publish.itpub.net/a2011/0517/1191/000001191561.s ...
- android产品设计,Android产品设计
Android产品设计,我们深信,凝聚一群人,用心在一件事上,为客户创造价值,它必将赢得客户的足够尊重和信赖. Android产品设计, 随着Android平台的扩张,引发了Android人才荒,20 ...
- Android 系统性能优化(79)---提升Android应用的启动速度与设计
提升Android应用的启动速度与设计 提升应用的启动速度与设计 这一部分主要写一写 应用启动白屏, 启动速度较慢,以及优化方案.本文一共分三个部分.搞定启动速度,让应用飞起来. 1. 常规的优化方案 ...
- android客户端设计,Android客户端设计.ppt
Android客户端设计 图16 .android.score包下各文件说明 .android.score包存放所有的功能界面,处理各种业务逻辑,是"豹考通"客户端的核心,该包下所 ...
- android 类的设计,Android App的类响应式设计
导言 根据google的官方显示Android 4.0以上的设备已经有34.2%,由于国内很多的手机都没机会用上google play市场,所以国内市场的情况,得看类似于友盟的季度报告才知道了.个人觉 ...
- 便签 java_基于安卓Android的便签笔记APP设计(Android studio)
基于安卓Android的便签笔记APP设计(Android studio)(论文9000字,程序代码) 摘要:本文介绍了便签的发展史.基础操作流程以及便签的具体功能,提出了基于Android的便签AP ...
- android jsp界面设计,Android 4.0设计规范-UI博客精选
在拜读和翻译了Android design设计指导后,对比Android 4.0与Android2.3及之前版本的app设计指导,总结了Android 4.0设计的10大改变: 1. 导航栏 (详见模 ...
最新文章
- AI之最——地平线创始人兼CEO余凯谈AI
- ESP8266 01S WIFI 网络
- 【翻译】VisualStudio11中的CSS编辑器改进(asp.net 4.5系列)-ScottGu
- 框架:Spring之Aware相关接口
- 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发
- JDK中的Atomic包中的类及使用
- CF1368G Shifting Dominoes(扫描线求矩阵的并集)
- 转hdmi_苹果本轻松接大屏,毕亚兹雷电接口转HDMI/VGA转换器评测
- 几时几分几秒怎么写_头总是一阵一阵眩晕是怎么回事?眩晕症该如何治疗?
- 3.7.3 - Basic String Operations
- 删除ftp服务器上文件夹的方法,删除ftp服务器文件夹
- sl400通过ac无法连接psk加密无线网络
- Layabox 1 layabox的项目文件以及项目配置
- 最好用的七大顶级 API 接口测试工具
- 超出本地计算机网络,超出本地计算机网络适配器卡的名称限制怎么解决?
- STC单片机 闪烁灯,LED流水灯 程序讲解
- omw-1.4压缩包下载
- 解决ThinkPad X200找不到无线网卡硬件的问题
- CSS 行高 line-height属性
- 有五万块钱,在农村养牛怎么样?能养多少头牛?
热门文章
- Leetcode 1222.可以攻击国王的皇后
- 统计学习三要素的思考
- TCP连接吞吐率和线路效率的总结
- 维纳滤波的详细讲解(同为小白,相互取暖)
- Markdown数学公式参考表
- 【不建议阅读】电脑上腾讯会议录屏:OBS
- python 使用 plt.savefig() 保存图片去除旁边的空白区域
- python : 使用 __future__ 的作用
- ubuntu + pycharm + anaconda + pyqt5 + tools 配置
- BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】