| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2020-5-5 |
| 在线时间 | 705 小时 |
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 705 小时
- 注册时间
- 2007-12-23
- 回帖
- 809
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
[pre lang="javascript"]var bitmap = ImageManager.loadEnemy("Bat", 0);
this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0);[/pre]
本来我想通过这种方式描绘一个敌人的战斗图,结果什么也没有绘制。
于是我加了一行调试语句:
[pre lang="javascript"]var bitmap = ImageManager.loadEnemy("Bat", 0);
console.log(bitmap._isLoading, bitmap.width, bitmap.height);
this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0);[/pre]
结果控制台的输出是
[pre lang="javascript"]true 0 0[/pre]
实验一:如果我在游戏启动前现在控制台里执行
[pre lang="javascript"] ImageManager.loadEnemy("Bat", 0);[/pre]
这样图片就能正确绘制了。
实验二:如果用ImageManager.loadSystem加载一个小图标,就不会出现这样的问题。
实验三:在这个窗口的update函数里不断调用这些语句,而不是只在创建时调用一次,也能解决这个问题。根据控制台输出,只有窗口创建时那一次输出是true 0 0,后面每一次都是正常的false 48 48。
我怀疑是MV引擎是异步加载位图,而不是等待位图加载再往下执行。求大神解释。另外,不知道有没有什么好的解决方案。。 |
|