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

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.

主站蜘蛛池模板: 阿合奇县| 喜德县| 西吉县| 民勤县| 阳城县| 拉孜县| 伊川县| 平罗县| 嫩江县| 西乡县| 岳阳县| 醴陵市| 民乐县| 剑川县| 临泉县| 黎平县| 保亭| 社旗县| 儋州市| 德令哈市| 岳阳县| 泰和县| 博兴县| 班戈县| 刚察县| 巴林右旗| 彝良县| 尼木县| 西安市| 桃江县| 瑞昌市| 海阳市| 新昌县| 蒙城县| 太保市| 固原市| 于都县| 镇原县| 方城县| 镇赉县| 金平|