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

上一篇有提到可以利用PIXI.Ticker将定期渲染的机制加进场景,建立基础的小动画,接下来就来试试看利用PixiJS做个小动画吧!

可以利用ticker.add()将动画逻辑加进场景中,而动画的逻辑则用函式的形式,作为第一个参数传入。

let app = new PIXI.Application({ width:800, height: 800 })
app.ticker.add(
 //动画逻辑function
)

我准备了一个圆形物件,放置於一个container中,预计制作放大缩小的动画效果。

//建立场景
let app = new PIXI.Application({ width:800, height: 800 })
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(400,400,400);
container.addChild(myObj);
//调整container位置与container轴心位置
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;
container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

接下来利用ticker.add()设定动画,利用DisplayObject的scale属性,运用逻辑运算来设定:在scale的数值为1(100%)的状态时,进行减法运算产生缩小效果至0,数值往负数前进时,会从缩小变成放大效果,当scale数值被减去至-1(-100%)时,事实上形状会与1(100%)相同,达成这个状态时,调整为初始值1(100%),达成重复播放的效果。
(刚刚有进行container的定位调整,因此这边的动画逻辑将设定在container上)

app.ticker.add(()=>{
  if(-1<container.scale.x && -1<container.scale.y){
    container.scale.x = container.scale.x - 0.007
    container.scale.y = container.scale.y - 0.007
  }
  else {
    container.scale.x = 1
    container.scale.y = 1
  }
})

<<:  30天打造品牌特色电商网站 Day.25 电商必用的提示-实作小范例

>>:  TypeScript | Type 研究心得纪录 2

网页表格-30天学会HTML+CSS,制作精美网站

网页需要制作时间表、收费表等,都可以使用表格制作。 只要了解表格相关的标签,就能够轻松做出表格了,这...

Day05 Filebeat(三) 正则表达式

接下来这一个章节,焦点还是会在filebeat上,通常在收集log,并不是所有资料都需要收集到Ela...

3.2 Design System - 其他注意事项

一个人厉害永远比不上一群人厉害 某次跟同事闲聊时谈到这件事 我们一致认同在一个团队里 大家都是互相...

[Day08] Dependency Injection Part2 - 依赖介面

依赖介面而不是特定的 Service 昨天我们介绍了怎麽在 .NET Web API 的专案里实现依...

Day-16 : AJAX勾系虾米?

不知不觉来到第16天, 今天我们要来讨论AJAX, 暂时先跳来这边, 来讲讲我经过这一个月专案, 吸...