本文档说明了如何为 Pellet.prefab 预制体添加白色尾迹效果的完整实现方案。通过粒子系统和自定义控制脚本,实现了动态的白色尾迹效果。
文件: d:\CocosGame\Pong\assets\assets\Prefabs\Pellet.prefab
ParticleSystem 子节点中添加了完整的 ParticleSystem2D 组件配置文件: d:\CocosGame\Pong\assets\scripts\Animations\PelletTrailController.ts
功能特性:
主要方法:
// 设置尾迹颜色
setTrailColor(r: number, g: number, b: number, a: number = 255)
// 启用/禁用尾迹效果
setTrailEnabled(enabled: boolean)
文件: d:\CocosGame\Pong\assets\scripts\CombatSystem\WeaponBullet.ts
修改内容:
PelletTrailController 类集成代码:
// 初始化尾迹控制器
this.pelletTrailController = this.getComponent(PelletTrailController) || this.addComponent(PelletTrailController);
// 设置白色尾迹
this.pelletTrailController.setTrailColor(255, 255, 255, 255);
this.pelletTrailController.setTrailEnabled(true);
文件: d:\CocosGame\Pong\assets\scripts\TestScene\TestPelletTrail.ts
功能:
所有通过 WeaponBullet 系统创建的子弹都会自动应用白色尾迹效果,无需额外配置。
如果需要自定义尾迹效果,可以获取 PelletTrailController 组件进行配置:
const trailController = bulletNode.getComponent(PelletTrailController);
if (trailController) {
// 设置红色尾迹
trailController.setTrailColor(255, 0, 0, 255);
// 禁用尾迹
trailController.setTrailEnabled(false);
}
TestPelletTrail 脚本添加到场景中的任意节点fireTestBulletManual() 方法手动测试WeaponBullet 系统ParticleSystem2D 组件是否正确配置PelletTrailController 组件已添加到子弹节点enabled 属性为 trueRigidBody2D 组件是否正常工作updateParticleDirection 方法的角度计算totalParticles 数量emissionRate 发射率life 生命周期可以根据子弹类型或武器等级设置不同颜色的尾迹:
// 根据武器类型设置尾迹颜色
switch (weaponType) {
case 'fire':
trailController.setTrailColor(255, 100, 0, 255); // 橙色
break;
case 'ice':
trailController.setTrailColor(100, 200, 255, 255); // 蓝色
break;
default:
trailController.setTrailColor(255, 255, 255, 255); // 白色
}
根据子弹伤害或速度调整尾迹的强度:
// 根据子弹速度调整尾迹强度
const speed = velocity.length();
const intensity = Math.min(1, speed / 200); // 最大速度200时达到满强度
trailController.setTrailColor(255, 255, 255, 255 * intensity);
通过以上实现,成功为 Pellet.prefab 添加了白色尾迹效果。该方案具有以下优势:
该实现为游戏的视觉效果提升奠定了良好的基础,可以根据需要进一步扩展和优化。