Először is szükség van egy pályára, itt lesznek majd a mérkőzések. Ez egyelőre csak egy téglalap körülvéve egy fallal (StaticBody), hogy a labda és a játékosok ne tudjanak elkóborolni.
A játékosok egy alap "Player" objektumból származnak, így gyorsan lehet létrehozni játékosokat egyedi értékekkel (súly, sebesség, rúgás ereje/pontossága, stb.). A játékosokat billentyűzettel és egérrel lehet irányítani: az egérmutató adja meg az irányt, a billentyűzeten pedig irányíthatjuk hogy a mutató felé, vagy azzal ellentétes irányba mozogjon a játékos.
func get_input():
look_at(get_global_mouse_position())
velocity = Vector2()
if Input.is_action_pressed('ui_down'):
velocity = Vector2(-speed, 0).rotated(rotation)
if Input.is_action_pressed('ui_up'):
velocity = Vector2(speed, 0).rotated(rotation)
func _physics_process(delta):
if current:
get_input()
velocity = move_and_slide(velocity)
A játékosok közt a görgővel kattintva lehet váltani - az egérmutatóhoz legközelebb lévő játékos lesz aktív.
func _input(event):
if Input.is_action_just_released("mb_middle"):
select_new_player()
func select_new_player():
var player_ids = get_tree().get_nodes_in_group("player")
var nearest_player = player_ids[0]
for player_id in player_ids:
var mp = get_global_mouse_position()
if player_id.global_position.distance_to(mp) < nearest_player.global_position.distance_to(mp):
nearest_player = player_id
nearest_player.current = true
Egyelőre nem túl sok, de valahol el kell kezdeni. A következő részben már remélhetőleg labda is lesz. :D