谁有这件衣服游戏建筑三视图内视图

热门推荐:
您当前的位置:
安卓如何实现在屏幕中照片和说明文字的网格视图
时间: &&&&&&作者:zyj&&&&&&来源:&&&&&&&&&&
语言:中文
&&& 例4.7在Eclipse中创建Android项目名称为4.7.实现在屏幕中添加用于显示照片和说明文字的网格视图。
&&& (1)修改新建项目的tes\layout目录下的布局文件main.xml.将狱认添加的Text View组件侧除,然后添加一个id属性为gridViewl的Geld View组件,并设皿其列数为4,也就是每行显示4张图片,修改后的代码如下:
&&& (2)编写用于布局网格内容的XML布局文件items.xml。在该文件中。采用垂直线性布局管理器,并在该布局管理器中添加一个ImageVew组件和一个TextView组件。分别用于显示网格视图中的图片和说明文字,具体代码如下:
&&& (3)在主活动的方法中。首先获取布局文件中添加的List View组件,然后创建两个用于保存图片id和说明文字的数组,并将这些图片id和说明文字添加到List集合中。再创建一个SimplcAdaptcr简单适配器,最后将该适配器与Grid View相关联,其体代码如下:
(已有0条评论)
你还可以输入200字
  编辑推荐
Copyright (c) 2012
All Rights Reserved. 琵琶网卧龙吟专区版权所有.
抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间
享受健康生活1032人阅读
Android游戏开发中常用的三种视图是View、SurfaceView和GLSurfaceView
下面简单介绍这三种视图:
View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;
SurfaceView:基于View视图进行拓展的视图类,更适用于2D游戏开发;
GLSurfaceView:基于SurfaceView视图类再次拓展的视图类,用于3D游戏开发的视图。
在2D游戏开发中,大致分为两种游戏框架:View游戏框架和SurfaceView游戏框架。两者的主要区别有:
1) 更新画布
View是由系统主UI线程进行更新,通过调用View提供的postInvalidate()和invalidate()这两个函数重新绘制的。棋牌类游戏,其画面更新属于被动更新,这类游戏适用于View游戏框架。
SurfaceView可在UI线程或者新的线程中更新。RPG、飞行射击类游戏,其画面更新属于主动更新,需要不断重绘,这类游戏实用于SurfaceView游戏框架。
2)视图机制
View视图没有双缓冲机制,而SurfaceView视图有。
View游戏框架,此Demo跟踪用户的方向键点击事件,以及触屏事件,具体步骤如下:
1.新建Android项目“ViewDemo”,此处略去若干字
2.创建一个类MyView,此类继承View,代码如下:
package com.cpxiao.
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.util.AttributeS
import android.view.KeyE
import android.view.MotionE
import android.view.V
* Created by cpxiao on 15/9/19.
public class MyView extends View {
private Paint mP
* 重写构造方法
public MyView(Context context) {
super(context);
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
private void init() {
setFocusable(true);
mPaint = new Paint();
mPaint.setColor(Color.RED);
mPaint.setTextSize(30);
* 重写绘图方法
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawText("MyView", textX, textY, mPaint);
int textX = 100;
int textY = 100;
* 重写按键按下事件的方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
textY -= 10;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
textY += 10;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
textX -= 10;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
textX += 10;
invalidate();
return super.onKeyDown(keyCode, event);
* 重写按键抬起事件的方法
public boolean onKeyUp(int keyCode, KeyEvent event) {
return super.onKeyUp(keyCode, event);
* 重写触屏事件方法
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_DOWN) {
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
} else if (event.getAction() == MotionEvent.ACTION_UP) {
invalidate();
return true;
3.MainActivity代码如下:
package com.cpxiao.
import android.app.A
import android.os.B
import android.view.V
import android.view.W
import android.view.WindowM
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = new MyView(this);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(view);
SurfaceView游戏框架
1.新建Android项目“SurfaceViewDemo”,此处略去若干字
2.新建类“MySurfaceView”,此类继承SurfaceView,并且实现android.view.SurfaceHolder.Callback接口,代码如下:
package com.cpxiao.
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.util.AttributeS
import android.view.MotionE
import android.view.SurfaceH
import android.view.SurfaceV
* Created by cpxiao on 15/9/19.
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder mSurfaceH
private Paint mP
private int textX = 100;
private int textY = 100;
public MySurfaceView(Context context) {
super(context);
public MySurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
public MySurfaceView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
private void init() {
mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);
mPaint = new Paint();
mPaint.setColor(Color.RED);
mPaint.setTextSize(30);
* 重写SurfaceHolder.Callback接口的三个方法surfaceCreated()、surfaceChanged()、surfaceDestroyed()
* 当SurfaceView被创建完成后响应的方法
public void surfaceCreated(SurfaceHolder surfaceHolder) {
* 当SurfaceView状态发生改变时响应的方法
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
* 当SurfaceView状态Destroyed时响应的方法
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
* 自定义绘图方法
private void myDraw() {
Canvas canvas = mSurfaceHolder.lockCanvas();
* 在绘制之前需要将画布清空,否则画布上会显示之前绘制的内容,以下三种方法效果一致*/
canvas.drawRect(0,0,getWidth(),getHeight(),new Paint());
canvas.drawColor(Color.WHITE);
canvas.drawRGB(255, 255, 255);
canvas.drawText("mySurfaceView", textX, textY, mPaint);
mSurfaceHolder.unlockCanvasAndPost(canvas);
* 重写触屏监听方法
public boolean onTouchEvent(MotionEvent event) {
textX = (int) event.getX();
= (int) event.getY();
return true;
3.MainActivity代码如下:
package com.cpxiao.
import android.app.A
import android.os.B
import android.view.W
import android.view.WindowM
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
MySurfaceView view = new MySurfaceView(this);
setContentView(view);
到此步骤为止,实现了和ViewDemo一致的效果。但是游戏中不会等用户按键或者触屏之后才绘制画布,往往会每隔一段时间刷新画布,比如游戏中的计时器、背景中的流水、动物等等,这些元素虽然不与用户交互但却是动态的。所以游戏开发中需要有一个线程实时更新游戏元素的状态。
完整的MySurfaceView代码如下:
package com.cpxiao.
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.util.AttributeS
import android.util.L
import android.view.MotionE
import android.view.SurfaceH
import android.view.SurfaceV
* Created by cpxiao on 15/9/19.
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback, Runnable {
private SurfaceHolder mSurfaceH
private Paint mP
private int textX = 100;
private int textY = 100;
private Thread mT
private boolean flag = false;
private Canvas mC
private int screenWidth, screenH
public MySurfaceView(Context context) {
super(context);
public MySurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
public MySurfaceView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
private void init() {
mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);
mPaint = new Paint();
mPaint.setColor(Color.RED);
mPaint.setTextSize(30);
setFocusable(true);
* 重写SurfaceHolder.Callback接口的三个方法surfaceCreated()、surfaceChanged()、surfaceDestroyed()
* 当SurfaceView被创建完成后响应的方法
public void surfaceCreated(SurfaceHolder surfaceHolder) {
screenWidth = getWidth();
screenHeight = getHeight();
Log.d("CPXIAO", "screenWidth = " + screenWidth);
Log.d("CPXIAO", "screenHeight = " + screenHeight);
flag = true;
mThread = new Thread(this);
mThread.start();
* 当SurfaceView状态发生改变时响应的方法
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
* 当SurfaceView状态Destroyed时响应的方法
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
flag = false;
* 自定义绘图方法
private void myDraw() {
mCanvas = mSurfaceHolder.lockCanvas();
if (mCanvas != null) {
* 在绘制之前需要将画布清空,否则画布上会显示之前绘制的内容,以下三种方法效果一致*/
mCanvas.drawRect(0, 0, getWidth(), getHeight(), new Paint());
mCanvas.drawColor(Color.WHITE);
mCanvas.drawRGB(255, 255, 255);
mCanvas.drawText("mySurfaceView", textX, textY, mPaint);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (mSurfaceHolder != null) {
mSurfaceHolder.unlockCanvasAndPost(mCanvas);
* 重写触屏监听方法
public boolean onTouchEvent(MotionEvent event) {
textX = (int) event.getX();
textY = (int) event.getY();
return true;
private int moveX = 10;
private int moveY = 10;
* 程序逻辑代码
private void logic() {
if (textX & 0) {
moveX = 10;
} else if (textX & screenWidth) {
moveX = -10;
if (textY & 0) {
moveY = 10;
} else if (textY & screenHeight) {
moveY = -10;
textX += moveX;
textY += moveY;
private static final int REFRESH_TIME = 50;
public void run() {
while (flag) {
long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
long use_time = end -
if (use_time & REFRESH_TIME) {
mThread.sleep(REFRESH_TIME - use_time);
} catch (Exception e) {
e.printStackTrace();
代码说明:
1)线程标志位flag
便于消亡线程
防止重复创建线程,避免程序异常
2)获取视图的宽高
getWidth()和getHeight()
获取视图的宽高一定要在视图创建之后才可获取,即surfaceCreated之后获取,否则一直为0。因为视图还未创建之前是没有宽高值的
3)绘制时try catch finally
判断Canvas是否为null
为防止绘制出错无法运行到解锁提交这一步,将unlockCanvasAndPost放在finally中执行,执行前先判断一下SurfaceHolder是否为空
4)刷新时间尽可能保持一直,保证帧数
根据逻辑处理用时,计算出每次绘制休眠时间
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:14787次
排名:千里之外
原创:12篇
(2)(1)(1)(4)(5)> 【答案带解析】近年许多电视台推出户外有奖冲关的游戏节目,如图(俯视图)是某台设计的冲关活动中的...
近年许多电视台推出户外有奖冲关的游戏节目,如图(俯视图)是某台设计的冲关活动中的一个环节.要求挑战者从平台上跳到以O为转轴的快速旋转的水平转盘上,而不落入水中.已知平台到转盘盘面的竖直高度为1.25m,平台边缘到转盘边缘的水平距离和转盘半径均为2m,转盘以12.5r/min的转速匀速转动.转盘边缘间隔均匀地固定有6个相同障碍桩,障碍桩及桩和桩之间的间隔对应的圆心角均相等.若某挑战者在如图所示时刻从平台边缘以水平速度沿AO方向跳离平台,把人视为质点,不计桩的厚度,g取10m/s2,则能穿过间隙跳上转盘的最小起跳速度为( )A.4m/sB.5m/sC.6m/sD.7m/s
挑战者从平台边缘水平挑起后做平抛运动,要求挑战者起跳后在空中运动时间内转盘正好转过30°,由此列方程可正确解答.
人起跳后做平抛运动,因此在竖直方向上有:
由此解得时间t=0.5s
转盘的角速度为:ω=2πn=
转盘转过所用时间为:
要使人能跳过空隙,时间应该小于0.4s,因此根据水平方向匀速运动有:
解得:v=5m/s,故ACD错误,B...
考点分析:
考点1:线速度、角速度和周期、转速
相关试题推荐
如图,有一对等量异种电荷分别位于空间中的a点和f点,以a点和f点为顶点作一正立方体.现在各顶点间移动一试探电荷,关于试探电荷受电场力和具有的电势能以下判断正确的是( )A.在b点和d点受力大小相等,方向不同B.在c点和h点受力大小相等,方向相同C.在b点和d点电势能相等D.在c点和h点电势能相等
利用传感器和计算机可以研究快速变化的力的大小,实验时让质量为M的某消防员从一平台上自由下落,下落2m后双脚触地,接着他用双腿弯曲的方法缓冲,使自身重心又下降了0.5m,最后停止,用这种方法获得消防员受到地面冲击力随时间变化的图线如图所示,根据图线所提供的信息,以下判断正确的是( )A.t1时刻消防员的速度最大B.t2时刻消防员的速度最大C.t3时刻消防员的速度最小D.t4时刻消防员的速度最小
如图,在粗糙的水平面上,静置一矩形木块,木块由A、B两部分组成,A的质量是B的3倍,两部分接触面竖直且光滑,夹角θ=30&,现用一与侧面垂直的水平力F推着B木块贴着A匀速运动,A木块依然保持静止,则A受到的摩擦力大小与B受到的摩擦力大小之比为( )A.3B.C.D.
如图所示电路,电键闭合后,电压表和电流表有一定示数,后来由于某个电阻出现故障,导致两个电表示数均变大,则可能的是( )A.R1断路B.R2短路C.R3短路D.R4短路
在武汉上空,水平放置一根通以由西向东电流的直导线,在地磁场的作用下,此导线( )A.受到向上偏北的安培力B.受到向下偏北的安培力C.受到向上偏南的安培力D.受到向下偏南的安培力
题型:选择题
难度:中等
Copyright @
满分5 学习网 . All Rights Reserved.后使用快捷导航没有帐号?
查看: 146|回复: 1
有大神能设计出这套衣服吗或者这套衣服的出处
主题帖子积分
Lv.2, 积分 211, 距离下一级还需 389 积分
Lv.2, 积分 211, 距离下一级还需 389 积分
发表于 前天&00:18
求大佬做个模版出来 必有重谢
(32.76 KB, 下载次数: 2)
前天&00:17 上传
主题帖子积分
Lv.2, 积分 158, 距离下一级还需 442 积分
Lv.2, 积分 158, 距离下一级还需 442 积分
发表于 前天&10:44
这。。有点丑啊
17173论坛手机优化版正式上线,欢迎使用手机浏览器访问论坛并给我们提建议~一个通过解析 psd 文件生成各类游戏视图的工具。 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
计划制作一款通过解析 psd 文件来生成各类游戏视图的工具,望大家能给点意见。
blog 地址:
github 项目地址:
已完成从 psd 到 quarkjs 的导出,接下来是完成 psd 到 cocos2d-html5 的导出。
看了哈 猛~~~·
厉害,怎么解析psd啊?
blog 中有描述到,利用 extendScript 解析 psd,再进行拼凑组合。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的}

我要回帖

更多关于 游戏人设原画三视图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信