2017-05-30 107 views
0
var adobe1bar1; 
function preload() { 
    adobe1bar1 = loadImage("1-1.png"); 
} 
function setup() { 
    createCanvas(500, 500, WEBGL); 
    center = createVector(width/2, height/2, height/2); 
    cameraZ = -500; 
} 
function draw() { 
    background(40); // backgraound white 
    var cameraX = map(mouseX, 0, width, -500, 500); // map 
    var cameraY = map(mouseY, 0, height, -500, 500); 
    console.log(cameraY, cameraX); 
    if (cameraZ < -500) { 
    cameraZ = -500; 
    } 
    if (cameraZ > 0) { 
    cameraZ = 0; 
    } 
    camera(center.x + cameraX, center.y + cameraY, center.z + cameraZ, center.x, center.y, center.z, 0, 1, 0); 
    translate(center.x, center.y, center.z); 
    translate(0, 0, 0); 
    image(adobe1bar1, -250, -250, 500, 500); 
} 

这是我的p5.js代码。p5.js this._renderer.image不是功能问题

当我使用image() function 以下错误消息不断出现。

Uncaught TypeError: this._renderer.image is not a function

有没有解决方案?

当不使用“WEBGL”, 它上传图片没有错误, 但camera()功能不起作用。

+0

你能编辑在控制台中出现错误的堆栈跟踪问题?它似乎错误不是来自您发布的代码 –

回答

0

图像不是一个WEBGL功能。

尝试将图像纹理应用于平面。

texture(adobe1bar1); 
translate(-250, -250, 0); 
plane(500); 

https://github.com/processing/p5.js/wiki/Getting-started-with-WebGL-in-p5

编辑: 要使用透明的质感,你需要启用混合模式,它可以通过使用来完成:

fill(0,0,0,0); 

在设置

+0

我如何在纹理()上使用png图像(透明图像)? – JuneNan

+0

@JuneNan这听起来像是一个单独的问题。请将它发布在一个新的问题帖子中,同时更新[mcve]。 –