官术网_书友最值得收藏!

Retrofitting the Player class for flight

We need to perform a few quick setup tasks before we can react to player input. We will remove some of our older testing code and add a physics body to the Player class.

The Beekeeper

First, clean up the old bee physics tests from the last chapter. Open GameScene.swift, find didMove, and locate the bottom two lines; one sets a mass for bee2, and the other applies an impulse to bee2. Remove these two lines:

bee2.physicsBody?.mass = 0.2 
bee2.physicsBody?.applyImpulse(CGVector(dx: -25, dy: 0))

Updating the Player class

We need to give the Player class its own update function. We want to store player-related logic in Player and we need it to run before every frame:

  1. Open Player.swift and add the following function inside Player:
    func update() { } 
  2. In GameScene.swift, add this code at the bottom of the GameScene class:
    player.update() 
            }         override func update(_ currentTime: TimeInterval) { 
    
  3. Perfect. The GameScene class will call the Player class's update function on every update.

Moving the ground

We initially placed the ground higher than necessary to make sure it displayed for all screen sizes in the previous chapter. We can now move the ground into its lower, final position since the player will soon move up and down, bringing the ground into view.

In GameScene.swift, locate the line that sets the ground.position value and change the y value from 150 to 30:

ground.position = CGPoint(x: -self.size.width * 2, y: 30) 
主站蜘蛛池模板: 香格里拉县| 逊克县| 新密市| 北安市| 博兴县| 禹州市| 泾川县| 吴桥县| 赣榆县| 云霄县| 定陶县| 横峰县| 宜州市| 龙陵县| 龙陵县| 扶风县| 迁西县| 武威市| 织金县| 信阳市| 莎车县| 定西市| 花莲市| 巴青县| 贵溪市| 手游| 手游| 格尔木市| 沽源县| 板桥市| 黎平县| 通化县| 尉犁县| 泰州市| 商洛市| 灵武市| 敖汉旗| 舞钢市| 洛南县| 通榆县| 金乡县|