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

Starting a new game

Next, the new_game() function will initialize everything for a new game:

func new_game():
playing = true
level = 1
score = 0
time_left = playtime
$Player.start($PlayerStart.position)
$Player.show()
$GameTimer.start()
spawn_coins()

In addition to setting the variables to their starting values, this function calls the Player's start() function to ensure it moves to the proper starting location. The game timer is started, which will count down the remaining time in the game.

You also need a function that will create a number of coins based on the current level:

func spawn_coins():
for i in range(4 + level):
var c = Coin.instance()
$CoinContainer.add_child(c)
c.screensize = screensize
c.position = Vector2(rand_range(0, screensize.x),
rand_range(0, screensize.y))

In this function, you create a number of instances of the Coin object (in code this time, rather than by clicking the Instance a Scene button), and add it as a child of the CoinContainer. Whenever you instance a new node, it must be added to the tree using add_child(). Finally, you pick a random location for the coin to appear in. You'll call this function at the start of every level, generating more coins each time.

Eventually, you'll want new_game() to be called when the player clicks the start button. For now, to test if everything is working, add new_game() to the end of your _ready() function and click Play the Project (F5). When you are prompted to choose a main scene, choose Main.tscn. Now, whenever you play the project, the Main scene will be started.

At this point, you should see your player and five coins appear on the screen. When the player touches a coin, it disappears.

主站蜘蛛池模板: 嘉义县| 辽宁省| 阜城县| 白城市| 安仁县| 洪江市| 云霄县| 阿克陶县| 苏尼特左旗| 曲沃县| 伊通| 清新县| 湛江市| 余干县| 柳州市| 阿克苏市| 嘉峪关市| 久治县| 平乐县| 饶河县| 四子王旗| 石家庄市| 正蓝旗| 紫阳县| 师宗县| 抚顺县| 阜平县| 遂川县| 肥乡县| 道孚县| 漯河市| 泌阳县| 天门市| 乐清市| 肇东市| 鄄城县| 习水县| 泗洪县| 从江县| 集贤县| 农安县|