在保持文本锁定的同时缩小相机 - Phaser 3
Zoom out camera while keeping text locked - Phaser 3
我正在制作一款剑术游戏,你必须收集金币才能变大,然后与人战斗。这是我到目前为止所拥有的:
注意玩家在收集金币时如何变大。过了一会儿,你变得很大,覆盖了整个屏幕。
我意识到我必须根据玩家的大小缩小相机。
这是我的相机(在创建函数中)
this.cameras.main.startFollow(this.mePlayer);
我在它之前添加了这行代码:
this.cameras.main.setZoom(0.5)
现在变成这样了。文字都变小了,出于某种原因,我的 tileSprite 背景也坏了。
这是文本的代码。
//killcounter
this.killCount = this.add.text(window.innerWidth / 1.5, 0, 'Kills: 0', {
fontFamily: 'Georgia, "Goudy Bookletter 1911", Times, serif'
}).setFontSize(40).setDepth(101);
this.killCount.scrollFactorX = 0
this.killCount.scrollFactorY = 0
//player+fpscounter
this.playerCount = this.add.text(this.cameras.main.worldView.x*this.cameras.main.zoom, this.cameras.main.worldView.y*this.cameras.main.zoom, 'Players: 0' + "\nFPS: 0", {
fontFamily: 'Georgia, "Goudy Bookletter 1911", Times, serif'
}).setFontSize(20).setDepth(101);
this.playerCount.scrollFactorX = 0
this.playerCount.scrollFactorY = 0
这是我相机的代码
this.cameras.main.startFollow(this.mePlayer);
...这是我的背景代码
//in create function
this.background = this.add.tileSprite(0, 0, window.innerWidth, window.innerHeight, 'background').setOrigin(0).setScrollFactor(0, 0);
this.background.fixedToCamera = true;
//in update function
this.background.setTilePosition(this.cameras.main.scrollX, this.cameras.main.scrollY);
有什么方法可以锁定文本,以便当相机缩小时,它保持在同一位置?
感谢samme帮我解决了这个问题
最后我创建了另一个名为 UICamera 的相机。
我使用 ignore
函数忽略了该相机上的所有游戏对象。
而且我忽略了主摄像头上的所有文字、小地图、ui和tilesprite背景。
然后,要缩小,我会缩小主相机并手动调整 tileSprite 比例。
我正在制作一款剑术游戏,你必须收集金币才能变大,然后与人战斗。这是我到目前为止所拥有的:
注意玩家在收集金币时如何变大。过了一会儿,你变得很大,覆盖了整个屏幕。
我意识到我必须根据玩家的大小缩小相机。
这是我的相机(在创建函数中)
this.cameras.main.startFollow(this.mePlayer);
我在它之前添加了这行代码:
this.cameras.main.setZoom(0.5)
现在变成这样了。文字都变小了,出于某种原因,我的 tileSprite 背景也坏了。
这是文本的代码。
//killcounter
this.killCount = this.add.text(window.innerWidth / 1.5, 0, 'Kills: 0', {
fontFamily: 'Georgia, "Goudy Bookletter 1911", Times, serif'
}).setFontSize(40).setDepth(101);
this.killCount.scrollFactorX = 0
this.killCount.scrollFactorY = 0
//player+fpscounter
this.playerCount = this.add.text(this.cameras.main.worldView.x*this.cameras.main.zoom, this.cameras.main.worldView.y*this.cameras.main.zoom, 'Players: 0' + "\nFPS: 0", {
fontFamily: 'Georgia, "Goudy Bookletter 1911", Times, serif'
}).setFontSize(20).setDepth(101);
this.playerCount.scrollFactorX = 0
this.playerCount.scrollFactorY = 0
这是我相机的代码
this.cameras.main.startFollow(this.mePlayer);
...这是我的背景代码
//in create function
this.background = this.add.tileSprite(0, 0, window.innerWidth, window.innerHeight, 'background').setOrigin(0).setScrollFactor(0, 0);
this.background.fixedToCamera = true;
//in update function
this.background.setTilePosition(this.cameras.main.scrollX, this.cameras.main.scrollY);
有什么方法可以锁定文本,以便当相机缩小时,它保持在同一位置?
感谢samme帮我解决了这个问题
最后我创建了另一个名为 UICamera 的相机。
我使用 ignore
函数忽略了该相机上的所有游戏对象。
而且我忽略了主摄像头上的所有文字、小地图、ui和tilesprite背景。
然后,要缩小,我会缩小主相机并手动调整 tileSprite 比例。