抖音小游戏画图位置移动

ops/2024/10/17 19:50:40/

文章目录

      • 画图
      • 移动图形位置

画图

const canvas = tt.createCanvas();
const context = canvas.getContext('2d');context.width = 500;
context.height = 500;let isPressing = false; // 是否按下
let startX = 0;
let startY = 0;context.fillStyle = "#f00";
context.fillRect(0,0,100,100);//点击鼠标事件
tt.onTouchStart((e)=>{// onTouchMove(e)console.log('onTouchStart:',e.touches[0].clientX)startX = e.touches[0].clientXstartY = e.touches[0].clientYisPressing = true;
})
//鼠标移动
tt.onTouchMove((e)=>{console.log('onTouchMove:',e.touches[0].clientX)const touch = e.touches[0];const dx = touch.clientX - startX;const dy = touch.clientY -startY;// console.log('dx:',dx,'dy:',dy)// context.clearRect(startX,startY,100,100);context.fillStyle = '#f00';context.fillRect(dx,dy,100,100)
})

在这里插入图片描述
在这里插入图片描述

移动图形位置

const canvas = tt.createCanvas();
const context = canvas.getContext('2d');context.width = 500;
context.height = 500;let isPressing = false; // 是否按下
let startX = 0; //初始位置
let startY = 0; //初始位置let moveStartX = 0; //移动后的位置
let moveStartY = 0; //移动后的位置context.fillStyle = "#f00";
context.fillRect(0,0,100,100);tt.onTouchStart((e)=>{// onTouchMove(e)console.log('onTouchStart:',e.touches[0].clientX)startX = e.touches[0].clientXstartY = e.touches[0].clientYisPressing = true;
})
tt.onTouchMove((e)=>{console.log('onTouchMove:',e.touches[0].clientX)const touch = e.touches[0];const dx = touch.clientX -50; //无论如何要在中心点,根据图像大小来定义const dy = touch.clientY -50; //无论如何要在中心点,根据图像大小来定义// console.log('dx:',dx,'dy:',dy)// context.clearRect(startX,startY,100,100);context.clearRect(moveStartX,moveStartY,100,100)context.fillStyle = '#f00';context.fillRect(dx,dy,100,100)moveStartX = dx;moveStartY = dy;
})

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/ops/126285.html

相关文章

js-前端vue强制刷新当前页面(router.go(0) window.location.方法)

1.强制刷新当前页面 在完成某一操作后需要刷新当前整体页面,或者部分模块需要重新渲染数据。强制刷新页面可能会影响用户体验,特别是在需要保持页面状态的情况下。使用强制刷新页面需要谨慎使用。 2.方法 2.1 Vue Router 的 router.go(0) 方法&#x…

sealed class-kotlin中的封闭类

在 Kotlin 中,sealed class(密封类)是一种特殊的类,用于限制继承的类的数量。密封类可以被用来表示一组有限的类型,通常用于状态管理或表达多种可能的错误类型。 密封类用 sealed 关键字定义,这意味着只能…

C++游戏开发完整学习路径

C游戏开发完整学习路径 引言 随着游戏行业的迅速发展,C作为主要的游戏开发语言,因其高效性和灵活性,依然受到广泛欢迎。C不仅在大型游戏开发中被广泛使用,而且在游戏引擎的构建、性能优化和复杂算法的实现中也扮演着关键角色。本…

2024软件测试面试800题(答案+文档)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计,到…

el-date-picker设置只有某些日期可选

示例图&#xff1a; <el-date-pickerv-model"topFormObj.upTime"type"date"value-format"timestamp"format"dd/MM/yyyy":picker-options"pickerOptions" /> 固定限制每周的周末周三不可选 data() {return {pickerOp…

vscode快速删除一行的快捷键不管用

vscode快速删除一行的快捷键 在vscode中&#xff0c;快速删除一行的快捷键是CtrlShiftk。 因为搜狗软键盘的快捷键和这个快捷键的按键是冲突了&#xff0c;所以快捷键被搜狗输入法给拦截了。把搜狗软键盘的快捷键关闭了或者修改成别的键就好了&#xff0c; 因为我不怎么用软键…

多功能点击器(文末附Gitee源码)——光遇自动弹奏

之前提到的多功能点击器&#xff0c;使用场景比较多&#xff0c;之前玩光遇喜欢在里面弹琴&#xff0c;想到用这个点击器也能自动弹琴&#xff0c;跟别的自动弹琴脚本不一样&#xff0c;这个比较简单容易操作。 借这个光遇自动弹琴使用教程再讲解一下这个多功能点击头的使用方法…

[含文档+PPT+源码等]精品基于Nodejs实现的微信小程序校园心理健康平台设计与实现

《[含文档PPT源码等]精品基于Nodejs实现的微信小程序校园心理健康平台设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等福利&#xff01; 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开…