- Геймпад: раскладка под паркур и гонки, обзор правым стиком, навигация по меню (A/B/крестовина) - Меню паузы (Esc/Start): выход в хаб, настройки (мышь, стик, FOV, громкость, инверсия), справка по управлению - Хаб 48x32x10 м: колонны, окна с городом, голограмма, лавки; музыка «Local Forecast - Elevator» (Kevin MacLeod, CC-BY) - Тесты: pause_test, pad_menu_test, hub_tour; README обновлён Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
35 lines
1.7 KiB
GDScript
35 lines
1.7 KiB
GDScript
extends Node
|
|
# Облёт хаба для кадров: телепорт игрока по точкам, кадры пишет Godot (--write-movie).
|
|
# godot --path . --resolution 1152x648 --fixed-fps 10 --write-movie /tmp/shots/h.png --quit-after 45 res://tools/test/hub_tour.tscn -- --client --server-url=ws://127.0.0.1:1
|
|
# Меню паузы: добавьте `--menu=main|settings|controls` (тогда в кадре меню на хабе, остальной облёт отключён).
|
|
# Кадры: h00000005.png и т. д. (каждые 5 кадров — следующая точка из spots).
|
|
var level
|
|
var p
|
|
var frame := 0
|
|
# позиция центра капсулы, рыскание (0 = на север, к порталам), наклон головы (градусы)
|
|
var spots := [
|
|
[Vector3(0, 1.25, 12), 0, 4], [Vector3(-10, 1.25, -6), 90, 8], [Vector3(10, 1.25, 8), -90, 6],
|
|
[Vector3(0, 1.25, -9), 0, 12], [Vector3(0, 1.25, -5), 180, 10], [Vector3(14, 1.25, -9), 0, 8],
|
|
[Vector3(-20, 1.25, 2), -90, 0], [Vector3(0, 6.0, 13), 0, -18],
|
|
]
|
|
func _ready() -> void:
|
|
Net.nick_asked = true # без панели «Введите ник»
|
|
level = (load("res://maps/hub/hub.tscn") as PackedScene).instantiate()
|
|
add_child(level)
|
|
p = level.get_node("Player")
|
|
p.set_physics_process(false)
|
|
func _process(_d: float) -> void:
|
|
frame += 1
|
|
for a in OS.get_cmdline_user_args():
|
|
if a.begins_with("--menu="):
|
|
if frame == 3:
|
|
PauseMenu.open_menu()
|
|
PauseMenu._show_page(a.substr(7))
|
|
return
|
|
var i := int(frame / 5)
|
|
if i < spots.size() and frame % 5 == 1:
|
|
var s = spots[i]
|
|
p.global_position = s[0]
|
|
p.rotation.y = deg_to_rad(s[1])
|
|
p.head.rotation.x = deg_to_rad(s[2])
|