日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)

發(fā)布時間:2025/4/5 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/**
?* 畫筆
?*?
?* @author 岳振華
?*?
?*/
@SuppressWarnings("unused")
public class PaintSrufaceView extends SurfaceView implements Callback, Runnable {
private SurfaceHolder sfh;
private Thread thread;
private int surfaceW, surfaceH;
private Canvas canvas;
private boolean flag;//surfaceView是否銷毀的標(biāo)志位

public PaintSrufaceView(Context context) {
super(context);


/********** 畫圖所必需 *********************/
sfh = this.getHolder();// 獲得surfaceHolder對象
sfh.addCallback(this);


thread = new Thread(this);
this.setKeepScreenOn(true);// 保持屏幕常亮
this.setFocusable(true);
/********************************************/





}


/**
* 開始動畫
*/
@Override
public void startAnimation(Animation animation) {
super.startAnimation(animation);
}


/**************************** callback的幾個方法 ********************/


/**
* 當(dāng)Surface第一次創(chuàng)建后會立即調(diào)用該函數(shù) 一般情況下都是在另外的線程來繪制界面,所以不要在這個函數(shù)中繪制Surface
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
surfaceW = this.getWidth();
surfaceH = this.getHeight();
thread = new Thread(this);
flag=true;
thread.start();// 開啟線程


}


/**
* 當(dāng)Surface的狀態(tài)(大小和格式)發(fā)生變化的時候會調(diào)用 該函數(shù) 在surfaceCreated調(diào)用后該函數(shù)至少會被調(diào)用一次
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {


}


@Override
public void surfaceDestroyed(SurfaceHolder holder) {
flag=false;
}


/**************************** callback的幾個方法 ********************/


/**
* 繪圖方法
*/
private void draw() {
try {
// 獲得canvas實例
canvas = sfh.lockCanvas();
if (canvas != null) {
// 利用填充畫布,刷屏
canvas.drawColor(Color.BLACK);
/****************畫圓*****************/
//消除 鋸齒前
Paint paint1 =new Paint();
paint1.setColor(Color.YELLOW);
canvas.drawCircle(50, 50, 20, paint1);
//消除 鋸齒后
paint1.setAntiAlias(true);?
canvas.drawCircle(100, 50, 20, paint1);
/***************************************/
/************寫文本********************/
Paint paint3=new Paint();
paint3.setColor(Color.RED);
canvas.drawText("無透明", 100, 200, paint3);
//半透明
Paint paint2=new Paint();
paint2.setColor(Color.RED);
paint2.setAlpha(0x77);
canvas.drawText("半透明", 100, 220, paint2);
/**************************************/
/*************錨點**********************/
//-----設(shè)置繪制文本的錨點
canvas.drawText("錨點", 20, 90, new Paint());
Paint paint4 = new Paint();
paint4.setColor(Color.GREEN);
//設(shè)置以文本的中心點繪制
paint4.setTextAlign(Paint.Align.CENTER);
canvas.drawText("錨點", 20, 105, paint4);


}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != canvas) {
sfh.unlockCanvasAndPost(canvas);// 提交畫布
}
}
}


@SuppressWarnings("static-access")
@Override
public void run() {
while(flag)
{
// 繪圖
draw();
try {
thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}



}
}

轉(zhuǎn)載于:https://www.cnblogs.com/retacn-yue/archive/2012/09/05/2761347.html

總結(jié)

以上是生活随笔為你收集整理的android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。