JS Canvas:如何使矩形到达边界后来回移动

2023-12-11

所以我有一个向右移动的矩形。我怎样才能让矩形在触及边界时反转它。我正在努力让它来回。

<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>
window.onload=function(){
    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');
    var x = 0;
    var y = 50;
    var width = 10;
    var height = 10;
    function animate() {
        ctx.clearRect(0, 0, canvas.width, canvas.height);
        ctx.fillRect(x, y, width, height);
        x++;
        if(x <= 490) {
            setTimeout(animate, 33);
        }
    }
    animate();
}
</script>
</head>
<body>
  <canvas id="canvas" width="500" height="400"
    style="border: 1px solid #000000;"></canvas>
</body>
</html>

https://codepen.io/forTheLoveOfCode/pen/wqdpeg

这是你所需要的吗? (链接到上面的 codepen)。

var canvas = document.getElementById("canvas_id");
var context = canvas.getContext('2d');
var x=5;
var y=5;
var velocity = 10;
   
function move(){
   canvas.width = window.innerWidth;
   canvas.height = window.innerHeight;
   x =x + velocity
   if ((x+50)>canvas.width || x<0){
    	velocity *=-1;
   }
   draw()
}

function draw(){
   context.fillStyle = "#E80C7A";
   context.strokeStyle = "#000000";
   context.lineWidth = '3';
   context.fillRect(x, y, 50, 100);
   context.strokeRect(x, y, 50, 100);
}
setInterval(move, 100);
<html>
  <body>
    <canvas id = "canvas_id">
    </canvas>
  </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS Canvas:如何使矩形到达边界后来回移动 的相关文章

随机推荐

  • 如何在Excel中创建下拉列表? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我在 Excel 中有一个值列 如下所示 如何将其转换为下拉列表 例如列中的每一行都会有该下拉列表 其中有狗 猫 鱼 蝙蝠 蟾蜍 都在里面 thanks 您可以通过 数据 功能区中的
  • phpMailer电子邮件不发送gmail smtp

    我无法使用 gmail SMTP 发送电子邮件 这是我收到的信息print r物体 我对 phpMailer 属性的用户名和密码使用相同的 gmail 凭据 因此我确信我的凭据是正确的 但不知道为什么它不发送 谢谢 感谢任何支持 EMail
  • 在单个页面上使用多个(猫头鹰)轮播

    我一直在谷歌上寻找在单个页面上使用多个轮播的方法 但没有找到任何适合我的解决方案 你们中的任何人都可以帮忙吗 这是代码 HTML div div class container div class row div class span12
  • 包管理器控制台仅在特定 VS 项目中启用迁移 CommandNotFoundException

    我尝试在新项目中运行命令 Enable Migrations 并收到消息 PM gt Enable Migrations The term Enable Migrations is not recognized as the name of
  • 在地址栏中显示 iFrame url

    是否可以在url地址栏中包含iframe内容的url 例如 我有一个域sub test com它有一个带有 src 的 iframerealpage com 逻辑上浏览页面不会改变地址栏中的任何内容 因为我们在其他域的 iframe 中打开
  • R oauth 身份验证期间 twitteR PIN 码出现在哪里?

    我正在尝试使用 twitteR 包 因为我已经阅读了 Jeffrey Stanton 关于数据科学的免费电子书中的 Twitter 章节 我使用此代码来注册我的凭据 requestURL lt https api twitter com o
  • 第一次使用Hadoop,MapReduce Job不运行Reduce Phase

    我编写了一个简单的映射缩减作业 该作业将从 DFS 读取数据并对其运行简单的算法 当尝试调试它时 我决定简单地让映射器输出一组键和值 而减速器输出一组完全不同的键和值 我在单节点 Hadoop 20 2 集群上运行此作业 当作业完成时 输出
  • 用于选择 x、y 和颜色(绘图)的下拉菜单

    我正在尝试创建一个带有可选 x y 和颜色变量的绘图 部分基于上一个问题 x 和 y 变量选择似乎有效 但是当选择新的 x 和 y 变量时 点颜色会丢失 此外 我尝试使用类似的策略来选择点颜色 但不幸的是这似乎不起作用 另一种选择是在前面链
  • 通过 ODBC 从 C# 读取 Netezza 数据库表在 Windows 7 中不起作用

    为什么 NET 无法通过已安装的 NetezzaSQL 驱动程序连接到我的 Netezza 盒子 64 位应用程序也无法通过此 ODBC 连接进行连接 为什么会这样呢 我已在控制面板中构建了用户和系统 Netezza ODBC 连接 当我单
  • 在unix中如何删除文件的最后一个字符?

    假设我有一些任意的多行文本文件 sometext moretext lastline 如何仅删除文件的最后一个字符 e 而不是换行符或空 而不使文本文件无效 更简单的方法 输出到标准输出 不更新输入文件 sed s somefile 是一个
  • 制作模态 JInternalFrame

    我需要从 MDI JFrame 中的用户获取大量数据 文件选择 文本 日期 我需要的输入表格是JInternalFrame是模态的 我怎样才能做一个JInternalFrame modal 根据我的经验 我从来没有成功过JInternalF
  • 如何从 QListWidgetItem 获取小部件

    我制造了一个QListWidget In QLisitWidgetItems 我添加了一个QVBoxLayout That QVBoxLayout包含三个QLabels 如何获取里面的值QLabel点击时QListWidgetItem 创建
  • 有可用的 Linux RDAP 客户端吗? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我四处寻找 认为这里可能是最快的 我在哪里可以得到任何RDAP客户端 它实际上被任何人使用吗 您可以使用用 Perl 编写的 rdapper git clone https gi
  • Kurento Media WebRTC 转 RTP

    我正在使用 kurento 的主 git 来制作 WebRTC 到 RTP 的桥接器 MediaPipeline pipeline kurento createMediaPipeline WebRtcEndpoint webRtcEndpo
  • Javascript 书签在 Firefox 中输出“true”而不是执行脚本

    我们正在运行一个快速的 JavaScript 函数来填写和保存表单 以便在工作流程中快速前进 用于测试目的 它在除 Firefox 之外的所有浏览器中运行良好 并且仅在少数人的计算机上运行 javascript function ruleD
  • 如何在 SQL Developer 中输入多值参数的绑定

    我有很多带有命名参数的 SQL 我需要能够在 SQL Developer 中执行它们 对于参数为标量值的 SQL 可以轻松地将 SQL 粘贴到工作表中 并且 SQL Developer 将提示我 在标题为 Enter Binds 的对话框中
  • Azure 构建上的 JavaScript 堆内存不足

    我将 aspnetboilerplate 与 Angular 和 NET Core 一起使用 当我尝试在 Azure 上部署应用程序时 它显示 致命错误 接近堆限制的无效标记压缩分配失败 JavaScript 堆内存不足 这是我的天蓝色管道
  • 如何在 Yii2 中的 $content 之前在主布局页面中传递全局变量

    我正在尝试使用 Nav widget 在 yii2 中创建动态菜单 这是我在主布局页面的菜单部分中的代码 echo Nav widget options gt class gt navbar nav navbar right items g
  • java.lang.IllegalStateException:在 JSF 2 中已为此响应调用 getOutputStream()

    我有一个用 xml 编写 jsp 页面的遗留代码 我正在尝试将其转换为 JSF 2 但我收到以下异常 Jul 10 2012 11 34 57 AM com sun faces application view FaceletViewHan
  • JS Canvas:如何使矩形到达边界后来回移动

    所以我有一个向右移动的矩形 我怎样才能让矩形在触及边界时反转它 我正在努力让它来回