设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4324|回复: 10
打印 上一主题 下一主题

[已经解决] 如何让窗口在游戏过程中一直显示同时不会影响游戏的...

[复制链接]

Lv1.梦旅人

梦石
0
星屑
102
在线时间
64 小时
注册时间
2015-10-31
帖子
35
跳转到指定楼层
1
发表于 2016-6-6 09:26:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
代码很简单,就是在窗口中显示一个变量的值和主角的HP值:
JAVASCRIPT 代码复制
  1. function Window_Testing(){
  2. this.initialize.apply(this,arguments);
  3. }
  4. Window_Testing.prototype=Object.create(Window_Selectable.prototype);
  5. Window_Testing.prototype.initialize=function(x,y,width,height){
  6. Window_Selectable.prototype.initialize.call(this,x,y,width,height);
  7. this.drawSomeText();
  8. }
  9.  
  10. Window_Testing.prototype.drawSomeText=function(){
  11. var actor=$gameActors.actor(1);
  12.  
  13.     var textW = 360;
  14.     var textH = 0;
  15.     this.contents.clear();
  16.     this.drawText("持有的生命之石:"+$gameVariables.value(11)+"/10", 0, textH, textW, 'right');
  17.     textH += this.lineHeight();
  18.     this.drawText(actor._name+"的生命值为:"+actor.hp+"/"+actor.mhp, 0, textH, textW, 'right');
  19.  
  20. }
  21.  
  22. function Scene_Testing(){
  23. this.initialize.apply(this,arguments);
  24. }
  25. Scene_Testing.prototype=Object.create(Scene_MenuBase.prototype);
  26. Scene_Testing.prototype.initialize=function(){
  27. Scene_MenuBase.prototype.initialize.call(this);
  28. };
  29.  
  30. Scene_Testing.prototype.create=function(){
  31. Scene_MenuBase.prototype.create.call(this);
  32. this._commandWindow=new Window_Testing(0,480,400,110);
  33. this.addWindow(this._commandWindow);
  34. };
  35.  
  36. Scene_Testing.prototype.update=function(){
  37. /*这里该怎么写才能让该窗口在游戏过程中一直显示同时不会影响游戏的进程*/
  38. SceneManager.goto(Scene_Map);
  39. };

在事件页调用该脚本

窗口会不停闪烁。请教高手们,该怎样写才能实现该窗口在游戏过程中一直显示同时不会影响游戏的进程,谢谢。

让窗口显示而不影响游戏.jpg (152.18 KB, 下载次数: 22)

事件页

事件页

Lv1.梦旅人

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
帖子
129
2
发表于 2016-6-6 12:39:14 | 只看该作者
  1. (function(){

  2. var rice_scene_start = Scene_Map.prototype.start;
  3. Scene_Map.prototype.start = function() {
  4.   rice_scene_start.call(this);
  5.   this.riceWindow = new riceWindow(0, 668);
  6.   this.addWindow(this.riceWindow);


  7. };

  8. function riceWindow(){

  9. this.initialize.apply(this, arguments);

  10. };

  11. riceWindow.prototype = Object.create(Window_Base.prototype);
  12. riceWindow.prototype.constructor = riceWindow;

  13.    

  14. riceWindow.prototype.initialize = function(x, y){
  15. Window_Base.prototype.initialize.call(this, x, y, 800, 120);

  16.    
  17. };

  18. riceWindow.prototype.update = function(){
  19.     var actor = $gameActors.actor(1);
  20.         var textW = 360;
  21.     var textH = 0;
  22.     this.contents.clear();
  23.     this.drawText("持有的生命之石:" + $gameVariables.value(11)+"/10", 0, textH, textW, 'left');
  24.     textH += this.lineHeight();
  25.     this.drawText(actor._name +"的生命值为:" + actor.hp+"/"+actor.mhp, 0, textH, textW, 'left');

  26. };



  27. })()
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
帖子
129
3
发表于 2016-6-6 12:44:20 | 只看该作者
根本不需要事件页调用脚本。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
102
在线时间
64 小时
注册时间
2015-10-31
帖子
35
4
 楼主| 发表于 2016-6-6 15:56:02 | 只看该作者
米大湿 发表于 2016-6-6 12:44
根本不需要事件页调用脚本。。。

确实,在插件管理器让插件为on就行,不过采用上面的代码游戏运行时没有显示窗口,最后面加上;也不行,我把代码改成
  1. (function() {
  2. function Window_Testing(){
  3. this.initialize.apply(this,arguments);
  4. };
  5. Window_Testing.prototype=Object.create(Window_Selectable.prototype);
  6. Window_Testing.prototype.initialize=function(x,y,width,height){
  7. Window_Selectable.prototype.initialize.call(this,x,y,width,height);

  8. };


  9. function Scene_Testing(){
  10. this.initialize.apply(this,arguments);
  11. };
  12. Scene_Testing.prototype=Object.create(Scene_MenuBase.prototype);
  13. Scene_Testing.prototype.initialize=function(){
  14. Scene_MenuBase.prototype.initialize.call(this);
  15. };

  16. Scene_Testing.prototype.create=function(){
  17. Scene_MenuBase.prototype.create.call(this);
  18. this._commandWindow=new Window_Testing(0,480,400,110);
  19. this.addWindow(this._commandWindow);

  20. };

  21. Scene_Testing.prototype.update=function(){
  22. var actor=$gameActors.actor(1);
  23.    
  24.     var textW = 360;
  25.     var textH = 0;
  26.     this.contents.clear();
  27.     this.drawText("持有的生命之石:"+$gameVariables.value(11)+"/10", 0, textH, textW, 'right');
  28.     textH += this.lineHeight();
  29.     this.drawText(actor._name+"的生命值为:"+actor.hp+"/"+actor.mhp, 0, textH, textW, 'right');
  30. };
  31. })();
复制代码
也不行,不知道出错在哪里。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
帖子
129
5
发表于 2016-6-6 16:16:33 | 只看该作者
请自行修改窗口大小和坐标 我代码里初设的窗口y是668 因为我的游戏分辨率是1280x768
如果是默认分辨率请自行修改
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
帖子
129
6
发表于 2016-6-6 16:23:18 | 只看该作者
this.riceWindow = new riceWindow(0, 668);
改成
this.riceWindow = new riceWindow(0, 0);
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
帖子
129
7
发表于 2016-6-6 16:25:25 | 只看该作者
还有就是 你的代码不知道哪里抄来的 还是自己乱拼凑的,问题太多,我就不多说了- -
最后那个;无需加
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
帖子
129
8
发表于 2016-6-6 16:29:33 | 只看该作者
还有就是MV版本最好更新至1.2.0 = =
因为新版本的系统JS有大改动
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
102
在线时间
64 小时
注册时间
2015-10-31
帖子
35
9
 楼主| 发表于 2016-6-7 21:09:46 | 只看该作者
米大湿 发表于 2016-6-6 16:23
this.riceWindow = new riceWindow(0, 668);
改成
this.riceWindow = new riceWindow(0, 0);

非常感谢,我是在别人的代码的基础上做的修改。你的代码确实可以用,我自己的修改了一下,也可以用了。再次感谢!
  1. (function() {
  2. Scene_Map.prototype.start=function(){
  3. Scene_Base.prototype.start.call(this);
  4. this.Scene_Testing=new Window_Testing(0,480,400,110);
  5. this.addWindow(this.Scene_Testing);
  6. };
  7. function Window_Testing(){
  8. this.initialize.apply(this,arguments);
  9. };
  10. Window_Testing.prototype=Object.create(Window_Selectable.prototype);
  11. Window_Testing.prototype.initialize=function(x,y,width,height){
  12. Window_Selectable.prototype.initialize.call(this,x,y,width,height);
  13. };

  14. Window_Testing.prototype.update=function(){
  15.     var actor=$gameActors.actor(1);
  16.     var textW = 360;
  17.     var textH = 0;
  18.     this.contents.clear();
  19.     this.drawText("持有的生命之石:"+$gameVariables.value(11)+"/10", 0, textH, textW, 'right');
  20.     textH += this.lineHeight();
  21.     this.drawText(actor._name+"的生命值为:"+actor.hp+"/"+actor.mhp, 0, textH, textW, 'right');
  22. };
  23. })();
复制代码
我的版本1.01也能正确显示。

窗口显示且不影响游戏.jpg (285.78 KB, 下载次数: 26)

窗口显示且不影响游戏

窗口显示且不影响游戏
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
33 小时
注册时间
2010-9-5
帖子
7
10
发表于 2016-6-10 11:48:26 | 只看该作者
请问如果想关闭视窗要怎样做?
有没有OFF插件的语法? 还是只能在插件中加入if then 语法?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-24 11:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表