Articles of 相位器

如何在基于瓦片的游戏中实现顺畅的挖掘效果?

我正在试图做一个挖掘挖掘风格的游戏,你会挖一个材料。 这将是一个基于图块的HTML5游戏,我决定使用Phaser框架。 挖掘机制的一种方法是将游戏区域拆分为瓦片,并在玩家精灵发生碰撞时移除瓦片。 但是我想有一个顺利的挖掘animation/物理,所以看起来玩家角色“挖掘”出来的土壤挖掘。 任何提示,我应该如何做到这一点? 现在,我有15x15px的瓷砖,而玩家是45x45px,这种假的顺利挖我想要的。 有没有更好的办法?

自定义街机物理速率(如子弹时间)?

有没有一种方法可以修改物理应用的速率,无论是在全球范围内,还是在Phaser的每个精灵的基础上? 也就是说,我怎样才能减慢或加速精灵的移动速度,或者是由于重力而下降的速度呢? 一个用例就是“子弹时间”效应 – 通过减慢除了玩家角色以外的所有其他物理速率。 我明白,物理学的作用方式是基于game.time.elapsed值,每一帧都应用到精灵体。 一种方法是设置一个自定义乘数在这个过去的价值,所以运动发生得更慢或更快,但这可能吗? 或者,我可以自己应用所有的物理效果,但是我可以做到这一点,而不会丢失与物理系统其余部分的兼容性?

使用spritesheet框架作为粒子?

我想使用spritesheet的帧作为我的发射器的粒子。 我加载我的spritesheet: game.load.spritesheet('particles_sheet', 'http://img.ufgame.com/sprites/sprite_sheet.png', 50, 50, 6); var emitter = game.add.emitter(game.world.centerX, canvas_height, 80); 我需要一些代码随机加载正确的框架: emitter.makeParticles('particles_sheet'); 任何想法?

在Phaser中管理“状态”的最佳方法是什么?

我听说这不是管理移民状态的最好方法 var game = new Phaser.Game(800, 600, Phaser.CANVAS,'YourGameName'); game.state.add("Boot", Boot); game.state.add("Preload", Preload); game.state.add("MainMenu", mainMenu); game.state.add("Play", Play); game.state.add("GameOver", GameOver); game.state.start("Boot"); 那么最好的办法是什么? 我是Phaser游戏开发的新手。

拍摄一张照片,并将其剪切成一张瓷砖地图

所以我正试图在Phaser上做一个游戏。 我试图想出最好的方法来剪切这个图像 ,并将其制作成瓷砖地图,或者我尝试将整个图像作为游戏的底层,并确定鼠标点击的位置。 我相信图像的宽度为140,高度为160或162.然后,我将不得不使图像的四个角落透明,以便我可以覆盖它们来创建地图。 如果我想用可滚动的背景,我不知道如何进行,我会叠加到屏幕上的热点,我不得不做一个指向hex转换,因为我没有瓷砖坐标

在Phaser中旋转一组物体

我想制作一个游戏,让敌人产卵,飞向玩家的船只,并坚持到一边。 玩家可以旋转船只,卡住的敌人将随之旋转。 现在我有这个工作的方式,船和敌人都是一个群体和碰撞组的一部分, 当一个敌人与这艘船相撞时,它将离开它的旧群和碰撞群并join这艘船。 玩家随后可以旋转船队,包括卡住的敌人。 但从那里,事情变得怪异。 如果将船舶向左旋转90度,然后将敌人粘到其右边缘,则敌人消失并出现在船的顶部边缘。 试着将另一个敌人粘到右边的同一点上,然后它也会传送到圆圈的顶部,与那里的敌人相撞。 另外,被“卡住”的敌人不会与那些没有的敌人相撞。 如果我把所有东西都移动到一个碰撞组中,旋转船上的敌人就会在屏幕上reflection,而不是在物理上reflection。 你可以绕着你所喜欢的方向旋转这艘船,附着在它上面的敌人会围绕它旋转,但是没有被卡住的敌人就好像它们没有移动一样。 我怎样才能让一组物理团体像一个身体一样旋转,并与游戏世界中的其他物体发生碰撞? 代码在下面; 在这里尝试一下 。 var game = new Phaser.Game("100%", "100%", Phaser.AUTO, '', { preload: preload, create: create, update: update, render: render }); var debug = false; var ship, enemy, enemies, shipCollisionGroup, enemyCollisionGroup, spawnEnemy; function preload() { game.load.image('ship', 'simple-ship.svg'); game.load.image('enemy', 'square-enemy.svg'); } function create() { […]

为什么我不能在Phaser中更改背景颜色?

我的代码有什么问题? 我使用的是game.stage.backgroundColor,但屏幕仍然是黑色的。 main.js: var demo = demo || {}; demo.game = new Phaser.Game(window.innerWidth, window.innerHeight, Phaser.AUTO, ''); demo.game.state.add('state1', demo.state1); demo.game.state.add('state2', demo.state2); demo.game.state.start('state1'); state1.js: var demo = demo || {}; demo.state1 = function() {}; demo.state1.prototype = { preload: function() { }, create: function() { game.stage.backgroundColor = "#4488AA"; }, update: function() { } };

我如何获得一个函数的属性?

function randArray(arrayName) { arln = arrayName.length; arst = arrayName[Math.floor(Math.random() * arln)]; return arst; } create: function(){ //starts physics engine game.physics.startSystem(Phaser.Physics.ARCADE); player = game.add.sprite(width/2, height/2, 'player'); randSpawnItem = game.add.sprite(10, 10, randArray(randItem)); randSpawnItem2 = game.add.sprite(50, 50, randArray(randItem)); 所以randArray函数可以工作,创建没有任何问题。 我正在使用Phaser,而且我试着随机产生物品(有点像在Issac的Binding中)。我预见到未来的一个问题,当我检测到collison时,我需要知道产生的物品是什么对玩家正确的物品。 我如何得到randSpawnItem或randSpawnItem2第三个属性,还是有另一种方式去完成这个? 对不起,如果这是一个noobie的问题! 不知道怎么说,也没有find其他地方。 在此先感谢您的时间。

文字宽度phaser.js

phaser是否有任何函数返回文本的宽度,如果没有,我怎么可以在我画的矩形里面居中文本? 谢谢!

在移相器中将物理添加到组或容器主体

我正在开发一个HTML5 Phaser游戏。 在这个游戏中,我确实有一个团体,我想作为一个物理体(街机物理)行为。 这是一个在这个组里面有很多移动部分(sprites)的角色。 在这种情况下,这个团体就像一个精灵的容器。 不过,我只能将物理行为添加到精灵。 game.physics.arcade.enable(mySprite); // works good! 对一个团体做同样的事情是行不通的。 它只是添加物理学的孩子精灵 game.physics.arcade.enable(myroup) // does no works myGroup.body.(…) // body is undefined 我想为这个组创建一个“虚拟”的身体,为其设置尺寸(body.setSize),并在其中添加我所有的精灵。 这有可能以其他方式吗?