您當前的位置:首頁 > 動漫

製作一個打飛機遊戲(2)

作者:由 kylaCpp 發表于 動漫時間:2019-04-28

現在光移動還不夠,還需要發射子彈。

在bullet場景的指令碼上修改

extends Area2D

var move_speed = 300

func _ready():

connect(“body_entered”,self,“_on_body_entered”)

set_process(true)

func _process(delta):

#delta 為一幀的時間

position。y-=move_speed*delta

func _on_body_entered(obj):

#碰到物體後自己釋放

if obj。name!=“player”:

queue_free()

然後player的指令碼修改

extends KinematicBody2D

var move_speed = 200

var bullet_time = 0。2

var time=0。2

var bullet = load(“res://scene/bullet。tscn”)

func _ready():

set_process(true)

func _process(delta):

var w = Input。is_action_pressed(“w”)

var a = Input。is_action_pressed(“a”)

var s = Input。is_action_pressed(“s”)

var d = Input。is_action_pressed(“d”)

var vec = Vector2()

#檢測按鍵

if w:vec。y=-move_speed

if s:vec。y=move_speed

if a:vec。x=-move_speed

if d:vec。x=move_speed

#移動

move_and_slide(vec, Vector2(0, -1))

if Input。is_action_pressed(“space”):

time+=delta

if time>bullet_time:

time=0

var tscn = bullet。instance()

tscn。position = position

$“。。/”。add_child(tscn)

else:

time=bullet_time

然後執行,

製作一個打飛機遊戲(2)

接下來是增加敵人,

首先在最大的根節點node2d建立一個指令碼,然後再增加一個time節點 設定1秒鐘 自動迴圈走,

製作一個打飛機遊戲(2)

給敵人一個始終往下移動的指令碼

enemy。gd

extends KinematicBody2D

var move_speed = 200

func _ready():

set_process(true)

pass

func _process(delta):

var pos = Vector2(0,move_speed)

move_and_slide(pos,Vector2(0,-1))

然後在修改node2d的指令碼

extends Node2D

var enemy = load(“res://scene/enemy。tscn”)

func _ready():

#每秒走_on_timeout

$time。connect(“timeout”,self,“_on_timeout”)

func _on_timeout():

#隨機數 64 - 536

var x = randi() % 536 + 64

var tscn = enemy。instance()

tscn。position=Vector2(x,0)

add_child(tscn)

執行看下效果:

製作一個打飛機遊戲(2)

本次資源

如果你對這個引擎或是我的教程感興趣的話可以加入我的qq群:691534145

雖然裡面有很多水貨,但這應該是國內最活躍的godot engine 並且討論遊戲的討論群了。

標簽: move  TIME  TSCN  Bullet  speed