1

我不长时间使用英特尔 XDK。我正在制作游戏,我希望画布可以在任何手机的屏幕上拉伸。我试过这个

canvas.width = window.innerWidth; 
canvas.height = window.innerHeight;

在模拟器中,它很好。但在我的 Android (Nexus 7 G) 上只有页面背景。画布不见了!

4

2 回答 2

0

使用英特尔 XDK,具有<canvas id="game"></canvas>可选功能,您可以直接通过 访问画布对象intel.xdk.canvas

此外,画布始终是全屏的,您不需要自己拉伸它。

因此,您的问题可能与其他问题有关,您必须向我们展示您的代码示例,以便我们为您提供帮助。

于 2014-02-25T16:20:47.727 回答
0

尝试在触发 DeviceReady 后初始化画布,在触发 intel.xdk.device.ready 之前可能未初始化宽度和高度。

这是修改后的代码:

<!DOCTYPE html><!--HTML5 doctype-->
<html>
<head>
    <title>Your New Application</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" />
    <style type="text/css">
        /* Prevent copy paste for all elements except text fields */
        *  { -webkit-user-select:none; -webkit-tap-highlight-color:rgba(255, 255, 255, 0); margin:0; padding:0;  }
        input, textarea  { -webkit-user-select:text; }
        html, body { background-color:red; color:black; width:100%; height:100%;}
        canvas{background-color: #f00; position: relative; display:block;}
    </style>
    <script src='intelxdk.js'></script>
    <script type="text/javascript">
        /* This code is used to run as soon as Intel activates */
        var onDeviceReady=function(){
            initCanvas();
            //hide splash screen
            intel.xdk.device.hideSplashScreen();
        };
        document.addEventListener("intel.xdk.device.ready",onDeviceReady,false);

        function initCanvas(){
            var canvas = document.getElementById("game");
            var ctx = canvas.getContext("2d");
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;        
        }
    </script>
</head>
<body>
    <canvas id="game"></canvas>
</body>
</html>
于 2014-02-24T20:24:36.890 回答