肥皂起泡泡
2023-09-28 09:57:42
我正在嘗試創(chuàng)建一個(gè)瓶子倒出動(dòng)畫,循環(huán)遍歷 5 個(gè)不同的瓶子,每個(gè)瓶子都是側(cè)面的,并且倒出的液體量不同。我試圖顯示第一個(gè)瓶子,然后在 60 毫秒后顯示第二個(gè)瓶子,然后在 60 毫秒后顯示第三個(gè)瓶子,依此類推。我需要取出前一個(gè)瓶子并將下一個(gè)瓶子添加到完全相同的位置。我想知道最簡潔的方法是什么,我嘗試過幾個(gè) setTimout 函數(shù),但代碼有一些錯(cuò)誤并且根本不簡潔。我研究了 PIXI.Timer,但很難理解如何設(shè)置 5 個(gè)不同的精靈并循環(huán)它們。如果您有任何想法或方向,請(qǐng)告訴我。我將使用下面使用的 setTimout 發(fā)布我的函數(shù): setTimeout(() => { let pour1Texture = new PIXI.Texture.from(require('@/assets/items/bottle/pouring/pouring bottle1.png')) let pour1 = new PIXI.Sprite.from(pour1Texture) sprites.push(pour1) pour1.position.x = 438; pour1.position.y = -40; labBenchComponent.pixiApp.stage.addChild( pour1 ); },1000) setTimeout(() => { labBenchComponent.pixiApp.stage.removeChild(sprites.pop()) const pour2Texture = new PIXI.Texture.from(require('@/assets/items/bottle/pouring/pouring bottle2.png')) const pour2 = new PIXI.Sprite.from(pour2Texture) pour2.position.x = 438; pour2.position.y = -10; sprites.push(pour2) labBenchComponent.pixiApp.stage.addChild( pour2 ); }, 1000) setTimeout(() => { labBenchComponent.pixiApp.stage.removeChild(sprites.pop()) const pour3Texture = new PIXI.Texture.from(require('@/assets/items/bottle/pouring/pouring bottle2.png')) const pour3 = new PIXI.Sprite.from(pour3Texture) pour3.position.x = 438; pour3.position.y = 10; sprites.push(pour3) labBenchComponent.pixiApp.stage.addChild( pour3 ); }, 1000)
1 回答

小唯快跑啊
TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
我想到了。不要使用刻度,而是使用 PIXI.AnimatedSprite,如下所示:
import * as PIXI from 'pixi.js-legacy';
export default function pourBottle() {
let textureArray = [];
for (let i = 0; i < 5; i++)
{
let texture = {
texture: PIXI.Texture.from(require(`@/assets/items/bottle/pouring/pouring bottle${i+1}.png`)),
time: 100,
};
textureArray.push(texture);
};
let animatedSprite = new PIXI.AnimatedSprite(textureArray);
return animatedSprite;
}
添加回答
舉報(bào)
0/150
提交
取消