Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matter.js:在画布上放置文本或图像

Matter.js:在画布上放置文本或图像
EN

Stack Overflow用户
提问于 2014-09-25 08:16:06
回答 3查看 10.6K关注 0票数 6

我希望将字体或静态图像放到画布上,但不确定使用Matter.js的最佳方法是什么。现在,对于图像,我只是创建一个大小为“0”的主体,并将图像url放在render.sprite.texture属性中。看起来很管用,但是在画布上放置静态图像有什么不同/更好的方法吗?

此外,在创建/绘制其他内容之前,我使用脚本顶部附近的“afterRender”事件将文本放到画布上:

代码语言:javascript
运行
AI代码解释
复制
_sceneEvents.push(
    Events.on(_engine, 'afterRender', function(event) {
        var context = _engine.render.context;
        context.font = "45px 'Cabin Sketch'";
        context.fillText("THROW OBJECT HERE", 150, 80);
    });
);

唯一的问题是文本总是被画在顶部,所以我的拖放对象一直在文本后面。我只想让文本保持在背景中,就像静态图像一样,但我认为将字体绘制到画布上可能比让用户下载另一张图像更好。有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-12 12:13:22

Matter.js中包含的呈现器实际上只是为了演示,所以最好的方法是复制一个示例Render.js,然后在那里实现所有的呈现(其中Render.world是每个滴答上调用的条目方法)。

将对象名称更改为类似于CustomRenderer的其他内容,然后在Engine.create选项中传递您的呈现类:

代码语言:javascript
运行
AI代码解释
复制
var engine = Engine.create({
    render: {
        element: element,
        controller: CustomRenderer
    }
});
票数 5
EN

Stack Overflow用户

发布于 2016-02-10 22:24:33

有点晚了,但是这方面的文档显示,在将sprite添加到呈现器中时,使用了正确的方法:

代码语言:javascript
运行
AI代码解释
复制
    let head = Bodies.circle(450, 50, 17, {
                render: {
                    sprite: {
                        texture: './img/head.png'
                    }
                }}
            );

https://github.com/liabru/matter-js/blob/master/examples/sprites.js

(目前还不知道问题的正文部分)

票数 4
EN

Stack Overflow用户

发布于 2018-11-01 12:38:37

这是如何将函数中的文本字符串作为基本图像返回的方法。

代码语言:javascript
运行
AI代码解释
复制
createImage($string) {

    let drawing = document.createElement("canvas");

    drawing.width = '150'
    drawing.height = '150'

    let ctx = drawing.getContext("2d");

    ctx.fillStyle = "blue";
    //ctx.fillRect(0, 0, 150, 150);
    ctx.beginPath();
    ctx.arc(75, 75, 20, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.fill();
    ctx.fillStyle = "#fff";
    ctx.font = "20pt sans-serif";
    ctx.textAlign = "center";
    ctx.fillText($string, 75, 85);
    // ctx.strokeText("Canvas Rocks!", 5, 130);

    return drawing.toDataURL("image/png");
},

// and then e.g. in your sprites

// ...

render: {
  sprite: {
      texture: createImage("Your Text String")
      xScale: 1,
      yScale: 1
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26043360

复制
相关文章
llinux/重启/用户切换/注销
一.指令 shutdown命令 shutdown -h now //立即关机 shutdown -h 2 //分钟后关机 shutdown -r now //立即重启 shutdown -r 1 //1分钟后重启 sleep 30s //等待30秒来后面也可以运行程序 halt //关机 reboot //重启 sync //把内存的数据同步到磁盘,一般定时关机或者重启都要加这个指令放置信息丢失 init 0 //关机 init 6 //重启 二.定时关机脚本
小小咸鱼YwY
2020/06/19
2.9K0
linux用户的登录和注销
在 Linux 系统中,用户登录和注销是使用 Shell(命令行解释器)来完成的。本文将介绍如何在 Linux 系统中进行用户登录和注销的详细过程,并给出相应的示例。
玖叁叁
2023/04/09
6.3K0
idea。git撤销merge操作。并取消
该命令仅仅在合并后导致冲突时才使用。git merge --abort将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未commit的文件,git merge --abort在某些情况下将无法重现合并前的状态。(特别是这些未commit的文件在合并的过程中将会被修改时)
DencyCheng
2020/05/25
8.8K0
修改用户ID和用户组ID
假定原用户和用户组id如下: 用户 admin 500 组 admin 500 要修改成用户和组id如下: 用户 admin 1000 组 admin 1000 修改用户ID usermod -u 1000 admin 修改组ID groupmod -g 1000 admin 修改文件权限 find / -user 500 -exec chown -h admin {} \; find / -group 500 -exec chgrp -h admin {} \;
kongxx
2018/12/21
2.7K0
Apache NiFi中的JWT身份验证
JSON Web Tokens为众多Web应用程序和框架提供了灵活的身份验证和授权标准。RFC 7519概述了JWT的基本要素,枚举了符合公共声明属性的所需编码,格式和已注册的声明属性名称(payload里属性称为声明)。RFC 7515中的JSON Web签名和RFC 7518中的JSON Web算法描述了JWT的支持标准,其他的比如OAuth 2.0框架的安全标准构建在这些支持标准上,就可以在各种服务中启用授权。
@阿诚
2022/03/04
4.2K0
微服务系列-认证策略
在服务众多的微服务体系中,使用单点登录方案是一个好的解决方式。也意味着每个面向用户的服务都必须和认证服务交互,这会带来琐碎的流量,同时方案实现起来较复杂。 分布式会话: 将用户认证信息存储在共享存储中,通畅由用户会话作为key来实现的简单分布式哈希映射,当用户访问微服务时,用户数据可以从共享存储中获取。 客户端令牌: 令牌在客户端产生,有身份认证服务进行签名,必须包括足够多的信息,以便在微服务中建立用户身份。令牌附加在每个请求上,为微服务提供用户身份认证。 这种方案安全性相对较好,身份验证注销是一个问题
春哥大魔王
2018/04/16
7240
微服务系列-认证策略
Restful安全认证及权限的解决方案
一、Restful安全认证常用方式  1.Session+Cookie  传统的Web认证方式。需要解决会话共享及跨域请求的问题。  2.JWT  JSON Web Token。  3.OAuth 
庞小明
2018/03/09
2.9K0
Restful安全认证及权限的解决方案
撤销 git add . 并保留修改的方法
执行完 git add . 才发现没有在对应的分支,如何撤回呢? 可以参考下面的方法: 文件退出暂存区,但是修改保留: git reset --mixed 撤销所有的已经 add 的文件: git reset HEAD . 撤销某个文件或文件夹: git reset HEAD  -filename 另外:可以用 git status Git 会告诉你可以通过那个命令来执行操作。 未经允许不得转载:w3h5 » 撤销 git add . 并保留修改的方法
德顺
2022/01/12
33.6K0
linux之开机、重启和用户登录注销
一、开机和重启 shutdown: shutdown -h now:立即关机 shutdown -h 1:1分钟后关机 shutdown -r now:立即重启 halt:直接使用,相当于立即关机 reboot:重启 sync:把内存的数据同步到磁盘(建议关机或重启之前先执行,防止数据丢失) 二、用户登录和注销 使用su-用户名指令可以直接切换为不同用户。 在远程连接时,而不是在linux终端,使用logout可注销用户。
西西嘛呦
2020/08/26
3.6K0
WinCC脚本应用之用户登录/注销
Simatic WinCC项目中的用户管理可用来分配和管理运行系统中操作的访问,简单来说就是规定张三可以点击这个按钮,李四不可以修改过程数据。既然有用户就会有用户登录/注销这个操作,通常我们习惯组态“登录”和“注销”按钮来实现这个操作,按钮事件下可以组态C脚本调用相应的ODK函数。而VBS脚本中没有直接提供用户登录/注销的对象或者方法,但是我们仍然可以在VBS脚本间接的实现这个功能。
科控物联
2022/03/28
10K0
WinCC脚本应用之用户登录/注销
JavaWeb 基于Session的用户登陆注销实现
  通过Session来存储用户的部分登陆信息来验证用户是否在线,这应该时最容易实现的一种Web端方案,本文以SSM(Spring、SpringMVC、myBatis)框架为载体,来具体实现这套登陆系统。
Rekent
2018/09/04
2.3K0
分享一篇详尽的关于如何在 JavaScript 中实现刷新令牌的指南
刷新令牌允许用户无需重新进行身份验证即可获取新的访问令牌,从而确保更加无缝的身份验证体验。这是通过使用长期刷新令牌来获取新的访问令牌来完成的,即使原始访问令牌已过期也是如此。
前端达人
2023/08/31
4640
分享一篇详尽的关于如何在 JavaScript 中实现刷新令牌的指南
Linux之开机、重启和用户登录注销等操作
1. 关机&重启命令 基本介绍 立刻进行关机 shutdown -h now 显示提示信息后再关机:“hello,1分钟后会关机了” shutdown -h 1 "hello,1分钟后会关机了" 现在立刻重新启动计算机 shutdown -r now 或 reboot 关机,作用和上面的一样。但不是正常关机,这是关闭内存 half 或 int 0 把内存和数据同步到磁盘 sync 2. 注意细节 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中 目前的 shutdown/rebo
兮动人
2021/06/11
1.8K0
Linux 虚拟机关机、重启和用户登录注销
# Linux 虚拟机关机、重启和用户登录注销 # 关机&重启命令 # 基本介绍 shutdown -h now 立该进行关机 shutdown -h 1 "hello,1分钟后会关机了" shutdown -r now 现在重新启动计算机 halt 关机,作用和上面一样. reboot 现在重新启动
用户9615083
2022/12/25
2.6K0
基础SQL-DCL语句-创建用户-授权用户-撤销授权-查看权限-删除用户-修改用户密码
我们一般默认使用的都是root用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
Devops海洋的渔夫
2022/01/17
1.4K0
基础SQL-DCL语句-创建用户-授权用户-撤销授权-查看权限-删除用户-修改用户密码
单点登录原理与简单实现 原
web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系
wuweixiang
2018/08/14
9090
单点登录原理与简单实现
                                                                            原
单点登录原理与简单实现
web应用通常采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系。
Bug开发工程师
2018/09/21
1.1K0
单点登录原理与简单实现
点击加载更多

相似问题

烧瓶--如何撤销令牌/注销

110

Spring security。如何注销用户(撤销oauth2令牌)

8555

Laravel护照单元注销/撤销令牌测试

20

如何FOSOAuthServerBundle“注销”或更好地撤销令牌

24

如何注销(即撤销、删除或使令牌失效)?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档