PIXI Sprite的定位,尺寸和旋轉-PIXI文檔翻譯(2)

[b]1、定位Sprite[/b]
現在你知道如何創建和顯示精靈,讓我們瞭解如何定位和調整它們的大小。

在前面的例子中,貓精靈添加到舞臺的左上角。該貓的x位置爲0,y位置爲0.您可以通過更改其值x和y屬性的值來更改貓的位置。這裏是如何通過將貓x和y屬性值設置爲96,使貓在舞臺中央。


cat.x = 96;
cat.y = 96;

setup 在創建精靈後,在函數的任何位置添加這兩行代碼。


function setup() {

//Create the `cat` sprite
var cat = new Sprite(resources["images/cat.png"].texture);

//Change the sprite's position
cat.x = 96;
cat.y = 96;

//Add the cat to the stage so you can see it
stage.addChild(cat);

//Render the stage
renderer.render(stage);
}


(注意:在這個例子中, Sprite是一個別名for PIXI.Sprite,TextureCache是一個別名for PIXI.utils.TextureCache,並且resources是一個別名, PIXI.loader.resources如前所述。我將使用別名,從現在開始,對所有Pixi對象和方法使用相同的格式。)

這兩行新代碼會將cat向右移動96像素,向下移動96像素。結果如下:

[img]http://dl2.iteye.com/upload/attachment/0123/3377/1334c560-f3ec-3785-8211-3ef7541afa9a.png[/img]

貓的左上角(它的左耳)代表它的x和y 錨點。要使貓向右移動,請增加其x屬性的值。要使貓向下移動,請增加其y屬性的值。如果貓的x值爲0,它將在舞臺的左側。如果它的y值爲0,它將在舞臺的最頂端。


[img]http://dl2.iteye.com/upload/attachment/0123/3379/689fadee-4800-37f9-8872-837b7cce5cae.png[/img]
而不是單獨設置精靈x和y屬性,您可以將它們一起設置在一行代碼,如下所示:

sprite.position.set(x, y)



[b]2、尺寸和比例[/b]
您可以通過設置改變精靈的尺寸width和height 性能。這裏是如何給貓一個width80像素和height120像素。

cat.width = 80;
cat.height = 120;


將這兩行代碼添加到setup函數,如下所示:


function setup() {

//Create the `cat` sprite
var cat = new Sprite(resources["images/cat.png"].texture);

//Change the sprite's position
cat.x = 96;
cat.y = 96;

//Change the sprite's size
cat.width = 80;
cat.height = 120;

//Add the cat to the stage so you can see it
stage.addChild(cat);
}


結果如下:


[img]http://dl2.iteye.com/upload/attachment/0123/3381/e8c1039a-daa5-3797-bad1-dc8b784879d7.png[/img]

你可以看到貓的位置(它的左上角)沒有改變,只有它的寬度和高度。


[img]http://dl2.iteye.com/upload/attachment/0123/3383/11f3db7f-d8d0-3a13-a142-05e8486bbbfc.png[/img]


精靈也有scale.x和scale.y屬性,改變精靈的寬度和高度成比例。這裏是如何將貓的尺寸設置爲一半大小:

cat.scale.x = 0.5;
cat.scale.y = 0.5;


比例值是0和1之間的數字,表示精靈大小的百分比。1表示100%(全尺寸),而0.5表示50%(半尺寸)。你可以通過將sprite的尺寸值設置爲2來將sprite的尺寸加倍,如下所示:

cat.scale.x = 2;
cat.scale.y = 2;


Pixi有一個替代的,簡潔的方法爲您設置精靈的規模在一行代碼使用該scale.set方法。

cat.scale.set(0.5, 0.5);


如果吸引你,使用它!

[b]3、旋轉[/b]
您可以通過將sprite的rotation屬性設置爲以弧度爲單位的值來使sprite旋轉。

cat.rotation = 0.5;


但是,旋轉發生在哪個點?

你見過一個精靈的左上角代表它x和y地位。該點稱爲錨點。如果你將sprite的rotation 屬性設置爲類似的0.5,旋轉將圍繞精靈的錨點。這個圖表顯示了這將對我們的貓精靈有什麼影響。


[img]http://dl2.iteye.com/upload/attachment/0123/3385/5f7d7fb3-38e2-3cfe-b32c-528599661b8f.png[/img]


你可以看到錨點,貓的左耳,是貓所旋轉的假想圓的中心。如果你想讓精靈圍繞它的中心旋轉怎麼辦?改變精靈的anchor點,使它的中心在精靈,像這樣:

cat.anchor.x = 0.5;
cat.anchor.y = 0.5;


anchor.x和anchor.y值表示紋理的尺寸的百分比,從0到1(0%至100%)。將其設置爲0.5將紋理對準點的中心。點本身的位置不會改變,只是紋理位於其上的方式。

下一個圖表顯示瞭如果您將旋轉的精靈居中定位,旋轉的精靈會發生什麼。

[img]http://dl2.iteye.com/upload/attachment/0123/3387/12842c61-885a-38a3-9a79-8f431a99ca92.png[/img]

你可以看到sprite的紋理向上和向左移動。這是一個重要的副作用要記住!

就像使用position和scale,你可以設置錨的x和y值用一行代碼,像這樣:

sprite.anchor.set(x, y)


Sprite也有一個pivot以類似的方式工作的屬性 anchor。pivot設置精靈的x / y原點的位置。如果更改樞軸點,然後旋轉精靈,它將圍繞該原點旋轉。例如,下面的代碼將精靈的pivot.x點設置爲32,pivot.y點指向32

cat.pivot.set(32, 32)


假設sprite是64x64像素,sprite現在將圍繞其中心點旋轉。但是請記住:如果你改變精靈的旋轉點,你也改變了它的x / y原點。

那麼,anchor和之間有什麼區別pivot?他們真的很相似!anchor使用0到1的歸一化值來移動精靈圖像紋理的原點。 pivot使用像素值來移動精靈的x和y點的原點。你應該使用什麼?隨你便。只是玩兩個人,看看你喜歡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章