Dzień dobry, cześć i czołem!
Porządki
Ostatnim czasem zaniedbałem projekty robione w Godocie, ze względu na brak czasu oraz przeprowadzkę do nowego miejsca, jednak właśnie to się skończyło.
Powróciłem do swojego pierwotnego projektu czyli gry osadzonej w świecie Cyberpunk RED (nie mylić z Cyberpunk 2077) gdzie wykorzystałem dotychczasową wiedzę, w zakresie Godota, i zacząłem robić w końcu porządki w samym kodzie, ale co się zmieniło?
Usergui, czyli widok postaci
Na początku klasa „Chum” była kolejnym stworzonym węzłem (node) w którym po kolei dodawałem kolejne komponenty jednak w pewym momencie stwierdziłem, że większość rzeczy związane z tym węzłem są niewykorzystane. Dlatego postanowiłem klasę gracza postanowiłem stworzyć jako typ Resource w którym znajdują zmienne oraz funkcje dotyczące postaci.
class_name Chum
extends Resource
@export_enum("Netrunner") var chum_class: int
@export var picture: Texture2D
@export var name: String
@export var skills: NetrunnerSkills
@export var statistics: Statistics
@export var player_button_state: Dictionary[String, Texture2D] = {
"normal": load("res://assets/netrunner_kiwi_ega_small.png"),
"pressed": load("res://assets/netrunner_kiwi_ega_small_border.png"),
}
func wylicz_pw() -> int:
var _pw: int
var _sum: int = (statistics.stats["BC"] + statistics.stats["SW"]) / 2
_pw = 10 + (5 * ceil(_sum))
return _pw
func wylicz_czl() -> int:
var _czl: int = statistics.stats["EMP"] * 10
return _czlTak, wszystko się sprowadza tak naprawdę do jednej klasy, netrunner, i jest to celowe działanie. W przyszłości będą dodane nowe klasy na razie jednak skupiam się na jednej. Wszystkie zmienne oprócz dwóch to są standardowe komponenty natomiast skills oraz statistics są to kolejne klasy typu Resource które stworzyłem na potrzeby gry.
Czy tak można? Wychodzi na to, że tak i najlepsze jest to, że na razie to co założyłem to działa. Dodatkowo na razie został pominięty etap kreowania postaci a jest tylko jeden szablon na potrzeby dalszej rozbudowy gry, na mniej ważne rzeczy przyjdzie czas gdy będzie bliżej do wydania jakiejkolwiek wersji oprócz dev.
Cały kod jest dostępny na codebergu, wcześniej była dostępna domena code.szklankaolowiu.pl jednak doszedłem do wniosku, że nie ma co utrzymywać projektu dla jednego repo, dlatego cały kod wylądował tam.
No i oczywiście efekt wszystkich zmian.
