gpt4 book ai didi

javascript - 在 arbor.js 中使用图像的性能问题

转载 作者:数据小太阳 更新时间:2023-10-29 05:30:37 24 4
gpt4 key购买 nike

我一直致力于调整 arbor.js 以使用图像。

然而,作为一个相对的 JS 菜鸟,我拥有的是完全未优化的。

据我所知,我设置它的方式是为每个图像和每个帧重新创建图像对象,从而导致大量闪烁。

任何人都可以建议一种方法将新的 Image() 内容从重绘函数移到启动中吗?据我所知,这是一个基本的 OOP 问题,但完全卡住了。

谢谢!

Pastebin我在输出脚本上的位置

Current status .

最佳答案

向大家致歉!有几个步骤。我将突出显示关键阶段,其余部分来自教程。

首先,将相关信息添加到您的JSON中,例如:

nodes:{
innovation:{ 'color':colour.darkblue,
'shape':'dot',
'radius':30,
'image': 'innovation.png',
'image_w':130,
'image_h':24,
'alpha':1 },
participation:{ 'color':colour.purple,
'shape':'dot',
'radius':40,
'image':'participation.png',
'image_w':130,
'image_h':24,
'alpha':1 },
...

加载时缓存所有图像。

init:function(system){

// Normal initialisation
particleSystem = system
particleSystem.screenSize(canvas.width, canvas.height)
particleSystem.screenPadding(25, 50)
that.initMouseHandling()

// Preload all images into the node object
particleSystem.eachNode(function(node, pt) {
if(node.data.image) {
node.data.imageob = new Image()
node.data.imageob.src = imagepath + node.data.image
}
})
...

然后,为了移动图像本身...

particleSystem.eachNode(function(node, pt){
...
// Image info from JSON
var imageob = node.data.imageob
var imageH = node.data.image_h
var imageW = node.data.image_w
...
// Draw the object
if (node.data.shape=='dot'){
// Check if it's a dot
gfx.oval(pt.x-w/2, pt.y-w/2, w,w, {fill:ctx.fillStyle, alpha:node.data.alpha})
nodeBoxes[node.name] = [pt.x-w/2, pt.y-w/2, w,w]
// Does it have an image?
if (imageob){
// Images are drawn from cache
ctx.drawImage(imageob, pt.x-(imageW/2), pt.y+radius/2, imageW, imageH)
}
}else {
// If none of the above, draw a rectangle
gfx.rect(pt.x-w/2, pt.y-10, w,20, 4, {fill:ctx.fillStyle, alpha:node.data.alpha})
nodeBoxes[node.name] = [pt.x-w/2, pt.y-11, w, 22]
}
...

关于javascript - 在 arbor.js 中使用图像的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9826253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com