PixiJS教程(004):点击事件交互

1.6 事件交互

实现要求:点击宝剑,修改宝剑的颜色。

1️⃣实现代码:

js 复制代码
// 为精灵添加交互事件
sprite.interactive = true;
sprite.on('click', () => {
    // 点击精灵时,改变精灵的颜色
    sprite.tint = Math.random() * 0xFFFFFF;
});

说明:

  1. 在 PixiJS 中,sprite.tint 是一个用于改变精灵(Sprite)颜色的属性。它通过乘法混合的方式将指定的颜色应用到精灵的原始纹理上,从而实现变色效果。

2️⃣实现效果:

3️⃣完整代码:

js 复制代码
<template>
<div>

</div>
</template>

<script setup>
// 导入pixi.js
import * as PIXI from 'pixi.js';
// 创建应用
const app = new PIXI.Application({
    width: window.innerWidth,
    height: window.innerHeight,
    backgroundColor: 0x1099bb,
    resolution: window.devicePixelRatio || 1,
    // 设置抗锯齿
    antialias: true
})
// 将应用画布添加到DOM中
document.body.appendChild(app.view);

// 创建一个纹理
const texture = PIXI.Texture.from('./textures/mujian.png');
// 创建一个精灵
const sprite = new PIXI.Sprite(texture);
// 设置精灵的锚点
sprite.anchor.set(0.5, 0.5);
// 设置精灵的位置
sprite.position.set(window.innerWidth / 2, window.innerHeight / 2);
// 设置精灵的缩放
sprite.scale.set(0.5, 0.5);
// 设置精灵的旋转
sprite.rotation = 0.5;
// 将精灵添加到舞台
app.stage.addChild(sprite);

// ticker实现动画
app.ticker.add((delta) => {
    // 每帧旋转精灵
    sprite.rotation += 0.01 * delta;
});

// 为精灵添加交互事件
sprite.interactive = true;
sprite.on('click', () => {
    // 点击精灵时,改变精灵的颜色
    sprite.tint = Math.random() * 0xFFFFFF;
});

</script>

<style>
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
canvas{
    width: 100vw;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
}
</style>
相关推荐
子兮曰3 天前
深入 HTML-in-Canvas:当 Canvas 学会了渲染 DOM,前端图形生态要变天了
前端·javascript·canvas
七夜zippoe5 天前
OpenClaw Canvas 可视化界面详解
可视化·canvas·flexbox·ai agent·openclaw
ncj3934379067 天前
Canvas 图形开发高频算法面试题
算法·canvas
pancakenut10 天前
从盒模型到画布:以mapbox为例
前端·canvas
ouzz18 天前
我在 React Canvas 里做了一个液态玻璃透镜效果
canvas·视觉设计
ouzz19 天前
使用纯canvas绘制一个掘金首页
前端·canvas
roamingcode20 天前
支付宝小程序数据可视化避坑指南:@antv/f2 踩坑与最佳实践
信息可视化·小程序·canvas·antv
可夫小子21 天前
不用 Tailscale:3 步把 Mac mini 通过 FRP 暴露到公网(稳定开机自启)
canvas
叫我一声阿雷吧25 天前
原生 JS 实现图片预览上传组件:多图上传 + 拖拽上传 + 裁剪预览 + 进度显示(附完整源码)
图片上传·canvas·文件上传·响应式布局·拖拽上传·原生javascript·filereader api
天若有情6731 个月前
Canvas生成艺术|意外诞生的混沌风暴(附完整源码+GitHub部署)
前端·css·html·github·canvas·网页