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

Project1

 找回密码
 注册会员
搜索
查看: 176|回复: 14

[有事请教] 请教如何整体放大画面?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8117
在线时间
749 小时
注册时间
2017-11-10
帖子
1218
发表于 2018-12-5 23:07:39 | 显示全部楼层 |阅读模式

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

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

x
在WOLF RPG Editor有一个功能是按某个键可以将窗口整体放大的。
比如原来的画面为640*480
按F5之后可以将游戏窗口调节到960*640
再F5之后可以将游戏窗口调节到1280*960
请问这种功能该在XP内怎么实现?
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。

Lv3.寻梦者

梦石
0
星屑
1930
在线时间
827 小时
注册时间
2011-8-16
帖子
241
发表于 7 天前 | 显示全部楼层
  1. module Input
  2.   
  3.   RES_KEY = Input::F5
  4.   HWND = Win32API.new('user32', 'GetActiveWindow', nil, 'l').call
  5.   SetWindowPos  = Win32API.new('user32', 'SetWindowPos', 'lliiiii', 'i')
  6.   GetSystemMetrics = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i')
  7.   
  8.   @state = 0
  9.   
  10.   class << self
  11.     alias update_res update
  12.     def update
  13.       if Input.trigger?(RES_KEY)
  14.         case @state
  15.         when 0
  16.           @state = 1
  17.           set_window(960, 640)
  18.         when 1
  19.           @state = 2
  20.           set_window(1280, 960)
  21.         when 2
  22.           @state = 0
  23.           set_window(640, 480)
  24.         end
  25.       end
  26.       update_res
  27.     end
  28.   
  29.     def set_window(w, h)
  30.       x = (GetSystemMetrics.call(0) - w) / 2
  31.       y = (GetSystemMetrics.call(1) - h) / 2
  32.       h += GetSystemMetrics.call(4)
  33.       SetWindowPos.call(HWND, 0, x, y, w, h, 0x0020)
  34.     end
  35.   end
  36. end
复制代码


以上代码能更改窗口分辨率,但是无法同时拉伸窗口内容。

评分

参与人数 1+1 收起 理由
文雅夕露 + 1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8117
在线时间
749 小时
注册时间
2017-11-10
帖子
1218
 楼主| 发表于 6 天前 | 显示全部楼层
失落的乐章 发表于 2018-12-6 18:40
以上代码能更改窗口分辨率,但是无法同时拉伸窗口内容。

谢谢前辈的解答
但是这样做游戏内部的画面不会随之扩大耶
我想要的效果是游戏内部的图像等内容也随着窗口放大缩小

点评

不推荐去动xp的这部分  发表于 5 天前
使用SetWindowPos只有VX或VA会拉伸窗口内容,XP好像是绘制的问题。  发表于 6 天前
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8782
在线时间
4470 小时
注册时间
2009-3-15
帖子
2608
发表于 6 天前 | 显示全部楼层
只找到可以放大RM窗口大小的工具..日文的..
https://forest.watch.impress.co.jp/docs/review/692097.html

shinkirou1262.zip

214.95 KB, 下载次数: 11

点评

工具不错,但是我想用脚本来实现这个功能  发表于 6 天前

评分

参与人数 1+1 收起 理由
文雅夕露 + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
15
在线时间
0 小时
注册时间
2018-12-7
帖子
1
发表于 5 天前 | 显示全部楼层
失落的乐章 发表于 2018-12-6 18:40
以上代码能更改窗口分辨率,但是无法同时拉伸窗口内容。

前辈,如果想让玩家自己设置想要的分辨率大小,应该怎么弄呢?

点评

你可以改用游戏变量控制嘛..  发表于 5 天前
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8782
在线时间
4470 小时
注册时间
2009-3-15
帖子
2608
发表于 5 天前 | 显示全部楼层
李时珍的皮 发表于 2018-12-8 18:27
前辈,如果想让玩家自己设置想要的分辨率大小,应该怎么弄呢?


RUBY 代码复制打印
  1. module Input
  2.  
  3.   RES_KEY = Input::F5
  4.   HWND = Win32API.new('user32', 'GetActiveWindow', nil, 'l').call
  5.   SetWindowPos  = Win32API.new('user32', 'SetWindowPos', 'lliiiii', 'i')
  6.   GetSystemMetrics = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i')
  7.  
  8.   @state = 0
  9.  
  10.   class << self
  11.     alias update_res update
  12.     def update
  13.           set_window($game_variables[x], $game_variables[y])
  14.       update_res
  15.     end
  16.  
  17.     def set_window(w, h)
  18.       x = (GetSystemMetrics.call(0) - w) / 2
  19.       y = (GetSystemMetrics.call(1) - h) / 2
  20.       h += GetSystemMetrics.call(4)
  21.       SetWindowPos.call(HWND, 0, x, y, w, h, 0x0020)
  22.     end
  23.   end
  24. end



改成这样不行吗?

点评

全屏是更改分辨率,那是显卡把屏幕填满的,硬用脚本实现也是可以的。  发表于 前天 14:14
话说之前曾经发个软件可以任意放缩窗口。估计API应该可行  发表于 前天 10:45
话说XP可以全屏..不就代表其实可以放大的吗  发表于 3 天前
XP的画面是不会根据窗口尺寸重绘的  发表于 3 天前
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
602
在线时间
3005 小时
注册时间
2007-3-16
帖子
33707

开拓者贵宾

发表于 前天 10:52 | 显示全部楼层
https://rpg.blue/forum.php?mod=viewthread&tid=321213
我找到了这个工具来着。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2018-12-13 12:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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