π¦Ήπ» ΠΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² PixiJS
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ visible
Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π’ΠΎΠ»ΡΠΊΠΎ Ρ Ρ ΠΎΡΡ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ Π·Π°Π΄Π°ΡΡ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ Π΄ΠΈΡΠΊΠΎΠΌ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ Ρ ΠΎΠ»ΡΡΠ° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ Π΄ΠΈΡΠΊ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ.
ΠΠ°ΡΠΊΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
let app = new PIXI.Application({ width: 400, height: 400, backgroundColor: 0x2a2a3a });
document.body.appendChild(app.view);
const shapeCircle = new PIXI.Graphics();
const shapeRect = new PIXI.Graphics();
shapeCircle.lineStyle(4, 0x101024, 1);
shapeCircle.beginFill(0xec8a4b, 1);
shapeCircle.drawCircle(app.screen.width / 2, app.screen.height / 2, 50);
shapeCircle.endFill();
shapeRect.lineStyle(2, 0x101024, 1);
shapeRect.beginFill(0xDE3249);
shapeRect.drawRect(app.screen.width / 2 - 100, app.screen.height - 100, 200, 50);
shapeRect.endFill();
const basicText = new PIXI.Text('On / Off');
basicText.anchor.set(0.5);
basicText.x = app.screen.width / 2;
basicText.y = app.screen.height - 75;
app.stage.addChild(shapeCircle, shapeRect, basicText);
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π₯ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° Π½Π΅Ρ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ mouseover
.
shapeRect.on('mouseover', (event) => { });
ΠΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
shapeRect.interactive = true;
shapeRect.cursor = 'pointer';
shapeRect.on('mouseover', (event) => {
// Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° Π±Π΅Π»ΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΡΡΠΎΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ
basicText.style.fill = 0xffffff;
});
shapeRect.on('mouseout', (event) => {
// Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΡΡΡΠ½ΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΡΡΠΎΡ Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ
basicText.style.fill = 0;
});
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΊΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ.
shapeRect.on('click', (event) => {
shapeCircle.visible = shapeCircle.visible ? false : true;
});
ΠΡΠ»ΠΈΡΠ½ΠΎ. Π£ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ)
ΠΠΎ ΡΡΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΡ. Π₯ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π΄ΠΈΡΠΊ ΠΏΡΠΎΠΏΠ°Π΄Π°Π» ΠΏΠ»Π°Π²Π½ΠΎ.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ,
ΠΊΠΎΡΠΎΡΡΠΉ Π²Π»ΠΈΡΠ΅Ρ ΠΈ Π½Π° ΠΎΠ±Π²ΠΎΠ΄ΠΊΡ ΠΈ Π½Π° Π·Π°Π»ΠΈΠ²ΠΊΡ. ΠΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ½ alpha
.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ/ΠΈΡΡΠ΅Π·Π½ΠΎΠ²Π΅Π½ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄.
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ cirleVisible
, Π²Π½Π΅ΡΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ click
,
ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠΈΠΊΠ΅Ρ.
let cirleVisible = true;
shapeRect.on('click', (event) => {
cirleVisible = cirleVisible ? false : true;
// shapeCircle.visible = shapeCircle.visible ? false : true;
});
app.ticker.add((delta) => {
if (cirleVisible) {
if (shapeCircle.alpha < 1) {
shapeCircle.visible = true;
shapeCircle.alpha += 0.05;
}
}
else {
if (shapeCircle.alpha > 0) shapeCircle.alpha -= 0.05;
else shapeCircle.visible = false;
}
});
ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, Π½Π΅ΠΏΡΠ°Π²Π΄Π° Π»ΠΈ?)