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

Project1

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

[有事请教] 如何不用插件,只用脚本显示一大篇书页的内容?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4638
在线时间
684 小时
注册时间
2013-1-18
帖子
710
跳转到指定楼层
1
发表于 2022-12-26 11:07:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
普通对话框只能显示几排内容,我想显示一大篇内容,比如打开一封信这样的效果,请问该怎么做呢?

Lv4.逐梦者

梦石
0
星屑
9852
在线时间
1884 小时
注册时间
2020-1-2
帖子
1089
2
发表于 2022-12-26 12:06:09 | 只看该作者
滚动文字不就好了
B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7247
在线时间
474 小时
注册时间
2021-12-4
帖子
513
3
发表于 2022-12-26 12:53:47 | 只看该作者
试试这个官方插件,可以把多行文字视为一张图片显示呢。
JAVASCRIPT 代码复制下载
  1. //=============================================================================
  2. // RPG Maker MV - Text Picture
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @target MV
  7.  * @plugindesc Displays text as a picture.
  8.  * @author Yoji Ojima
  9.  *
  10.  * @help TextPicture.js
  11.  *
  12.  * This plugin provides a command to show text as a picture.
  13.  *
  14.  * Use it in the following procedure.
  15.  *   1. Call the plugin command "Set Text Picture".
  16.  *   2. Execute "Show Picture" without specifying an image.
  17.  *
  18.  * @command set
  19.  * @text Set Text Picture
  20.  * @desc Sets text to display as a picture.
  21.  *       After this, execute "Show Picture" without specifying an image.
  22.  *
  23.  * @arg text
  24.  * @type multiline_string
  25.  * @text Text
  26.  * @desc Text to display as a picture.
  27.  *       Control characters are allowed.
  28.  */
  29.  
  30. (() => {
  31.     const pluginName = "TextPicture";
  32.     let textPictureText = "";
  33.  
  34.     PluginManager.registerCommand(pluginName, "set", args => {
  35.         textPictureText = String(args.text);
  36.     });
  37.  
  38.     const _Game_Picture_show = Game_Picture.prototype.show;
  39.     Game_Picture.prototype.show = function() {
  40.         _Game_Picture_show.apply(this, arguments);
  41.         if (this._name === "" && textPictureText) {
  42.             this.mzkp_text = textPictureText;
  43.             this.mzkp_textChanged = true;
  44.             textPictureText = "";
  45.         }
  46.     };
  47.  
  48.     const _Sprite_Picture_destroy = Sprite_Picture.prototype.destroy;
  49.     Sprite_Picture.prototype.destroy = function() {
  50.         destroyTextPictureBitmap(this.bitmap);
  51.         _Sprite_Picture_destroy.apply(this, arguments);
  52.     };
  53.  
  54.     const _Sprite_Picture_updateBitmap = Sprite_Picture.prototype.updateBitmap;
  55.     Sprite_Picture.prototype.updateBitmap = function() {
  56.         _Sprite_Picture_updateBitmap.apply(this, arguments);
  57.         if (this.visible && this._pictureName === "") {
  58.             const picture = this.picture();
  59.             const text = picture ? picture.mzkp_text || "" : "";
  60.             const textChanged = picture && picture.mzkp_textChanged;
  61.             if (this.mzkp_text !== text || textChanged) {
  62.                 this.mzkp_text = text;
  63.                 destroyTextPictureBitmap(this.bitmap);
  64.                 this.bitmap = createTextPictureBitmap(text);
  65.                 picture.mzkp_textChanged = false;
  66.             }
  67.         } else {
  68.             this.mzkp_text = "";
  69.         }
  70.     };
  71.  
  72.     function createTextPictureBitmap(text) {
  73.         const tempWindow = new Window_Base(new Rectangle());
  74.         const size = tempWindow.textSizeEx(text);
  75.         tempWindow.padding = 0;
  76.         tempWindow.move(0, 0, size.width, size.height);
  77.         tempWindow.createContents();
  78.         tempWindow.drawTextEx(text, 0, 0, 0);
  79.         const bitmap = tempWindow.contents;
  80.         tempWindow.contents = null;
  81.         tempWindow.destroy();
  82.         bitmap.mzkp_isTextPicture = true;
  83.         return bitmap;
  84.     }
  85.  
  86.     function destroyTextPictureBitmap(bitmap) {
  87.         if (bitmap && bitmap.mzkp_isTextPicture) {
  88.             bitmap.destroy();
  89.         }
  90.     }
  91. })();
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4638
在线时间
684 小时
注册时间
2013-1-18
帖子
710
4
 楼主| 发表于 2022-12-26 13:12:51 | 只看该作者
本帖最后由 nhycs01 于 2022-12-26 13:15 编辑
小秋橙 发表于 2022-12-26 12:53
试试这个官方插件,可以把多行文字视为一张图片显示呢。
//============================================= ...


感谢指点,但是这个插件是不是有问题,我新建了一个新工程去试验,也出不来效果,按下F8也有提示错误。

事件里我是这样写的:

插件指令:Set Text Picture
显示图片:图像设置为“无”
显示对话框文字
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 19:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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