2014-02-18 75 views
2

我有一個精靈,我與借鑑:雪碧調整libGDX

sprite.draw(spriteBatch); 

這個工程.... 我有兩個spites顯示相同,但​​具有不同的分辨率...

讓我們說X1 = H:100像素,X2 = H:200像素

在非常包裝類精靈的我有這樣的方法:

public static void setSclae(float newScale, Sprite sprite) { 
    // sprite.scale(newScale - sprite.getScaleX()); 
    sprite.setScale(newScale); 
} 

(我都嘗試,既沒有工作)文檔:http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Sprite.html#setScale(float)

在創建包裝類的我這樣調用該函數:

setScale(setSide/(setWidth ? this.sprite.getBoundingRectangle().width : this.sprite.getBoundingRectangle().height)); 

setWidth =>布爾(你想設置高度還是寬度?) 這個。精靈是一個精靈。原產地@(0,0)

的問題是:我想設置的高度,無論哪個精靈進來,以50像素...

對於X1:setScale(50/100) - > 0.5 ˚F

對於X2:setScale(50/200) - > 0.25F

憑啥這是否piese的代碼無法正常工作?

感謝您的幫助了

你的,

弗洛裏安

PS:這裏的包裝類的構造函數:

public Drawable(Sprite sprite, Vector2 position, Anchor anchor, float setSide, boolean setWidth, boolean flipH, boolean flipV) { 
    this.sprite = new Sprite(sprite); 
    this.sprite.setOrigin(0, 0); 
    setPosition(anchor, position.x, position.y); 
    setScale(setSide/(setWidth ? this.sprite.getBoundingRectangle().width : this.sprite.getBoundingRectangle().height)); 
    this.sprite.flip(flipV, flipH); 
} 

回答

0

我會回答它自己。我如何解決它?我使用TexTureRegion實現了我自己的「Sprites」類。你可能不需要一切。 Pastebin:http://pastebin.com/1Y25HFBm IGameObject接口摺疊。 [你不需要IIntersect接口...

import com.badlogic.gdx.graphics.g2d.SpriteBatch; 

public interface IGameObject { 

public static enum Anchor {TopLeft, MiddleLeft, LowLeft, TopMiddle, MiddleMiddle, LowMiddle, TopRight, MiddleRight, LowRight} 

public void Update(GameTime.GameTimeArgs gameTimeArgs); 

public void Draw(SpriteBatch spriteBatch); 

public void setPosition(Anchor a, float x, float y); 

public void setScale(float newScale); 

public String toString(); 
} 

希望幫助:d

你的,

弗洛裏安