抖音小游戏画图位置移动

server/2024/10/15 14:53:32/

文章目录

      • 画图
      • 移动图形位置

画图

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/server/132236.html

相关文章

人工智能AI与机器学习ML基础入门

小学生都能看懂的人工智能入门书籍 第一章 入门简介 TensorFlow 入门 如果你想入门人工智能(AI)?机器学习(ML)和深度学习是很好的起点。不过,一开始接触这些概念时,可能会被各种选项和新术语搞…

Android build子系统(02)Ninja语法与复杂依赖构建解读

说明:本文将解读Ninja构建系统的基础语法和应用,同时给出一些示例便于理解和学习;给出一个复杂构建的基础demo,通过这个demo的分析理解复杂构建的内在逻辑和build.ninja编写法则;最后扩展之前Android Framework中构建b…

mysql学习教程,从入门到精通,SQL常用函数(40)

1、SQL常用函数 SQL(Structured Query Language)是一种用于管理和操作关系数据库的编程语言。SQL提供了许多内置函数,这些函数可以对数据库中的数据进行各种计算和操作。以下是一些常用的SQL函数,按功能分类: 1.1、字…

数据同步工具Sqoop原理及场景优化

目录 0 数据同步策略 1 数据同步工具 ​编辑 2 Sqoop同步数据原理分析 2.1 原理分析 2.2 Sqoop基本使用分析 3 切片逻辑 3.1 MR切片逻辑 3.2 Hive CombineInputformat切片逻辑 3.3 实验1:Map任务并行度分析1 3.4 实验2: Map任务并行度分析2 3.5 实验3:Map任务并行…

Redis非关系型数据库操作命令大全

以下是 Redis 的常用操作命令大全,涵盖了键值操作、字符串、哈希、列表、集合、有序集合、发布/订阅、事务等多个方面的操作。 1. 通用键命令 命令说明SET key value设置指定 key 的值GET key获取指定 key 的值DEL key删除指定的 keyEXISTS key检查 key 是否存在E…

数据结构:用双栈实现一个队列

要用两个栈实现一个队列,可以利用“栈”的后进先出 (LIFO) 特性来模拟“队列”的先进先出 (FIFO) 操作。具体做法是使用两个栈:一个作为入栈栈,另一个作为出栈栈。 算法步骤 入队操作(enqueue): 将元素压…

面试题:Redis(二)

1. 面试题 2. MoreKey案列 事故案例 2.1 生成上如何限制key*/flushdb/flushall等危险命令的使用? 通过redis.conf配置文件中在SECURITY选项中禁用这些命令 2.2 不用key*避免卡顿那用什么? 用scan命令,类似mysql中的limit命令 语法&…

RDD优化:缓存和checkpoint机制、数据共享(广播变量、累加器)、RDD的依赖关系、shuffle过程、并行度说明

文章目录 1. 缓存和checkpoint机制1.1 缓存使用1.2 checkpoint1.3 缓存和checkpoint的区别 2. 数据共享2.1 广播变量2.2 累加器 3. RDD依赖关系4.shuffle过程4.1 shuffle介绍4.2 spark计算要尽量避免shuffle 5. 并行度 1. 缓存和checkpoint机制 缓存和checkpoint也叫作rdd的持…