- 浏览: 115359 次
- 性别:
- 来自: 厦门
最新评论
-
人可德福:
非常感谢附上源码包的楼主
实例16--心理测试 -
一口三个汉堡:
ljt122000 写道呵呵....看来大多数搞程序的被切图弄 ...
移动开发那点事-抱怨的移动开发程序员 -
ljt122000:
呵呵....看来大多数搞程序的被切图弄得有点郁闷啊...不管是 ...
移动开发那点事-抱怨的移动开发程序员 -
一口三个汉堡:
半夜透凉清 写道追求自己想要的生活,我是该羡慕你不断的走,跑, ...
今天看了自己博客的电子书,眼泪一直掉!感谢ITeye伴我成长! -
xdwangiflytek:
楼主发现自己的成长才是最可贵的
今天看了自己博客的电子书,眼泪一直掉!感谢ITeye伴我成长!
实例9,在j2me中是使用了图层管理和地图图层,在android并没有这些,所以我用android的只是写了用于 android的图层管理器和地图图层,不过有些东西还没有实现,只实现了一些这个例子会用到的,还有setViewWindow的实现并没有完整,算法上可能会有些问题,虽然我没有测试出,如果有谁测试出来了,请告诉我,我会改正。
下面给出这个例子的效果图和MainView的代码。
package com.wjh.demon_8;
import com.wjh.midp_me.AndroidLayerManager; import com.wjh.midp_me.AndroidSprite; import com.wjh.midp_me.AndroidTiledLayer; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.Log; import android.view.KeyEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.SurfaceHolder.Callback; public class MainView extends SurfaceView implements Callback,Runnable{ int keyCode = 0; Thread gameThread = null; boolean isGame = true; SurfaceHolder holder = null; Paint backPaint = null; Paint forePaint = null; //具体游戏相关 public AndroidTiledLayer m_TLayer; //管理场景 public int m_aCells[][] = //存储m_TLayer中各cell的取值 {{ 2, 2, 3, 2, 2, 2, 2, 2 ,2, 2, 3, 2, 2, 2, 2, 2 }, { 2, 3, 2, 4, 3, 4, 3, 2 ,2, 2, 3, 2, 2, 2, 2, 2}, { 2, 3, 3, 3, 4, 2, 4, 2 ,2, 2, 3, 2, 2, 2, 2, 2 }, { 2, 3, 2, 3, 3, 4, 1, 2 ,2, 2, 3, 2, 2, 2, 2, 2}, { 2, 4, 3, 3, 3, 3, 4, 2 ,2, 2, 3, 2, 2, 2, 2, 2}, { 2, 3, 2, 3, 3, 4, 3, 2 ,2, 2, 3, 2, 2, 2, 2, 2}, { 2, 3, 3, 4, 1, 3, 3, 2 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}, { 4, 2, 2, 4, 2, 2, 4, 4 ,2, 2, 3, 2, 2, 2, 2, 2}}; public AndroidLayerManager m_Manager; //图层管理器,管理各个图层 public int m_nX = 0; //显示区域左上角的横坐标 public int m_nY = 0; //显示区域左上角的纵坐标 public MainView(Context context) { super(context); // TODO Auto-generated constructor stub setFocusable(true); getHolder().addCallback(this); holder = this.getHolder(); backPaint = new Paint(); backPaint.setColor(Color.BLACK); forePaint = new Paint(); //具体游戏相关 Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.map); //创建TiledLayer场景 m_TLayer = new AndroidTiledLayer( 16, 16, image, 32, 32 ); //设置场景的位置 m_TLayer.setPosition( 0, 0 ); LoadMap(); //将各个图层添入m_Manager m_Manager = new AndroidLayerManager(); m_Manager.append(m_TLayer); //设置m_Manager的显示区域 m_Manager.setViewWindow( m_nX, m_nY, getWidth(), getHeight() ); } public void LoadMap(){ //设置m_TLayer中各cell的值 for( int row = 0; row < 16; row ++ ){ for( int col = 0; col < 16; col ++ ){ m_TLayer.setCell( row, col, m_aCells[row][col] ); } } } @Override public void run() { // TODO Auto-generated method stub long startTime = System.currentTimeMillis(); while(isGame) { input(); logic(); doDraw(); try { long endTime = System.currentTimeMillis(); long sleepTime = endTime - startTime; if(sleepTime<100) { Thread.sleep(sleepTime); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //开始游戏主线程 public void start() { if(gameThread == null) { gameThread = new Thread(this); gameThread.start(); } } //停止游戏主线程 public void stop() { isGame = false; if(gameThread != null) { try { gameThread.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //输入判断 public void input() { switch(this.keyCode) { case KeyEvent.KEYCODE_DPAD_UP: m_nY -= 5; break; case KeyEvent.KEYCODE_DPAD_DOWN: m_nY += 5; break; case KeyEvent.KEYCODE_DPAD_LEFT: m_nX -= 5; break; case KeyEvent.KEYCODE_DPAD_RIGHT: m_nX += 5; break; } m_Manager.setViewWindow(m_nX, m_nY, getWidth(), getHeight()); this.keyCode = 0; } //逻辑判断 public void logic() { } public void doDraw() { Canvas c = null; try { c = holder.lockCanvas(); synchronized (holder) { paint(c); } }finally{ if(c != null) { holder.unlockCanvasAndPost(c); } } } //画图 public void paint(Canvas canvas) { //用黑色清屏 canvas.drawRect(0, 0, getWidth(), getHeight(), forePaint); //从屏幕的(0,0)点开始显示图像 m_Manager.paint(canvas, forePaint); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub start(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub stop(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub this.keyCode = keyCode; return true; } }
apk文件(将后缀改为apk):Demon_8.zip
源代码文件:Demon_8.rar
发表评论
-
android-单独开启闪光灯方法--适用于moto手机
2011-10-14 10:11 6951代码来自于http://code.google.com/p/s ... -
android线性布局布局的layout_weight
2011-10-08 16:23 1681对于LinearLayout的layout_weight属性, ... -
android-xml文件解析教程
2011-09-21 00:32 2106在讨论群里里面有人在问xml的解析方法,我就弄了个简单的d ... -
实例17--无敌抢钱鸡
2011-09-03 21:32 1055随着转化的进行,难度也在增加,这次的实例我弄了一天,当然有 ... -
实例16--心理测试
2011-09-01 11:59 2090隔了两个月,又重新开 ... -
实例-15---猜数字
2011-06-23 23:48 1376经典游戏,猜数字。各种不解释,因为最近发生了一些事情,所以 ... -
实例14---不准+弱智的生物钟
2011-06-19 12:06 1173这个例子在java me主要是演示form的使用,在and ... -
实例13---点击速度测试机
2011-06-18 00:15 1072在原java me中通过这个例子是想要讲解RecordSt ... -
实例12--会动的地图
2011-06-16 23:00 1275前面已经出了一个展示地图的例子,这个例子主要运用了将地图的 ... -
实例11--播放按键声音
2011-06-13 11:35 7286实例11播放按键声音,在java me中有playTone ... -
实例10--不搭的跳舞机
2011-06-10 23:32 1754还是要重申一遍,因为只是转化,所以原j2me的问题,我不会 ... -
android的Sprite,TiledLayer,LayerManager
2011-06-08 10:42 3344因为android没有提供这些,而我要把j2me的一本游戏 ... -
实例8--《很幼稚的‘小’鸡快跑》
2011-06-04 22:08 1402实例8--《小鸡快跑》,原书用的是java me 提供的s ... -
实例7---android 版Sprite代码
2011-06-03 23:38 2997因为android 没有提供sp ... -
实例6--文字滚屏
2011-06-02 23:59 1112这个实例的本意展示j2me的字体,和滚屏的实现。我只实现了 ... -
实例5--自动换行(修订版)
2011-06-02 00:13 2103这个实例主要是运用字体的只是,但是android自带就几种 ... -
实例4---拼单词游戏
2011-06-01 00:02 1399这个第四个实例,我只是单纯的把j2me的代码换成andro ... -
实例3--使用surfaceView
2011-05-30 19:55 1371在那本书用的是GameCanvas,我就用surfaceVi ... -
实例2---获得按键值
2011-05-29 00:08 1171《手机游戏50例》第二个实例为将按键值显示在屏幕上,下面给出M ... -
《java手机游戏50例》转成android版。。--游戏View框架代码
2011-05-28 20:48 3608这学期我们班教j2me游戏开发,教材是《java游戏50例 ...
相关推荐
在本实例中,我们将探讨如何利用TopMap与C#编程语言相结合,构建一个针对清华大学的网上导航地图应用——“清华网上游”。 【TopMap与C#集成开发】 1. **接口开发**:TopMap提供了丰富的API接口,允许开发者通过C#...
在这个"HTML+CSS+JS数据可视化大屏平台模板实例10-大数据地图"中,我们将探讨如何利用这些技术将大量复杂的数据转化为直观且具有吸引力的地图展示。 首先,HTML(HyperText Markup Language)作为网页内容的结构...
标题“实例12--会动的地图”提示我们这是一个关于动态地图展示的实例,可能是通过编程实现的。在IT行业中,动态地图通常涉及到地理信息系统(GIS)技术,可能使用JavaScript库如Leaflet或D3.js,或者是专业的地图...
计算机软件-编程源码-实例十--电子地图开发之GIS组件--Mapobject深入开发.zip
本实例“HTML+CSS+JS数据可视化大屏平台模板实例30-智慧物联网+GIS地图通用模板”是专门为展示智慧物联网数据与GIS地图结合而设计的一个模板,适用于各种监控、分析和决策支持场景。 首先,HTML(超文本标记语言)...
这个压缩包包含了一个实例,通过这个实例,我们可以学习如何深入地使用MapObject进行地图开发。 MapObject是一个强大的GIS开发工具,它可以被嵌入到各种Windows应用程序中,如Visual Basic、VC++或Delphi等,使得...
标题“echarts右键菜单实例 --- 不修改源码”表明我们将探讨如何在ECharts图表上添加右键菜单,而无需直接修改ECharts的源代码。这意味着我们将通过ECharts的API和事件监听来实现这一功能,这是一个常见的最佳实践,...
实例5讲解如何将地图布局导出为图像或PDF,以及如何设置打印参数,确保输出的地图满足专业标准和需求。 6. **实例6:地图服务发布** 最后一个实例将展示如何使用ArcMap将地图发布为Web服务,使得地图可以在线访问...
在本资源"基于Java的实例源码-Google地图JSP标签库.zip"中,我们可以深入探讨几个关键的IT知识点,主要集中在Java编程、JSP(JavaServer Pages)技术和Google地图API的应用。 首先,Java是一种广泛使用的面向对象的...
#### 9. TitleWindow组件 - **TitleWindow** 是一个具有标题栏的窗口组件,常用于创建对话框或模态窗口。 - 可以设置其 `modal` 属性来控制窗口是否为模态。 #### 10. ViewStack组件 - **ViewStack** 组件可以用来...
HTML+CSS+JS数据可视化大屏平台模板实例demo-安徽省地图大屏
"天地图开发实例"是一个基于Web的项目,它利用了天地图这一强大的地理信息系统平台,为开发者提供了一套具体的实践示例。这个实例主要展示了如何在天地图上进行各种自定义操作,以增强地图的交互性和功能。接下来,...
在本压缩包“基于Java的实例源码-用的在线地图浏览模块.zip”中,包含的是一个使用Java语言实现的在线地图浏览模块。这个模块可能是为了帮助开发者集成地图功能到他们的应用程序中,使得用户能够方便地查看、导航或...
- **GPS坐标处理**:将接收到的经纬度转换为可读格式,进行地图匹配或其他地理计算。 - **时间同步**:通过GPS获取准确的时间信息,可用于系统时间同步。 4. **第7章:智能安防报警系统** 串口可能用于连接...
JavaScript应用实例-高德地图经纬度求实际距离.js
本篇文章将深入探讨“LBS之百度地图实例”,并分享如何在Android应用中集成和使用百度地图API。 首先,我们需要理解LBS的基本原理。LBS依赖于获取用户的地理位置信息,这通常是通过手机的GPS模块实现的。然而,如果...
"天地图"是中国国家地理信息公共服务平台的重要组成部分,它提供了丰富的测绘地理信息数据,包括卫星影像、地形图、街景图...这个实例为初学者提供了一个很好的起点,帮助他们快速上手并理解天地图在实际项目中的运用。