LibGdx Box2d單位換算

2021-06-14 01:38:43 字數 1582 閱讀 8156

在手機上用的單位是畫素px,而在box2d中用的是公尺m,box2d用於模擬真實世界,

而真實世界是用公尺為單位來丈量的,所以為了更好地模擬真實世界,所以box2d以

公尺為單位(這是我自己的理解)

為了更好地觀察box2d世界裡的物體,我們需要乙個box2ddebugrenderer(渲染器)

和乙個orthographiccamera(照相機),這裡的orthographiccamera用的單位也是公尺,

為什麼是公尺?可以把orthographiccamera當成是我們的眼睛,眼睛看到的是以公尺為單位

來衡量的

package com.joye3g.change;

import com.badlogic.gdx.gdx;

import com.badlogic.gdx.graphics.gl10;

import com.badlogic.gdx.graphics.orthographiccamera;

import com.badlogic.gdx.math.vector2;

import com.badlogic.gdx.physics.box2d.body;

import com.badlogic.gdx.physics.box2d.bodydef;

import com.badlogic.gdx.physics.box2d.bodydef.bodytype;

import com.badlogic.gdx.physics.box2d.box2ddebugrenderer;

import com.badlogic.gdx.physics.box2d.fixturedef;

import com.badlogic.gdx.physics.box2d.polygonshape;

import com.badlogic.gdx.physics.box2d.world;

private static final float pxtm = 30;//每30個畫素就是1公尺

private orthographiccamera camera;

private box2ddebugrenderer renderer;

private world world;

private body body;

@override

public void create()

@override

public void dispose()

@override

public void render()

@override

public void resize(int width, int height)

@override

public void pause()

@override

public void resume()

}

執行介面如下:

**中設定剛體的位置為0,0   ,從執行介面可以看出,物理世界的原點是視窗的中心點

libgdx, box2d,建立工廠

world,世界 有兩個工廠,它們分別建立 物體body 與 關節joint 工廠方法的使用有如下好處 方便記憶體管理,方便物件的管理,有什麼物件都是由它建立的,那麼管理起來當然是得心應手了。另外,關節是連線body的唯一方法,它倆可以看成是平級的關係。有10種關節型別。body有乙個工廠,這個工廠...

cocos2d筆記 cocos2d的單例模式

cocos2d充分使用了單例設計模式,這裡有必要提及它是因為它是經常是討論熱點。大體上說,乙個singleton是乙個類,它在應用使用期中僅僅例項化一次。為了確保如此,就要使用乙個既建立又訪問此物件例項的靜態方法。因此,你不使用alloc init或者靜態自動釋放初始化器 static autore...

D2D技術介紹

一 d2d技術概述 d2d device to device 通訊是由3gpp組織提出的一種在通訊系統的控制下,允許lte終端之間在沒有基礎網路設施的情況下,利用小區資源直接進行通訊的新技術。它能夠提公升通訊系統的頻譜效率,在一定程度上解決無線通訊系統頻譜資源匱乏的問題。與此同時,它還可以有效降低終...