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

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.

主站蜘蛛池模板: 吴堡县| 阳信县| 榆社县| 和政县| 长汀县| 定日县| 丹东市| 天全县| 元朗区| 安徽省| 遂宁市| 上虞市| 祁阳县| 黄陵县| 绥滨县| 陆河县| 阿合奇县| 宁南县| 大厂| 黄浦区| 宜都市| 阳江市| 新昌县| 北京市| 邢台县| 徐水县| 泊头市| 大竹县| 柳江县| 泽州县| 乌鲁木齐市| 麻阳| 江安县| 中方县| 浮山县| 新兴县| 勃利县| 普格县| 沭阳县| 凤山市| 嘉鱼县|