- 浏览: 111627 次
- 性别:
- 来自: 厦门
最新评论
-
人可德福:
非常感谢附上源码包的楼主
实例16--心理测试 -
一口三个汉堡:
ljt122000 写道呵呵....看来大多数搞程序的被切图弄 ...
移动开发那点事-抱怨的移动开发程序员 -
ljt122000:
呵呵....看来大多数搞程序的被切图弄得有点郁闷啊...不管是 ...
移动开发那点事-抱怨的移动开发程序员 -
一口三个汉堡:
<div class="quote_title ...
今天看了自己博客的电子书,眼泪一直掉!感谢ITeye伴我成长! -
xdwangiflytek:
楼主发现自己的成长才是最可贵的
今天看了自己博客的电子书,眼泪一直掉!感谢ITeye伴我成长!
这个第四个实例,我只是单纯的把j2me的代码换成android的,所以屏幕的大小的适应性和好不好看,我都没有考虑。
下面给出第四个实例的MainView的代码
效果图:
package com.wjh.demon_4; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; 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; String keyAction = ""; Thread gameThread = null; boolean isGame = true; SurfaceHolder holder = null; public char m_achWords[][] = //存储原始字符矩阵 { {'H', 'R', 'T', 'W', 'T'}, {'E', 'I', 'H', 'O', 'H'}, {'L', 'G', 'I', 'R', 'R'}, {'L', 'H', 'N', 'L', 'E'}, {'O', 'T', 'G', 'D', 'E'} }; public int m_nCurLine = 0; //记录当前行 public int m_anDis[] = { 0,1,2,3,4 }; public boolean m_bGameOK = false; //组合成功的标志 public MainView(Context context) { super(context); // TODO Auto-generated constructor stub setFocusable(true); getHolder().addCallback(this); holder = this.getHolder(); } @Override public void run() { // TODO Auto-generated method stub while(isGame) { input(); logic(); doDraw(); try { Thread.sleep(100); } 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() { } //逻辑判断 public void logic() { if( m_bGameOK ) return; m_bGameOK = true; for( int n = 0; n < 5; n ++ ){ if( m_anDis[n] != 0 ){ m_bGameOK = false; break; } } } 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) { Paint backGround = new Paint(); backGround.setColor(Color.BLACK); //清屏 canvas.drawRect(0, 0, getWidth(), getHeight(), backGround); //设置画笔颜色 Paint cPaint = new Paint(); //显示字符 //realCol为所显示的字符在原始矩阵中的列数 int realCol = 0; //row为行数,col为列数 for( int row = 0; row < 5; row ++ ){ if( row == m_nCurLine ) //当前行的字符用黄色显示 cPaint.setColor(Color.YELLOW); else cPaint.setColor(Color.WHITE); //非当前行的字符用白色显示 for( int col = 0; col < 5; col ++ ){ //利用偏位数得到与当前位置对应的原始矩阵中的位置 realCol = m_anDis[row] + col; if( realCol > 4 ) realCol = realCol - 5; canvas.drawText(""+m_achWords[row][realCol], 30 + col * 15, 30+row * 15, cPaint); } } cPaint.setColor(Color.WHITE); if( m_bGameOK ) canvas.drawText("真棒,完全正确", 50, 120, cPaint); else canvas.drawText("左右移动字符,使纵向拼写正确", 40, 120, cPaint); } @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(); } public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if( m_bGameOK ) return true; //得到当前按键状态 //如果按下方向键的上键,则调整当前行的位置 if( keyCode == KeyEvent.KEYCODE_DPAD_UP ) m_nCurLine --; //如果按下方向键的下键,则调整当前行的位置 if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN) m_nCurLine ++; //调整当前行的值,使它在0到4之间 if( m_nCurLine < 0 ) m_nCurLine += 5; if( m_nCurLine > 4) m_nCurLine -= 5; //如果按下方向键的左键,则当前行的字符左移 if( keyCode == KeyEvent.KEYCODE_DPAD_LEFT) m_anDis[m_nCurLine] ++; //如果按下方向键的右键,则当前行的字符右移 if( keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) m_anDis[m_nCurLine] --; if( m_anDis[m_nCurLine] < 0 ) m_anDis[m_nCurLine] += 5; if( m_anDis[m_nCurLine] > 4 ) m_anDis[m_nCurLine] -= 5; return super.onKeyDown(keyCode, event); } }
apk文件(将后缀改为apk):Demon_4.zip
源代码文件:Demon_4.rar
发表评论
-
android-单独开启闪光灯方法--适用于moto手机
2011-10-14 10:11 6888代码来自于http://code.google.com/p/s ... -
android线性布局布局的layout_weight
2011-10-08 16:23 1637对于LinearLayout的layout_weight属性, ... -
android-xml文件解析教程
2011-09-21 00:32 2035在讨论群里里面有人在问xml的解析方法,我就弄了个简单的d ... -
实例17--无敌抢钱鸡
2011-09-03 21:32 982随着转化的进行,难度也在增加,这次的实例我弄了一天,当然有 ... -
实例16--心理测试
2011-09-01 11:59 1962隔了两个月,又重新开 ... -
实例-15---猜数字
2011-06-23 23:48 1324经典游戏,猜数字。各种不解释,因为最近发生了一些事情,所以 ... -
实例14---不准+弱智的生物钟
2011-06-19 12:06 1116这个例子在java me主要是演示form的使用,在and ... -
实例13---点击速度测试机
2011-06-18 00:15 974在原java me中通过这个例子是想要讲解RecordSt ... -
实例12--会动的地图
2011-06-16 23:00 1209前面已经出了一个展示地图的例子,这个例子主要运用了将地图的 ... -
实例11--播放按键声音
2011-06-13 11:35 7232实例11播放按键声音,在java me中有playTone ... -
实例10--不搭的跳舞机
2011-06-10 23:32 1687还是要重申一遍,因为只是转化,所以原j2me的问题,我不会 ... -
android的Sprite,TiledLayer,LayerManager
2011-06-08 10:42 3291因为android没有提供这些,而我要把j2me的一本游戏 ... -
实例9---我的地图
2011-06-08 10:18 1063实例9,在j2me中是使用了图层管理和地图图层,在andr ... -
实例8--《很幼稚的‘小’鸡快跑》
2011-06-04 22:08 1354实例8--《小鸡快跑》,原书用的是java me 提供的s ... -
实例7---android 版Sprite代码
2011-06-03 23:38 2945因为android 没有提供sp ... -
实例6--文字滚屏
2011-06-02 23:59 1062这个实例的本意展示j2me的字体,和滚屏的实现。我只实现了 ... -
实例5--自动换行(修订版)
2011-06-02 00:13 2031这个实例主要是运用字体的只是,但是android自带就几种 ... -
实例3--使用surfaceView
2011-05-30 19:55 1319在那本书用的是GameCanvas,我就用surfaceVi ... -
实例2---获得按键值
2011-05-29 00:08 1132《手机游戏50例》第二个实例为将按键值显示在屏幕上,下面给出M ... -
《java手机游戏50例》转成android版。。--游戏View框架代码
2011-05-28 20:48 3550这学期我们班教j2me游戏开发,教材是《java游戏50例 ...
相关推荐
C语言实例解析精粹(第二版) 光盘代码 本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏 214 模拟扫雷游戏 215 推...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色模式...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏 214 模拟扫雷游戏 215 推箱子游戏 216 五子棋游戏 第八部分 综合实例篇 ...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以在001目录下找到), 拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...
138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色...