当前位置:操作系统 > 安卓/Android >>

android 2D 游戏的开发的方法

              最近学习了android 2D 应用的开发,拿来和大家分享一下,学习2D 开发前我们先了解一下Su易做图ceView的使用以及贴图技术的使用,最后呢,是一个简单的2的游戏的实现。
 
 1.Su易做图ceView的一些用法
 
                     提供了一个专门的绘图渲染的图形嵌入在一个视图层次;Su易做图ceView负责将图形正确的显示在屏幕上,访问底层图形是通过Su易做图ceHolder提供接口,可通过调用getHolder(),图形创建Su易做图ceView的窗口是可见的;实现方法是su易做图ceCreated(Su易做图ceHolder)和su易做图ceDestroyed(Su易做图ceHolder)销毁图形
 
 
                    简单的例子如下
[java]  
package com.nyist.wj;  
  
import android.app.Activity;  
import android.content.Context;  
import android.graphics.Canvas;  
import android.graphics.Color;  
import android.graphics.Paint;  
import android.graphics.Rect;  
import android.graphics.RectF;  
import android.graphics.Paint.Style;  
import android.os.Bundle;  
import android.view.Su易做图ceHolder;  
import android.view.Su易做图ceView;  
  
public class Su易做图ceViewActivity extends Activity {  
    MySu易做图ceView mySu易做图ceView;  
  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
  
        mySu易做图ceView = new MySu易做图ceView(this);  
        setContentView(mySu易做图ceView);  
  
    }  
    public class MySu易做图ceView extends Su易做图ceView implements  
    Su易做图ceHolder.Callback {  
Su易做图ceViewActivity su易做图ceViewActivity; // Activity的引用  
Paint paint; // 画笔的引用  
  
public MySu易做图ceView(Context context) // 构造器  
{  
    super(context);  
    this.su易做图ceViewActivity = (Su易做图ceViewActivity) context; // 拿到Activity引用  
    this.getHolder().addCallback(this); // 设置生命周期回调接口的实现者  
    paint = new Paint(); // 创建画笔  
    paint.setAntiAlias(true); // 打开抗锯齿  
}  
  
@Override  
protected void onDraw(Canvas canvas) // onDraw方法  
{  
    paint.setColor(Color.WHITE); // 设置画笔颜色为白色  
    canvas.drawRect(0, 0, getWidth(), getHeight(), paint); // 绘制白色矩形背景  
    paint.reset(); // 清除画笔设置  
    paint.setARGB(50, 0, 255, 0); // 设置画笔颜色和透明度  
    paint.setStrokeWidth(5); // 设置画笔宽度  
    RectF rf = new RectF(50, 100, 160, 180); // 创建一个矩形  
    canvas.drawRect(rf, paint); // 绘制矩形  
    paint.setARGB(50, 0, 0, 255); // 设置画笔颜色和透明度  
    paint.setStyle(Style.STROKE); // 设置风格为边框  
    paint.setStrokeWidth(5); // 设置画笔宽度  
    Rect r = new Rect(200, 100, 300, 180); // 创建一个矩形  
    canvas.drawRect(r, paint); // 画一个矩形边框  
    paint.setColor(Color.RED); // 设置画笔颜色  
    paint.setAntiAlias(true); // 打开抗锯齿  
    canvas.drawCircle(100, 250, 30, paint);// 画一个圆  
    paint.setColor(Color.YELLOW); // 设置画笔颜色  
    rf = new RectF(200, 250, 300, 300); // 创建一个矩形  
    canvas.drawOval(rf, paint); // 画一个椭圆,充满矩形  
    paint.reset(); // 清除画笔设置  
    paint.setColor(Color.RED); // 设置画笔颜色  
  
    paint.setTextSize(40); // 设置文字大小  
    paint.setStyle(Style.FILL_AND_STROKE);  
    canvas.drawText("loading...", 50, 350, paint); // 画一个字符串  
}  
  
@Override  
public void su易做图ceCreated(Su易做图ceHolder holder) // 创建时被调用  
{  
    Canvas canvas = holder.lockCanvas(); // 获取画布  
    try {  
        synchronized (holder) {  
            onDraw(canvas);  
        } // 绘制  
    } catch (Exception e) {  
        e.printStackTrace();  
    } finally {  
        if (canvas != null) {  
            holder.unlockCanvasAndPost(canvas);  
        }  
    }  
}  
  
@Override  
public void su易做图ceDestroyed(Su易做图ceHolder holder) {  
} // 继承方法,空实现  
  
@Override  
// 继承方法,空实现  
public void su易做图ceChanged(Su易做图ceHolder holder, int format, int width,  
        int height) {  
}  
}  
  
}  
实现的效果是:
 
2.贴图技术的使用
    贴图技术主要包括图片的移动、旋转、透明度、等变化
下面是关于贴图技术的使用方法  首先是自定义的一个布局
[html]  
<com.nyist.wj.Mysu易做图ceView  
       android:id="@+id/mysu易做图ceview"  
       android:layout_width="fill_parent"  
       android:layout_height="fill_parent" />  
然后就是实现自定义布局引用的类
[java]  
package com.nyist.wj;  
  
import android.content.Context;  
import android.graphics.Bitmap;  
import android.graphics.BitmapFactory;  
import android.graphics.Canvas;  
import android.graphics.Matrix;  
import android.graphics.Paint;  
import android.util.AttributeSet;  
import android.view.View;  
  
public class Mysu易做图ceView extends View {  
  
 Bitmap bitmap;  
 Paint paint;  
 public Mysu易做图ceView(Context context,AttributeSet attributeSet) {  
  super(context,attributeSet);  
  // TODO Auto-generated constructor stub  
  this.initBitmap();  
    
 }  
 public  void initBitmap() {  
  // TODO Auto-
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,