GODOT遊戲編程006---- Your First Game

這一章題目挺讓人激動啊。我的編程語言基本不會,這可怎麼辦,不知道有沒有影響。
作爲新手,設計一個遊戲的話,先要有遊戲的思路吧,至於編程這樣的活,哎,不知道好不好乾。我認爲把常用的功能先能寫出來,其他的慢慢查手冊就可以。
我想設計什麼樣的遊戲呢?
雷電、泡泡龍、俄羅斯方塊、打地鼠,仙劍類升級的,暗黑類即時的。
跑遠了,先來看教程。
地址:http://docs.godotengine.org/en/3.0/getting_started/step_by_step/your_first_game.html
位置:Docs » Step by step » Your First Game

總覽:這個教程會指導你製作第一個Godot遊戲,你會學到GODOT編輯器怎麼工作,怎麼構建一個項目,怎麼製作2d遊戲。
提示:需要有編程經驗。如果你是萌萌心,先看這裏http://docs.godotengine.org/en/3.0/getting_started/step_by_step/scripting.html#doc-scripting
這個遊戲叫“躲開小爬爬”,你的角色要移動躲避敵人,和雷電躲子彈類似。這裏寫圖片描述
開始。
下載資源包http://docs.godotengine.org/en/3.0/_downloads/dodge_assets.zip,並解壓。
打開Godot,創建新項目,把剛剛解壓的文件移動到項目所在文件夾。
這個遊戲需要豎屏,所有先來設置畫面尺寸。寬480,高720
這裏寫圖片描述
在這個項目中,我們要製作3個獨立的場景:Player, Mob, HUD
我們首先來製作Player場景,製作獨立的場景的好處是方便測試。
新建一個節點,選擇Area2d,雙擊名字改成Player
這裏寫圖片描述
這裏寫圖片描述
選中player,添加一個新節點: AnimatedSprite
這裏寫圖片描述
這個就是我們要移動的小人,
這裏寫圖片描述
在Frames這裏,點擊null,選擇新建,再次點擊這個位置,進入設置,
這裏寫圖片描述
把重命名up,再添加一個重命名爲right,把下載的資源裏的2張圖片分別添加進來。
這裏寫圖片描述
再次點擊上方場景節點處的AnimatedSprite,把小人的大小改一改,scale改成0.5×0.5
這裏寫圖片描述
這樣一個player的圖片就做好了,但是這只是個圖片,怎麼判斷人物被擊中了呢,需要在人物周圍有一個框,碰到這個框就算擊中,這個框就是我們下面要添加的另一個節點。
選中player,添加節點,CollisionShape2D,選中新添的節點,下方,shape選擇New CapsuleShape2D
這裏寫圖片描述
把這個節點的框調整到和小人一樣大。
這裏寫圖片描述
接下來寫控制小人的腳本。
選中player,添加腳本。

extends Area2D



func _ready():
     screensize = get_viewport_rect().size



export (int) var speed  # 移動速度,添加後,在右邊可以看到多了一個speed變量
var screensize  # Size of the game window.

func _process(delta):
    var velocity = Vector2() # The player's movement vector.
    if Input.is_action_pressed("ui_right"):
        velocity.x += 1
    if Input.is_action_pressed("ui_left"):
        velocity.x -= 1
    if Input.is_action_pressed("ui_down"):
        velocity.y += 1
    if Input.is_action_pressed("ui_up"):
        velocity.y -= 1
    if velocity.length() > 0:
        velocity = velocity.normalized() * speed
        $AnimatedSprite.play()
    else:
        $AnimatedSprite.stop()
    #下面這段很有意思,如果沒有的話,你會發現小人沒有移動,其實動了。想象你再廣闊的宇宙中,宇宙中除了你什麼都沒有。你向上下左右移動,其實還相當於......在原地。
    position += velocity * delta
    position.x = clamp(position.x, 0, screensize.x)
    position.y = clamp(position.y, 0, screensize.y)

多了個速度

運行看看。(新手就是新手啊,出現了好多問題,哎,總算一一解決了。555555)現在還有個問題,小人的眼睛不會動。

累了,待續。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章