- 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.
- The Complete Rust Programming Reference Guide
- Python快樂編程:人工智能深度學習基礎
- Microsoft Exchange Server PowerShell Cookbook(Third Edition)
- Building a Home Security System with Raspberry Pi
- vSphere High Performance Cookbook
- PowerCLI Cookbook
- MySQL 8 DBA基礎教程
- Python貝葉斯分析(第2版)
- 碼上行動:用ChatGPT學會Python編程
- Node.js全程實例
- Python算法詳解
- Webpack實戰:入門、進階與調優(第2版)
- Scala Functional Programming Patterns
- Android智能手機APP界面設計實戰教程
- 透視C#核心技術:系統架構及移動端開發