編輯:Android開發教程
今天學習如何實現憤怒的小鳥,用到了JBox2D構建物理世界(這個不是這篇文章重點,但是很謝謝這個開源玩意)
一般一個獨立的物體的實體類
import org.jbox2d.dynamics.Body;
import org.liky.angrybird.util.Globals;
import org.liky.angrybird.util.ImageUtils;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
public class Bird {
private Body body;
private float r;
private int type;
public Bird(int type) {
switch (type) {
case 1:
r = Globals.PIECE_WIDTH / 2;
break;
}
this.type = type;
}
public void draw(Canvas canvas, Paint paint, Point nowPosition) {
canvas.save();
canvas.rotate((float) (body.getAngle() * 180 / Math.PI),
body.getPosition().x * Globals.RATE + nowPosition.x,
body.getPosition().y * Globals.RATE + nowPosition.y);
canvas.drawBitmap(ImageUtils.getBirdImg(type), body.getPosition().x
* Globals.RATE - r + nowPosition.x, body.getPosition().y
* Globals.RATE - r + nowPosition.y, paint);
if (Globals.birdCenterFlag) {
// 保證正在飛行的鳥的坐標在屏幕正中
//返回欄目頁:http://www.bianceng.cn/OS/extra/
nowPosition.x = (int) -(body.getPosition().x * Globals.RATE - Globals.SCREEN_WIDTH / 2);
nowPosition.y = (int) -(body.getPosition().y * Globals.RATE - Globals.SCREEN_HEIGHT / 2);
if (nowPosition.x > 0) {
nowPosition.x = 0;
}
if (nowPosition.y > 0) {
nowPosition.y = 0;
}
if (nowPosition.x < -Globals.SCREEN_WIDTH) {
nowPosition.x = -Globals.SCREEN_WIDTH;
}
if (nowPosition.y < -Globals.SCREEN_HEIGHT) {
nowPosition.y = -Globals.SCREEN_HEIGHT;
}
}
canvas.restore();
}
public Body getBody() {
return body;
}
public void setBody(Body body) {
this.body = body;
this.body.m_userData = this;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public float getR() {
return r;
}
public void setR(float r) {
this.r = r;
}
}
Android自定義View之仿QQ等級天數進度
最近一直都在看自定義View這一塊。差不多一個星期了吧。這個星期堅持每天更新博客,感覺自己的技術也有點突破,對自定義View的計算也有了更深的認識。今天坐地鐵玩手機的時候
Android ApiDemos示例解析(29):App->Notification->Status Bar
這個例子的Icons Only 和 Icons and marquee 沒有什麼特別好說明的。而Use Remote views in balloon 介紹了可 以自定
Android ApiDemos示例解析(16) App->Activity->Translucent
Activity分類示例的最後幾個例子是來顯示半透明Activity。例子大同小異。實現Activity的半透明效果主要是通過Style和 Theme來實現的。看看Tra
Android Service服務(一) Service
一、Service簡介Service是android 系統中的四大組件之一(Activity、Service、BroadcastReceiver、 ContentProv