学习笔记:一起进入 PixiJS 的世界 (五)

目前已接触的DisplayObject包含了PIXI.Graphics()的图像绘制、PIXI.Text()的文字建立,这些物件都能将互动属性interactive设定为true值,定义物件的互动效果。

而DisplayObject这些物件除了interactive外,还有其他属性可以直接定义,像是可以使用xy属性,可以直接定义物件的位置、rotation定义了旋转角度、alpha定义不透明度,除了直接定义这些属性外,也可於之後利用PIXI.Ticker将定期渲染的机制加进场景,搭配运算机制来建立基础的小动画。

变更物件的位置、旋转角度、设定不透明度与其他属性的方式很简单,直接利用.把建构出的物件的属性定义新的数值即可。

myObj.x = 200;
myObj.y = 200;
myObj.rotation = 45 - 2 * Math.PI;
myObj.alpha = 0.5;

除了直接控制物件的定位外,也可透过在场景中建立container的方式,可以当作图层概念,利用各层container去管理物件之间的位置,对於重复或多类型复杂的图像与场景来说,是个很合适的方式。

//建立基础场景
let app = new PIXI.Application({ width:800, height: 400 })
document.body.appendChild(app.view);
//建立container并放入场景中
const container = new PIXI.Container();
app.stage.addChild(container);
//产生物件、放置於container中
let myObj = new PIXI.Graphics();
myObj.beginFill(0xffdd00);
myObj.drawCircle(0,0,50);
container.addChild(myObj);
//定位container
container.x = 200;
container.y = 200;

另外,除了数值外,也可以运用数学预算轻松达成置中效果;另外,因为初始建立的container的轴心为左上角位置,因此要达到正中央,可以在把container的pivot位置调整至container中间,之後用於等比例放大缩小、以中心旋转角度等会更加方便。

//调整container至场景中心
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;
//调整container的轴心位置
container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

另外,container也是DisplayObject一员,所以也可以进行xyrotation属性控制外,也可以将互动属性interactive设定为true值,定义物件的互动效果罗!


<<:  Day 24:一起来建构Min-Heap吧

>>:  实作Aurora

User options 关於使用者体验

今天人还在外面游山玩水阿阿阿阿XDDD 来介绍一个比较无关资安与WEB技术, 纯粹是Burp Sui...

Gulp bower(1) DAY85

bower??? 什麽是 bower?? https://bower.io/ bower 为前端套...

第十六天:在 TeamCity 上执行静态分析

昨天我们在专案里导入了 detekt 静态分析套件,只要执行 $ gradle detekt 就可以...

[Day21]- 正则表达式

基础 用文字去表达,使用\d去表示0-9的数字字元,使用re模组内有的compile()方法,回传...

关於URL encode

缘由: 开发时常常会遇到要对api传送参数的状况, 但常常都是传送String Int Bool等,...