【问题标题】:Resizing a tiledmap when using phaser使用移相器时调整平铺地图的大小
【发布时间】:2015-02-21 15:33:08
【问题描述】:

var cw = window.innerWidth;
        var ch = window.innerHeight;
        var game = new Phaser.Game(cw, ch, Phaser.AUTO, 'game', { preload: preload, create: create, update: update });

        function preload() {
            game.load.tilemap('Background', 'https://gist.githubusercontent.com/anonymous/c61b37df015a0b2af1d7/raw/172bf9c2d4c20c56699eacce263525409caaf743/54996634e4b0a35d00c9b516.json', null, Phaser.Tilemap.TILED_JSON);
            game.load.image('tiles', 'http://i.imgur.com/gmWQIFK.png');
            game.load.image('player', 'http://i.imgur.com/tCCrLyh.png');
        }

        var map;
        var layer;
        var player;
        var _keyboard;
        var playerJumping;
        function create() {
            player = game.add.sprite(0, ch - 32, 'player');
            game.world.setBounds(0, 0, cw, ch);
            game.physics.startSystem(Phaser.Physics.ARCADE);
            game.physics.arcade.gravity.y = 300;
            game.physics.enable(player, Phaser.Physics.ARCADE);
            player.body.collideWorldBounds = true;
            game.stage.backgroundColor = '#787878';
            map = game.add.tilemap('Background');
            map.addTilesetImage('smb_tiles', 'tiles');
            layer = map.createLayer('Tile Layer 1');
            layer.resizeWorld();

            _keyboard = game.input.keyboard.createCursorKeys();
            game.camera.follow(player);
        }
        function update()
        {
            player.body.x += 2;
            if (_keyboard.up.isDown && player.body.onFloor()) {
                playerJumping = true;
                player.body.velocity.y = -2;

            }
            else {
                playerJumping = false;
            }
        }
<script src="http://yourjavascript.com/222115941388/phaser-min.js"></script>
<div id="game"></div>

您可以看到平铺地图从 320px bcs 的高度开始,最初地图具有这个高度,如果我将游戏高度更改为 320px 一切正常,但我的问题是我是否想要制作tiledMap 响应屏幕的 innerHeight 和 width 我该怎么做才能使平铺地图从屏幕底部开始,而不是在320px

您可以看到平铺地图层是如何从屏幕中间开始的。有没有可能我可以做些什么让它从屏幕底部开始

【问题讨论】:

    标签: javascript jquery phaser-framework


    【解决方案1】:

    当您想创建游戏时,请使用百分比值而不是固定值,如下所示:

    var game = new Phaser.Game("100%", "100%", Phaser.AUTO, '');
    

    您也可以使用 scaleManager 告诉游戏调整渲染器的大小以匹配游戏尺寸(即 100% 浏览器宽度/高度):

    game.scale.scaleMode = Phaser.ScaleManager.RESIZE;
    

    您还可以查看scaleManager documentation 了解更多设置。 还有一本来自社区的关于 scaleManager 的书,如果您想了解更多信息,可以帮助您进行响应式游戏设计here

    【讨论】:

    • 虽然你不能给Phaser.Game一个字符串值但是Phaser.ScaleManager.RESIZE;做了这个工作谢谢你
    猜你喜欢
    • 2016-12-05
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2010-12-21
    • 2015-11-08
    • 2015-06-14
    相关资源
    最近更新 更多