- Cocos2d-x Game Development Blueprints
- Karan Sequeira
- 314字
- 2021-07-16 13:47:57
Setting things into motion
We'll need to move the castle and the silhouettes to create an illusion of the dragon flying. We do this by updating their position after every tick, as shown here:
FairytaleManager.prototype.update = function() { this.updateCastle(); this.updateSilhouette(); };
The update
function will be called from the parent layer (MainMenu
or GameWorld
) on every tick. It is here that you will have to move your castle and the backdrop. The updateCastle
and updateSilhouette
functions are identical, so I will discuss the updateCastle
function only:
FairytaleManager.prototype.updateCastle = function(){ for(var i = 0; i < this.castleSprites.length; ++i) { // first update the position based on the scroll speed var castleSprite = this.castleSprites[i]; castleSprite.setPosition(castleSprite.getPositionX() - MAX_SCROLLING_SPEED, castleSprite.getPositionY()); // check if the sprite has gone completely out of the left edge of the screen if(castleSprite.getPositionX() < (this.castleSpriteSize.width * -0.5)) { // reposition it after the last wall sprite var positionX = this.castleSprites[this.lastCastleIndex].getPositionX() + this.castleSpriteSize.width - MAX_SCROLLING_SPEED; castleSprite.setPosition(positionX, castleSprite.getPositionY()); // this sprite now becomes the new last wall this.lastCastleIndex = i; } } };
We loop through each sprite of the castle and shift them left by MAX_SCROLLING_SPEED
pixels. Subsequently, we need to check if a castle sprite has gone completely out of the left edge of the screen. If it has, we need to reposition it at the right end of the screen, next to the sprite that is currently at the end. We already have a variable named lastCastleIndex
that tells us that. After placing this sprite at the end, we also need to update the lastCastleIndex
variable. It is worth noting that the updateSilhouette
function scrolls the silhouette sprites at half the value of MAX_SCROLLING_SPEED
. This is how we will create a perception of depth or parallax.
We achieved the illusion of an infinitely long castle. Okay, you can go ahead and tell the dragon about it now. It's time to start playing the game anyway.
- 少兒人工智能趣味入門:Scratch 3.0動畫與游戲編程
- Python程序設計教程(第2版)
- Java 開發從入門到精通(第2版)
- 圖解Java數據結構與算法(微課視頻版)
- Practical Windows Forensics
- FLL+WRO樂高機器人競賽教程:機械、巡線與PID
- Oracle從入門到精通(第5版)
- 劍指Java:核心原理與應用實踐
- Visual Basic程序設計教程
- Learning Apache Cassandra
- Python機器學習:預測分析核心算法
- 深入理解C指針
- JavaScript從入門到精通(視頻實戰版)
- Unity 2017 Game AI Programming(Third Edition)
- 計算機輔助設計與繪圖技術(AutoCAD 2014教程)(第三版)