DisplayObjectμ νΌλ² μμ±κ³Ό κ΄λ ¨νμ¬ μ§λ¬Έμ΄ μμ΅λλ€. νΉν DisplayObjectContainerλ₯Ό μ€μ¬μ μ€μ¬μΌλ‘ νμ νκ³ μΆμ΅λλ€. κ·Έλμ νΌλ²μ μ€μ¬μ μΌλ‘ μ€μ νμ΅λλ€. κ·Έλ¬λ μ΄κ²μ΄ μμμ μμΉμ μν₯μ λ―ΈμΉλ κ²μΌλ‘ λνλ¬μ΅λλ€.
μλ₯Ό λ€μ΄, μμΉλ₯Ό 0,0 (κΈ°λ³Έκ°)μΌλ‘ μ€μ νλ©΄ pixijsλ μΌμͺ½ μλ¨ λͺ¨μλ¦¬κ° μλ μ€μ¬μ μ λ°λΌ κ°μ²΄λ₯Ό λ°°μΉνλ €κ³ ν©λλ€. λ°λΌμ DisplayObjectContainerμ μμ (λ΄ κ²½μ°μλ Graphics ν΄λμ€μ μΈμ€ν΄μ€)μ΄ λ·°ν¬νΈμ μΌμͺ½ λ° μμͺ½ κ°μ₯μ리μμ λ²μ΄λ©λλ€.
νμ μ§μ μ μ€μ νλ λ°©λ²μ΄ μμ§λ§ μ¬μ ν μΌμͺ½ μλ¨ λͺ¨μ리λ₯Ό κΈ°μ€μΌλ‘ κ°μ²΄λ₯Ό λ°°μΉν©λλ€.
κ·Έλν½μ νΌλ²κ³Ό μμΉλ₯Ό μ€μμΌλ‘ μ€μ νμ¬μ΄ μμ μ μν ν λ€μμ΄ μ§μ μ μ€μ¬μΌλ‘ κ·Έλν½μ κ·Έλ Έμ΅λλ€.
http://stackoverflow.com/questions/17505169/pixi-js-pivot-affects-object-position/18007977#18007977 μ½λ μμ λ‘ stackoverflowμ λν μ§λ¬Έμ λ΅λ³νμ΅λλ€
@GoodBoyDigital νΌλ²μ΄ μμΉμ μν₯μ
μ€μ λ‘ pivot
λ° anchor
μ λν΄ νΌλ μ€λ¬μ μ΅λλ€. λ³ν© ν μ μμ΅λκΉ?
μ, pivot
μ anchor
λ (κ°λ
μ μΌλ‘) λ€λ¦
λλ€. νΌλ²μ νμ μ§μ μ μν₯μμ£Όλ λ°λ©΄ μ΅μ»€λ μμ (μμΉ μ§μ )μ
λλ€. κ·Έλλ νΌλ²μ΄ μ λλ‘ μ¬μ©λκ³ μλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€.
μ΄κ²μ κ°μ μ μΌλ‘ μ¬μ©ν μμλ κ² κ°μ΅λλ€. μ€μ λ‘ λ λλ§ (css transform-origin, flash λ±λ‘)μμ λΆλ¦¬ λ κ²μ λ³Έ μ μ΄ μμ΅λλ€. μ΄κ²μ΄ μ€λͺ λ μ¬μ© μ¬λ‘κ° μμμ΅λκΉ? κ·Έλ λ€λ©΄ λͺ¨λ κ²μ΄ κΈ°λ³Έμ μΌλ‘ ν κ°μ§λ‘ μ€μ λκ³ μ€μ λ κ²½μ° λ€λ₯Έ κ²μ μ¬μ©ν μ μμ΅λκΉ?
νΌλ²μ΄ μ μ΄ μλ ν νμ μ ν¬ν¨νμ¬ λͺ¨λ κ³³μ κ³ μ λλλ‘ κΈ°λ³Έ μ€μ λμ΄ μμΌλ©΄ νμ μ μ¬μ©ν©λκΉ?
μ λ°μ΄νΈ : λλ μμ λ°λμ κ²½μ°λ μμ§λ§ _anchor = default_ λ° _pivot = rotation_, λ λμ μ΄λ¦ IMOλ‘ κΈ°μΈκ³ μμ΅λλ€.
anchor
λ° pivot
λ λ λλ§ μμ§μμ λ§€μ° μΌλ°μ μ
λλ€. μ€μ¬μ μ€μ¬μΌλ‘ νμ νκ³ μΆμ§λ§ μμΉκ° μΌμͺ½ μλ¨μ μν΄ κ²°μ λλ λ§μ μ¬μ© μ¬λ‘κ° μμ΅λλ€. μ°λ¦¬κ° μ§μν΄μΌ ν λΏλ§ μλλΌ μμ§ ν κ²μ
λλ€.
μλ
νμΈμ, μ§κΈμ΄ λ¬Έμ λ₯Ό μ‘°μ¬ μ€μ
λλ€. μ½κ°μ μ€λͺ
μ μν΄ anchor
λ μ€νλΌμ΄νΈμ νΉμ ν κ²μ
λλ€. ν
μ€μ²λ₯Ό μ λ ¬νλ λ° μ¬μ©λ©λλ€. λλ κ·Έλ cocos2dλ‘ λ¬Όκ±΄μ λ§λ€ λ κΈ°λ₯μ΄ λ§€μ° μ μ©νλ€λ κ²μ μμμΌλ―λ‘ μ λ§ κ·Έκ²μ pixiμ μΆκ°νκ³ μΆμμ΅λλ€. pivot
λ λͺ¨λ νμ κ°μ²΄μ μνλ©° κΈ°λ³Έμ μΌλ‘ νμ μ§μ μ
λλ€.
ν΄κ²° λλλ‘ λ«μΌλ©΄ νΌλ² / μ΅μ»€κ° μλ νλλ‘ μλν©λλ€.
μ΄ λ¬Έμ λ₯Ό μ κΈ°ν΄μ μ£μ‘νμ§λ§μ΄ μ μ₯μλ₯Ό ν΅ν΄ κ²μ / μ½κ³ μμμΌλ©° μ€μμμ DisplayObjectContainerλ₯Ό νμ νλ λ°©λ²μ λν΄ μμ§ λͺ ννμ§ μμ΅λλ€. νΌλ²μ μ¬μ©νλ©΄ 컨ν μ΄λκ° λ€λ₯Έ κ³³μΌλ‘ μ΄λνμ§ μκ³ μ€μμμ λ€μ§ν μ μμ΅λλ€. μ΄λ€ μμ΄λμ΄? 93 λ²μλ³΄κ³ κ·Έκ² λ΅μ΄λΌκ³ μκ°νλλ° μ λλ‘ μ΄ν΄νμ§ λͺ»νμ μλ μμ΅λλ€. μ΄λ€ λμμ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€. κ°μ¬!
νΈμ§ : λ΄ λ¬Όμ²΄κ° νλ©΄μ κ°λ‘ μ§λ¬ μμ§μ΄κ³ μμ§μ΄λ λμ λ€μ§ν κ²μ΄λΌκ³ μΈκΈνλ κ²μ΄ λμμ΄ λ κ²μ΄λΌκ³ μκ°νμ΅λλ€. λλ λν "ν립 ν"μνκΈ° μν΄ μ€μΌμΌμ μ¬μ©νκ³ μμ΅λλ€.
@ mparker11 ν¬μΈνΈλ₯Ό μ€μ¬μΌλ‘ νμ νκ³ λ€μ§λ ( scale
)μ λ€λ¦
λλ€. pivot
λ rotation
μ κ°μ μν₯μμ€λλ€. 컨ν
μ΄λκ° λ°°μ¨μ λ°λΌ λ€μ§νλ λ°©μμ μ λλ‘ μν₯μ μ€ μ μλμ§ νμ€νμ§ μμ΅λλ€.
@GoodBoyDigitalμ λν μκ°?
@englercj μλ΅ @GoodBoyDigital μμ μ μ¬μ©λλ κ²μ λ³Ό μμλ, κ·Έκ²μ λ¬μ±νκΈ° μν΄ νλ ¬ κ³±μ
μ μ¬μ©νλ λ°©λ²μ λν κΈ°μ¬λ₯Ό μ½μ΄ PIXI.DisplayObject.prototype.updateTransform
κΈ°λ₯μνμ§λ§, λ΄ μΈμ λ΄κ° μ λ§μμ νμ₯ ν μ μλλ‘ λ³κ²½νλ λ°©λ²μ μ΄ν΄ν μ μλ€ λ³κ²½ν΄μΌ ν κ²½μ°μλ μΌν°μ
λλ€.
μ ... νΌλ²μ μ¬μ©νλ λ°©λ²μ νμ€ν μ΄ν΄νμ§ λͺ»ν©λλ€.
λλ μ£Όμ΄μ§ μμΉμμ μ€νλΌμ΄νΈμ μμΉλ₯Ό ββμ€μ ν©λλ€. κ·Έλ° λ€μ μ€μ¬μμ νμ νλλ‘ λ§λ€κ³ μΆμΌλ―λ‘ νΌλ²μ λ΄ μ€νλΌμ΄νΈμ μ€μ¬ (sprite.width / 2, sprite.height / 2)μ μ€μ νμ΅λλ€. μ΄λ‘ μΈν΄ λ΄ μ€νλΌμ΄νΈκ° μμ§μ΄κ³ 0,0μμ νμ ν©λλ€.
μ΄? λ΄κ° λ λμΉ κ±° μλ?
@tleunen μ€νλΌμ΄νΈλ₯Ό μ¬μ©νκ³ μκΈ° λλ¬Έμ μ΅μ»€λ₯Ό μ¬μ©ν΄μΌνλ€κ³ μκ°ν©λλ€.
μ΄ λμμ v4μμ μμ λ©λκΉ?
λλ Pixiλ₯Ό μν ν΄λ³΄κ³ μ¦μμ΄ "λ²κ·Έ"λ₯Ό 곡격νκΈ°λ‘ κ²°μ νμ΅λλ€.
λͺ μκ° λμ μΈν°λ· κ²μμ ν νμλ μ΄κ²μ΄ μ΄λ»κ² μλνλμ§ μ΄ν΄νμ§ λͺ»ν©λλ€.
ν¬λΌμ λλΆλΆμ μ¬λλ€μ "νΌλ² λμμ΄ κΉ¨μ‘μ΅λλ€"λΌκ³ λ§ν©λλ€. λ³λ‘ λμμ΄λμ§ μμ΅λλ€.
λλ ΅μ΅λλ€. μ΄κ²μ΄ pixiκ° νΌλ²μ λ€λ£¨λ λ°©μμ
λλ€.
μ΄ 'λ²κ·Έ'κ° λ무 λ§μμ λλ¬λμ§ μλλ€λ©΄ ν보 λ μ‘°κΉ
μ ν΄μ£ΌμΈμ.
2016 λ 3 μ 10 μΌ λͺ©μμΌμ Ivan Kleshnin [email protected] μ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
_μ΄ λμμ v4μμ μμ λ©λκΉ? _
λλ Pixiλ₯Ό μν ν΄λ³΄κ³ μ¦μμ΄ "λ²κ·Έ"λ₯Ό 곡격νκΈ°λ‘ κ²°μ νμ΅λλ€.
λͺ μκ° λμ μΈν°λ· κ²μμ ν νμλ μ΄κ²μ΄ μ΄λ»κ²ν΄μΌνλμ§ μ΄ν΄νμ§ λͺ»ν©λλ€.
μμ .
ν¬λΌμ λλΆλΆμ μ¬λλ€μ "νΌλ² λμμ΄ κΉ¨μ‘μ΅λλ€"λΌκ³ λ§ν©λλ€. νμ§ λ§€μ°
λμμ΄λ©λλ€.β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ νμΈνμΈμ.
https://github.com/pixijs/pixi.js/issues/190#issuecomment -194833811.
Mat Groves
_ κΈ°μ ννΈλ _
μ ν : 07708 114496 :: www.goodboydigital.com
1 μΈ΅, Unit 9B, Queens Yard, White Post Lane, London, E9 5EN
goodboy Β©. νκΆ μμ .
λΉμ μ μ견λ λλ €μμ
κ°μΈμ μΌλ‘ "λ³λ‘ λμμ΄λμ§ μμ"μ λ°μλ€μ΄μ§ λ§μμμ€.
κΈ°λΆμ μνκ²νλ κ²μ΄ μλλΌ λ΄ κ°μ μνλ₯Ό μ€λͺ
νκΈ°μν κ²μ΄ μμ΅λλ€.
μ΄ 'λ²κ·Έ'κ° λ무 λ§μμ λλ¬λμ§ μλλ€λ©΄ ν보 λ μ‘°κΉ μ ν΄μ£ΌμΈμ.
λλμ΄ μ
κ³μμ λ©μ²μ΄μ΄κΈ° λλ¬Έμ κ·Έκ²μ΄ λ²κ·ΈμΈμ§ μλμ§ λͺ¨λ₯΄κ² λ€.
κ·Έλμ λ°μ΄ν μμ "λ²κ·Έ"λΌλ λ¨μ΄λ₯Ό λ£μμ΅λλ€. μ΄λ€ μ¬λλ€μ κ·Έλ κ² μκ°ν©λλ€. μΌλΆ β κ·Έλ μ§ μμ΅λλ€.
λ°©κΈ κ²½νμ 곡μ νκ³ v4μ λ³κ²½ μ¬νμ λν΄ μ§λ¬Ένμ΅λλ€. λλ μ λ§λ‘ Pixiλ₯Ό λ°°μ°κ³ μΆμμ§λ§ μ΄κ²μ λλ₯Ό μ€λ§μμΌ°λ€.
μ£Όμ λ¬Έμ : 10 κ° μ΄μμ κ΄λ ¨ λ¬Έμ λ₯Ό μ½μ νμλ (μ¬κΈ°μ μΈν°λ·μμ) μ¬μ νμ΄ λμμ ν΄κ²°νλ λ°©λ²μ μ»μ§ λͺ»νκ³ μ»¨ν
μ΄λκ° μ μ λ 곡κ°μ μ€μ¬μ μ€μ¬μΌλ‘ νμ νλλ‘ν©λλ€.
κ·Έλ¦¬κ³ λλ νΉλ³ν μ΄λ¦¬μμ§ μμ΅λλ€.
μλ !
κ±±μ νμ§λ§, λ΄κ° ν€κ° μλ€λ©΄ λ―Έμν΄ κΈ΄ ν루 λμ λλ₯Ό μ‘μμ΄!
νΌλ²μ μ κ·νλμ§ μμ μ΅μ»€ ν¬μΈνΈλ‘ μλν©λλ€.
μ΄λ₯Ό μμ νλ κ°μ₯ μ¬μ΄ λ°©λ²μ κ°μ²΄λ₯Ό 컨ν μ΄λμ μΆκ°νκ³ μ»¨ν μ΄λλ₯Ό νμ μν€λ©΄μ κ°μ²΄λ₯Ό λ΄λΆμ μΌλ‘ μ΄λνλ κ²μ λλ€.
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.
λ¬Έμ μμ΄μ. κ³ λ§μ΅λλ€. λλ λΉμ μ μ‘°μΈμ μ¬μ©νλ €κ³ λ Έλ ₯ν κ²μ λλ€.
μ μκ°μλ κ·Έλν½ (λλ 컨ν
μ΄λ)μ μ€μ¬μ μ μ€μ¬μΌλ‘ νμ νλ κ°μ₯ μ¬μ΄ λ°©λ²μ κ·Έλν½μ΄ κ·Έλ €μ§ μ€μ¬μ μ’νλ₯Ό μ μ₯νλ κ²μ
λλ€. κ·Έλ° λ€μ κ·Έλν½μ μμΉμ νΌλ²μ μ€μ¬μ μΌλ‘ μ€μ ν©λλ€.
λ€μμ κ·Έ μμ
λλ€.
μλ₯Ό λ€μ΄ κ·Έλν½ κ°μ²΄λ₯Ό λ§λλ κ²½μ° κ·Έ μμ κΈ°λ³Έ μμλ₯Ό 그릴 μ μμ΅λλ€.
var test = new PIXI.Graphics();
test.drawRoundedRect(100, 100, 200, 200,12);
κΈ°λ³Έ μμλ νμ Graphics κ°μ²΄μ μμΉ (κΈ°λ³Έκ°μ 0)λ₯Ό κΈ°μ€μΌλ‘ κ·Έλ €μ§λλ€.
λ°λΌμ κ·Έλν½ κ°μ²΄μ μ μμΉλ₯Ό 200μΌλ‘ μ€μ ν΄μΌν©λλ€. μ΄κ²μ΄ κΈ°λ³Έ μμμ νμ¬ μ€μ¬μ μ΄κΈ° λλ¬Έμ
λλ€.
test.position.x = 200;
test.position.y = 200;
μ΄μ ν리미ν°λΈκ° λ°©κΈ μ΄λνμμ μ μ μμ΅λλ€. λ°λΌμ νΌλ²μ λμΌν μ’νλ‘ μ€μ ν΄μΌνλ©° κ·Έλ Έλ λμΌν μμΉμ μ μ§λ©λλ€.
test.pivot.x = 200;
test.pivot.y = 200;
pivot μμ±μ λ²κ·Έκ° μλλλ€. μλ λ°©μκ³Ό "κ°μ²΄ μμΉμ μν₯μ λ―ΈμΉλ"μ΄μ λ₯Ό μ΄ν΄νλ κ²μ μ½κ° νΌλ μ€λ½μ΅λλ€. κ°μ²΄λ νμ μμ μ μμΉλ₯Ό ββμ€μ¬μΌλ‘ νμ νλ©° νΌλ²μ νμ νλ μμΉμμ μ μ§μ μ μ€μ νλ λ° λμμ΄λ©λλ€.
μλ νμΈμ μ¬λ¬λΆ! κ°λκ°μλ νΌλ²μ μ¬μ©ν μ μμ΅λκΉ? λ§μ°μ€λ₯Ό λ°λΌ κ°λλ‘ ν μ€νλΌμ΄νΈμ κ°λ (νΌλ²μ μ¬μ©νμ¬ νμ μμΉ μμ )λ₯Ό μμ νλ €κ³ ν©λλ€.νμ§λ§ ν μ μμ΅λλ€. λμ μ£Όμκ² μ΅λκΉ?
λ΄ μ½λ ν μμ νμΈ => http://codepen.io/jdnichollsc/pen/KgdRvV?editors=0010
κ·Έλ¦¬κ³ μ€λ₯ => http://screencast.com/t/hSSaaTO4j0
미리 κ°μ¬λ립λλ€, Nicholls
λλ! pivot.y λλ pivot.x λ§ μ¬μ© ννν! λͺ¨λ Pixi νμ κ°μ¬λ립λλ€! : +1 :
μ μκ°μλ κ·Έλν½ (λλ 컨ν μ΄λ)μ μ€μ¬μ μ μ€μ¬μΌλ‘ νμ νλ κ°μ₯ μ¬μ΄ λ°©λ²μ κ·Έλν½μ΄ κ·Έλ €μ§ μ€μ¬μ μ’νλ₯Ό μ μ₯νλ κ²μ λλ€. κ·Έλ° λ€μ κ·Έλν½μ μμΉμ νΌλ²μ μ€μ¬μ μΌλ‘ μ€μ ν©λλ€.
λ€μμ κ·Έ μμ λλ€.μλ₯Ό λ€μ΄ κ·Έλν½ κ°μ²΄λ₯Ό λ§λλ κ²½μ° κ·Έ μμ κΈ°λ³Έ μμλ₯Ό 그릴 μ μμ΅λλ€.
var test = new PIXI.Graphics(); test.drawRoundedRect(100, 100, 200, 200,12);
κΈ°λ³Έ μμλ νμ Graphics κ°μ²΄μ μμΉ (κΈ°λ³Έκ°μ 0)λ₯Ό κΈ°μ€μΌλ‘ κ·Έλ €μ§λλ€.
λ°λΌμ κ·Έλν½ κ°μ²΄μ μ μμΉλ₯Ό 200μΌλ‘ μ€μ ν΄μΌν©λλ€. μ΄κ²μ΄ κΈ°λ³Έ μμμ νμ¬ μ€μ¬μ μ΄κΈ° λλ¬Έμ λλ€.
test.position.x = 200; test.position.y = 200;
μ΄μ ν리미ν°λΈκ° λ°©κΈ μ΄λνμμ μ μ μμ΅λλ€. λ°λΌμ νΌλ²μ λμΌν μ’νλ‘ μ€μ ν΄μΌνλ©° κ·Έλ Έλ λμΌν μμΉμ μ μ§λ©λλ€.
test.pivot.x = 200; test.pivot.y = 200;
pivot μμ±μ λ²κ·Έκ° μλλλ€. μλ λ°©μκ³Ό "κ°μ²΄ μμΉμ μν₯μ λ―ΈμΉλ"μ΄μ λ₯Ό μ΄ν΄νλ κ²μ μ½κ° νΌλ μ€λ½μ΅λλ€. κ°μ²΄λ νμ μμ μ μμΉλ₯Ό ββμ€μ¬μΌλ‘ νμ νλ©° νΌλ²μ νμ νλ μμΉμμ μ μ§μ μ μ€μ νλ λ° λμμ΄λ©λλ€.
μΌ, 그건 ν΄νΉμ΄λΌκ³ μκ°νλλ°, λΆμμ©μ΄μμ΄μ μμΉκ° λ°λ μ κ±°λ
μ΄ μ€λ λλ λ«ν ν μ΅κ·Ό νλμ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ κ²Όμ΅λλ€. κ΄λ ¨ λ²κ·Έμ λν μ λ¬Έμ λ₯Όμ¬μμμ€.
κ°μ₯ μ μ©ν λκΈ
μ μκ°μλ κ·Έλν½ (λλ 컨ν μ΄λ)μ μ€μ¬μ μ μ€μ¬μΌλ‘ νμ νλ κ°μ₯ μ¬μ΄ λ°©λ²μ κ·Έλν½μ΄ κ·Έλ €μ§ μ€μ¬μ μ’νλ₯Ό μ μ₯νλ κ²μ λλ€. κ·Έλ° λ€μ κ·Έλν½μ μμΉμ νΌλ²μ μ€μ¬μ μΌλ‘ μ€μ ν©λλ€.
λ€μμ κ·Έ μμ λλ€.
μλ₯Ό λ€μ΄ κ·Έλν½ κ°μ²΄λ₯Ό λ§λλ κ²½μ° κ·Έ μμ κΈ°λ³Έ μμλ₯Ό 그릴 μ μμ΅λλ€.
var test = new PIXI.Graphics(); test.drawRoundedRect(100, 100, 200, 200,12);
κΈ°λ³Έ μμλ νμ Graphics κ°μ²΄μ μμΉ (κΈ°λ³Έκ°μ 0)λ₯Ό κΈ°μ€μΌλ‘ κ·Έλ €μ§λλ€.
λ°λΌμ κ·Έλν½ κ°μ²΄μ μ μμΉλ₯Ό 200μΌλ‘ μ€μ ν΄μΌν©λλ€. μ΄κ²μ΄ κΈ°λ³Έ μμμ νμ¬ μ€μ¬μ μ΄κΈ° λλ¬Έμ λλ€.
test.position.x = 200; test.position.y = 200;
μ΄μ ν리미ν°λΈκ° λ°©κΈ μ΄λνμμ μ μ μμ΅λλ€. λ°λΌμ νΌλ²μ λμΌν μ’νλ‘ μ€μ ν΄μΌνλ©° κ·Έλ Έλ λμΌν μμΉμ μ μ§λ©λλ€.
test.pivot.x = 200; test.pivot.y = 200;
pivot μμ±μ λ²κ·Έκ° μλλλ€. μλ λ°©μκ³Ό "κ°μ²΄ μμΉμ μν₯μ λ―ΈμΉλ"μ΄μ λ₯Ό μ΄ν΄νλ κ²μ μ½κ° νΌλ μ€λ½μ΅λλ€. κ°μ²΄λ νμ μμ μ μμΉλ₯Ό ββμ€μ¬μΌλ‘ νμ νλ©° νΌλ²μ νμ νλ μμΉμμ μ μ§μ μ μ€μ νλ λ° λμμ΄λ©λλ€.