Phaser中设置visible为true时图片无法显示的问题求助
通过对象引用控制Phaser图片显示的问题解决
问题描述
我希望游戏启动时图片处于隐藏状态,之后在屏幕上显示,后续再隐藏。代码步骤如下:
- 在create函数中创建图片并设置隐藏:
sign1Info = this.add.image(200, 200, "sign1").setScale(4); sign1Info.visible = false;
- 在create函数中将图片存入对象:
sign_dict = {"sign1" : sign1Info};
- 在update函数中尝试通过对象设置图片显示:
sign_dict[signName].visable = true;
遇到的问题:Firefox开发者工具显示visible属性已变为true,但图片仍未在屏幕上显示,仅当直接写sign1Info.visible = true;时才有效。请问如何通过对象方式让图片显示?
解决方案
问题出在拼写错误——你把Phaser图片的visible属性写成了visable(正确拼写是visible,少写了一个s)。
浏览器会允许你给对象添加不存在的visable属性,开发者工具也会显示这个属性为true,但Phaser的渲染逻辑只会识别正确的visible属性来控制图片显示。修改update函数里的代码即可解决:
sign_dict[signName].visible = true;
内容的提问来源于stack exchange,提问作者AshBoomstick1
相关产品推荐
相关产品推荐

