Labda nélkül nincsen meccs

G-Ball
sztrovacsek
2021-03-27 · 14:08
Bekerült a játékba a labda. Egyelőre eléggé leegyszerűsített formában, csak iránya és sebessége van, nem képes fizikai interakcióra a környezetével (nem lassul le soha, nem pattan le semmiről, stb). A bal egérgomb felengedésével lő a játékos, az egérmutató irányába. A lövés erőssége attól függ majd, hogy mennyi ideig volt lenyomva előtte a gomb (ez majd a következő részben lesz bemutatva). A target itt azt a játékost jelöli, amelyiknél a labda van, mivel a lövés után már nem lesz nála, ezért töröljük a hivatkozást (null).

func _input(event):
    if Input.is_action_just_released("mb_left"):
        shoot()

func shoot():
    target = null
    velocity = transform.x * speed


A gép automatikusan arra a játékosra vált, amelyikhez a legközelebb van a labda. Ez az előző részben bemutatott kódrészlet minimális módosításával érhető el (az egérmutató pozíciója helyett a labdáét vesszük alapul).

var bp = Global.Ball.global_position
if player_id.global_position.distance_to(bp) < Global.nearest_player.global_position.distance_to(bp):
    Global.nearest_player = player_id


A játékosaink egyelőre elég passzívak, csak egy helyben forgolódnak. A következő részben változtatunk ezen.