查看: 2466|回复: 7

[有事请教] 我如何讓10秒後自動更改遊戲視窗大小呢?

[复制链接]
奖 80 星屑 回复本帖可获得 10 星屑奖励! 每人限 1 次
梦石
0
星屑
7997
在线时间
1442 小时
注册时间
2018-12-16
回帖
1843
发表于 2021-10-20 17:07:39 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 play337 于 2021-10-20 17:18 编辑

我如何讓10秒後自動更改遊戲視窗大小呢?

<canvas width="800" height="600" id="canvas" oncontextmenu="event.preventDefault()" style="width: 800px; height: 600px;"></canvas>

經過十秒

<canvas width="600" height="400" id="canvas" oncontextmenu="event.preventDefault()" style="width: 600px; height: 400px;"></canvas>

-----------------------------------------------------
[pre lang="javascript"]<script>
setTimeout("alert('對不起, 要你久候')", 30000 )
document.getElementById('canvas').width = '600px';
document.getElementById('canvas').height = '400px';
document.getElementById('canvas').style.width = '600px';
document.getElementById('canvas').style.height = '400px';
</script>[/pre]

結果甚麼事情也沒有發生....

[pre lang="javascript"]<script>
setTimeout("alert('對不起, 要你久候')", 15000 )
document.getElementById('canvas').width = 600;
document.getElementById('canvas').height = 400;
</script>[/pre]

還是甚麼事情都沒發生.....

[pre lang="javascript"]window.onload = function() {
    function resize() {
        let canvas = document.querySelector('canvas')
        let ww = window.innerWidth
        let wh = window.innerHeight
        let wRatio =  ww / wh
        let gameRatio = config.width / config.height
        if (wRatio < gameRatio) {
            canvas.style.width = ww + 'px'
            canvas.style.height = ( ww / gameRatio ) + 'px'
        } else {
            canvas.style.width = ( wh * gameRatio ) + 'px'
            canvas.style.height = wh + 'px'
        }
    }
    resize()
    window.addEventListener('resize', resize, false)        // 偵聽事件 resize
}[/pre]

後來找到這個好像很棒的東西...他說可以自己更改遊戲大小... 但是 還是甚麼事情都沒有發生... >_<

------------------------------------------------------
有沒有辦法弄個可以拉動的條....很簡單的改變遊戲視窗大小呢?

如果不能有可以拉動的條...不然就幾個我給定固定大小的按鈕好了....
梦石
0
星屑
14322
在线时间
2611 小时
注册时间
2013-6-10
回帖
1692
发表于 2021-10-20 18:56:51 | 显示全部楼层

回帖奖励 +10 星屑

当然什么事情也不会发生啦,你写的的代码意思是10秒后弹出对不起,要你久候。

点评

已經弄到暈頭了....  发表于 2021-10-20 23:38
好像不是经过10秒,是经过30秒  发表于 2021-10-20 18:58
回复

使用道具 举报

梦石
0
星屑
3486
在线时间
294 小时
注册时间
2020-1-27
回帖
180
发表于 2021-10-20 21:10:21 | 显示全部楼层

回帖奖励 +10 星屑

首先 现代浏览器好像不允许正常网页自己修改大小(弹窗不知道)
然后mv/mz默认支持自动将游戏适配窗口大小的.

你如果是mv/mz默认的的nwjs打包那可以用nwjs的内置函数+启动mv自身的缩放.


  1. function resizeTo(w,h){
  2.         Graphics._stretchEnabled=true;
  3.         Graphics._updateAllElements()
  4.         var win = require("nw.gui").Window.get();
  5.         win.restore();
  6.         win.resizeTo(w,h);
  7. }
  8. setTimeout(function(){
  9.     resizeTo(600,400)
  10. }, 30*1000);
复制代码

点评

^_________^  发表于 2021-10-23 00:23
那就得根据网页来调整画面大小了, 但浏览器窗口大小肯定没法调的了.  发表于 2021-10-23 00:11
沒有nwjs打包...我的只有單純網頁 掛載 MV 遊戲... 所以這個程式碼沒作用耶...  发表于 2021-10-20 22:16
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部