当前位置: 首页 > web >正文

Animate 中HTMLCanvas 画布下实现拖拽、释放、吸附的拼图游戏

1.舞台上物体拖拽 2.松手以后,检查是否移动到范围内,是则自动吸附 3.播放音效 4.变量+1,显示在舞台的动态文本中

1.实现拖拽

下面代码实现拖拽和释放 地图模块


//记录原始位置
var OriX=this.my_mc.x;
var OriY=this.my_mc.y;this.my_mc.on("pressmove", function(evt) {console.log("开始拖拽");// 同时演示两种访问方式evt.currentTarget.x = evt.stageX;evt.currentTarget.y = evt.stageY;    this.stage.update(); // 访问舞台必须加this
}.bind(this)); // 重要!绑定当前作用域this.my_mc.on("pressup", function(evt) {console.log("开始释放");// 同时演示两种访问方式evt.currentTarget.x = OriX;evt.currentTarget.y = OriY;    this.stage.update(); // 访问舞台必须加this
}.bind(this)); // 重要!绑定当前作用域

2.实现自动吸附

1.首先记录目标点坐标

2.实现自动吸附

在目标位置创建一个看不见的元件叫target

松开鼠标后,判断下地图块的X坐标是否在targetx附近,如果在就直接让地图块坐标等于target的坐标!

  console.log("开始释放");// 松开鼠标if(evt.currentTarget.x>targetPosX-60&&evt.currentTarget.x<targetPosX+60)	{console.log("开始释放");evt.currentTarget.x =targetPosX;		evt.currentTarget.y=targetPosY;	//加分this.score.text+=10;this.music.gotoAndPlay(1);}else{evt.currentTarget.x = OriX;evt.currentTarget.y = OriY; }	

3.播放音效和加分

    this.score.text+=10;
        this.music.gotoAndPlay(1);

最终源码:


//记录原始位置
var OriX=this.Shanxi.x;
var OriY=this.Shanxi.y;var targetPosX=this.target01.x;
var targetPosY=this.target01.y;
//===============this.Shanxi.on("pressmove", function(evt) 
{console.log("开始拖拽");// 同时演示两种访问方式evt.currentTarget.x = evt.stageX;evt.currentTarget.y = evt.stageY;    this.stage.update(); // 访问舞台必须加this
}.bind(this)); // 重要!绑定当前作用域this.Shanxi.on("pressup", function(evt) {console.log("开始释放");// 松开鼠标if(evt.currentTarget.x>targetPosX-60&&evt.currentTarget.x<targetPosX+60)	{console.log("开始释放");evt.currentTarget.x =targetPosX;		evt.currentTarget.y=targetPosY;	//加分this.score.text+=10;this.music.gotoAndPlay(1);}else{evt.currentTarget.x = OriX;evt.currentTarget.y = OriY; }	this.stage.update(); // 访问舞台必须加this
}.bind(this)); // 重要!绑定当前作用域var _this = this;
/*
单击指定元件实例时将执行相应函数。
*/
_this.music.on('click', function(){
/*
将播放头移动到时间轴中的指定帧编号并继续从该帧播放。
可在主时间轴或影片剪辑时间轴上使用。
*/
_this.music.gotoAndPlay(1);
});

http://www.xdnf.cn/news/2395.html

相关文章:

  • Shell脚本-until语法结构
  • 哈希封装unordered_map和unordered_set的模拟实现
  • 纯净IP的优势:稳定性与安全性的结合
  • Ubuntu22.04/24.04 P104-100 安装驱动和 CUDA Toolkit
  • FISCO BCOS 智能合约开发详解
  • Unreal Engine 实现软件测试方案的仿真体验
  • Nacos简介—4.Nacos架构和原理三
  • 如何排查服务器中存在的后门程序
  • 基于RuoYi的WMS仓库管理系统源码级解决方案
  • SQL 处理重复数据之技巧(Techniques for Handling Duplicate Data with SQL)
  • 使用cmd来创建数据库和数据库表-简洁步骤
  • 对鸿蒙 Next 系统“成熟论”的深度剖析-优雅草卓伊凡
  • 基于ssm的图书管理借阅系统(全套)
  • chrony服务器(2)
  • html5:从零构建经典游戏-扫雷游戏
  • Git 使用教程
  • 矩阵系统源码搭建热门音乐功能板块开发,支持OEM
  • Redux-Saga vs Redux-Thunk
  • 【漫话机器学习系列】227.信息检索与数据挖掘中的常用加权技术(TF-IDF)
  • 【nvm管理多个 Node.js 版本】
  • LLM开发——基于DeepSeek R1 和 Qwen 构建智能检索增强生成系统
  • 博物馆除湿控湿保卫战:M-5J1R 电解除湿科技如何重塑文物守护的未来
  • Azure Devops - 尝试一下在Pipeline中使用Self-hosted Windows agent
  • Rust游戏开发全栈指南:从理论到实践的革新之路
  • 蓝桥杯 1. 确定字符串是否包含唯一字符
  • Pycharm(十七)生成器
  • Python----深度学习(基于DNN的吃鸡预测)
  • SHCTF-REVERSE
  • 数据集下载(AER 和causaldata R包)
  • AI音频核爆!Kimi开源“六边形战士”Kimi-Audio,ChatGPT语音版?