Dev update: tych tur dalej nie udało mi sie do końca naprawić, ale to się zdarza na tyle rzadko i załadowanie z sejwa to naprawia, że nie wiem czy jest sens nad tym siedzieć nie wiadomo ile. Niestety jest drugi błąd, który może zbyt ułatwić grę - statusy typu buffy/debuffy po walce zmieniają staty na stałe i Seba kończy z 65 ZdL bo miał nastackowaną sprawiedliwość a Halyna po najebaniu, które odejmuje od celności ma nagle 255 celności bo zeszło poniżej zera w zmiennej bez znaku. Pozmieniałem jak działają buffy, ale teraz chyba wgl się nie nakładają sądząc po tym, że nie zatrzymuje się w debugu na breakpointach, które ustawiłem, kiedy dodaję wartość efektu do stata postaci
#cpp
Dev update: tych tur dalej nie udało mi sie do końca naprawić, ale to się zdarza na tyle rzadko i załadowanie z sejwa to naprawia, że nie wiem czy jest sens nad tym siedzieć nie wiadomo ile. Niestety jest drugi błąd, który może zbyt ułatwić grę - statusy typu buffy/debuffy po walce zmieniają staty na stałe i Seba kończy z 65 ZdL bo miał nastackowaną sprawiedliwość a Halyna po najebaniu, które odejmuje od celności ma nagle 255 celności bo zeszło poniżej zera w zmiennej bez znaku. Pozmieniałem jak działają buffy, ale teraz chyba wgl się nie nakładają sądząc po tym, że nie zatrzymuje się w debugu na breakpointach, które ustawiłem, kiedy dodaję wartość efektu do stata postaci
naprawiłem
Zaloguj się aby komentować
Dev update: jednak rozwiązanie od copilota nie zadziałało, tamte walki bez problemów to był fuks (albo jego brak, zaważywszy, że trochę zakłamały sytuację) So we're back to square 1.
@MrGerwant No niestety nie ogarniam c++ żeby ci pomóc ale z doświadczenia wiem, że pewnie masz gdzieś po drodze jakiś mały błąd logiczny i w takich sytuacjach zazwyczaj robię jedną z tych rzeczy:
1 - Siedzę i linijka po linijce z debuggerem sprawdzam po kolei jak się wykonuje kod obserwując wszystkie zmienne itp. To może zająć bardzo długo i możesz nigdy nie znaleźć tego błędu.
2 - Przepisać logikę tur od nowa i c⁎⁎j bo szkoda tracić czasu na debugowanie kodu w nieskończoność. Spróbuj napisać to teraz w trochę inny sposób i zaimplementuj jakieś mechanizmy bezpieczeństwa które będą się upewniać że dobra postać ma teraz turę.
Zaloguj się aby komentować
@MrGerwant copilot jest do d⁎⁎y
A robisz od razu testy, żeby się upewnić, że jest pusta?
@MrGerwant polecam jeszcze spróbować wkleić kod problematycznej funkcji i spytać gdzie może być błąd. W szukaniu błędu jeśli wiesz że istnieje ai jest niezłe
Zaloguj się aby komentować
Dobra, wyrzuciłem wszystkie binarki, assety itd do gitignora i wrzuciłem kod do repo https://github.com/WKogut98/WirSprawiedliwosci
Ugułem problem wygląda tak, że czasem odpala się tura dla dwóch sojuszników naraz - np. Halyna leczy janusza i jednocześnie Śwagier go bije bo ma atak na tym samym miejscu co ona leczenie albo dwie postacie używają tego samego itemka naraz. Druga rzecz to, że czasem pojawia się sojusznik, który był poprzednio usunięty z druzyny, np. gdy zamieniliśmy ich z menu - tzn. sprajt zostaje tam gdzie był ale widzimy jego portret, imię i skille i jak wybierzemy jakąś umiejetność to wykona ją inna postać (nwm czy dobrze tłumaczę).
Walka u mnie działa tak, że jest aktor FightEncounter, który albo spawnuje przeciwnika, który nas goni i słucha eventu gdy znajdziemy się w jego kuli kolizji, żeby odpalic walkę, albo dziedziczączy z tej klasy AutoStartFightEncounter ma wskaźnik do triggera cutscenki i reaguje na event przy zakończeniu jej oddtwarzania, żeby zacząć walkę i zespawnować przeciwników - naszą drużynę bierze z aktora DefaultGameMode a przeciwników randomowo spawnuje z klas podanych w edytorze i wsadza do drugiej tablicy.
Jak startuje walka to encounter tworzy obiekt Fight, który zarządza wszystkim co sie dzieje podczas walki, on sobie tworzy na początku trzecia tablicę, sortuje ją po narwaności no i wtedy sobie wyciąga postać z 0 elementu (miałem to wcześniej jako queue, ale próbując naprawić tego buga to wywaliłem). Tę tablicę budujemy tylko na początku i jak któraś postać zginie. Fight słucha sobie eventów jak wciśniemy przyciski skilli, wtedy uruchamia timer, żeby odpalić animację sprajta postaci, jak się timer skończy to kończę turę. Jeśli to tura przeciwnika to jest mnóstwo pogmatwanego kodu, żeby wybrac skilla, którego ma uzyć - tu dałem kolejny timer, bo wrogowie potrafili się zawiesić nie potrafiąc wybrać skilla.
No i ogólnie to jak odpalamy za pierwszym razem albo wczytujemy z sejwa to wszytko działa raczej ok, problem się pojawia kiedy albo gracz podmienił postać albo po tym jak nowa postać dołącza do drużyny, więc podejrzewam, że tablica jakoś magicznie zamienia ten element w tablicy na wskażnik na starego sojusznika - to co widziałem w debugu to potwierdza, ale to tłumaczy chyba tylko ten drugi problem a nie "podwójne tury". A i czasem gra wywala okienko game over jak zginie jedna postać (chyba też ta podmieniona, ale nie jestem pewien) a nie cała drużyna xd.
game mode mam w folderze GameMechanics a Fight i FightEncounter są w GameMechanics/Combat.
Jak ktos chce poszukać błędów w moim paskudnym kodzie to zapraszam
@MrGerwant próbowałeś tam wcisnąć copilota do IDE? Podobno jest nieźle zintegrowany i czasami znajduje błędy w kodzie jeśli się z nim pogada.
Zaloguj się aby komentować

Cóż, dziewczyny które faktycznie ćwiczą są atrakcyjniejsze od tych co przychodzą sobie pochodzić po selfiki ( ͡° ͜ʖ ͡°)
@Czokowoko aż mi się przypomniał ten dinozaur :)

@Czokowoko Hah true. Generalnie nie jestem into niskopoziomowe języki jak Rust czy C++ i robię głównie w JS. Rok temu bawiłem się Rustem i w sumie nawet nie wiedziałem jak wygodne i dobre jest Cargo bo przychodząc ze świata JS założyłem że w innych językach jest podobnie jak z NPM, instalowaniem paczek itp. No i ostatnio mi się nudziło i klepałem sobie parę projekcików na GitHuba no i jeden z nich wymagał ręcznego skompilowania programu w C++ żeby potem móc zembedować ten program do mojej binarki. No ile się z tym namęczyłem żeby mi to workflow na GitHubie robił automatycznie to ja nie mogę. Nie jestem wystarczająco kompetentny w temacie aby porównywać oba te języki, ale na pewno Rust ma sporą przewagę w postaci ekosystemu cargo i wygody jaką daje.
Zaloguj się aby komentować
Tak jak gość (Żyd) mówi. Na 100% ktoś kto podjął taką decyzję nie jest Żydem, tylko albo snowflake'iem, który oburza się za wszystko i wszystkich dla zasady, albo już od dawna miał dosyć tego gościa i na siłę szukał byle jakiego pretekstu.
Tak jak tutaj co gość ubrany w sombrero bawił Meksykanów, a oburzał amerykańskich studentów.
@grappas Ok, wrzucę parę info, bo jest trochę dezinformacji wynikającej z nieznajomości tematu.
Też mnie to zszokowało, ale z jednej strony nie jest tak źle, a z drugiej wcale nie jest dobrze.
Więc po pierwsze, to nie zbanowano go w komitecie standaryzacyjnym, tylko został usunięty z Standard C++ Foundation, to jakaś fundacja, która funduje różnym ludziom wypady na spotkania komitetu (z której Andrew ponoć nie pobierał pensji). I to ta fundacja postanowiła go usunąć ze swoich szeregów. Na spotkania komitetu nie idzie się z marszu, reprezentuje się jakąś instytucję/firmę/formę prawną. I Andrew, dla wygody, był po prostu reprezentantem w/w fundacji. To oznacza, że jego formalne zaproszenia jako reprezentatna w/w fundacji zostają anulowane, ale to nie oznacza że nie może po prostu zacząć reprezentować kogoś innego (jeśli masz kogoś w komitecie to jest to formalność w zasadzie, jeśli nie masz, to formalność + trochę kasy żeby się "sformalizować" - w Polsce to po prostu oznacza założenie JDG i wysłanie paru listów do PKNu np).
Tutaj jego oświadczenie: http://tomazos.com/ub_question_incident.pdf
przyszły pedały
i się zesrały
dobrego inżyniera
z komitetu wyjebały
ch⁎⁎⁎we programy będą pisane
a ja mam na to już wyjebane
Zaloguj się aby komentować
Zaloguj się aby komentować
Używam C++ i problem występuje przy linkowaniu - nie ważne czy używam lld, gold czy mold, zawsze jest to samo.
Da się coś na to zaradzić? Np. jest jakiś krok przed linkowaniem, który usuwa pliki źródłowe i zostawia tylko to co potrzebne do linkowania?
To jest krok z budowaniem aplikacji z address sanitizerem, więc nie mogę wyciąć żadnej opcji, która zmniejszyłaby rozmiar binarki.
#programowanie
#cpp
@krokietowy ustaw sobie ramdysk jako target do kompilacji, tam przechowywanie objfile zlinkują sięjak trzeba a po tym procesie zyskasz binarkę na fizycznym storage'u
A nie dałoby rady budować bibliotek (.a) z poszczególnych komponentów i na koniec z linkować je do końcowej binarki?
@krokietowy Z czystej ciekawości, co to za projekt. Bo to musi być niezła kobyła, w co nie za bardzo chcę mi się wierzyć.
Zaloguj się aby komentować

Rzuciłem prace w korpo i założyłem firmę zajmującą się embedded
samochody #motoryzacja #programowanie #it #cpp #elektronika
Załóżmy, że jest sobie jakieś tam API udostępniające różne funkcje. API nie jest obiektowe i stanowi po prostu jedną płaską listę funkcji, które można wywołać z różnymi parametrami. Obowiązkowym parametrem każdej funkcji jest identyfikator klienta (pluginu), który funkcję wywołuje.
Chciałem sobie to API jakoś opakować i porobić na jego podstawie jakieś proste obiekty, którymi potem będzie można manipulować, ale nie wiem jak to rozwiązać architektonicznie, głównie przez ten obowiązkowy identyfikator, który trzeba zawsze przekazywać. Każdy jeden obiekt musiałby znać ten identyfikator, więc musiałby być on globalny. Z drugiej strony nie może być za bardzo globalny (np. jako obiekt statyczny), ponieważ teoretycznie w tej samej przestrzeni pamięci będą przebywać różne pluginy z różnymi identyfikatorami. Z kolei przekazywanie identyfikatora jawnie do obiektów za każdym razem trochę mija się z celem, gdyż właśnie tego chcę uniknąć.
Może zetknęliście się kiedyś z takim problemem, albo istnieje jakiś wzorzec na coś takiego?
#programista15k #programowanie #csharp#dotnet #cpp (dla zasięgu)
@MostlyRenegade No to niech sobie każdy obiekt trzyma ten API key - wtedy nie będziesz go musiał za każdym razem do obiektu przekazywać. Różne pluginy w tej samej przestrzeni bdą, oczywiście, musiały korzystać z innych instancji danej klasy.
@sierzant_armii_12_malp Właśnie wymyśliłem, że przecież i tak te obiekty muszę najpierw pobrać funkcją API, a potem wszelkie zmiany zatwierdzić innymi funkcjami, więc już na etapie ich pobierania mogę im przypisać klucz. A gdybym tworzył nowy obiekt, to nic nie stoi na przeszkodzie, aby pobrana kolekcja (w sensie obiekt) również trzymała klucz i przekazywała go obiektom w miarę potrzeby.
Czasem wystarczy napisać posta na hejto i rozwiązanie samo przychodzi ( ͡° ͜ʖ ͡°)
@MostlyRenegade o widzisz, a ja się zastanawiałem dla kogo pisze @elszczepano a pisze dla Ciebie - polecam jego bloga@MostlyRenegade
w większości przypadków wystarczy użyć konstruktora obiektu z parametrem: https://www.frontstack.pl/blog/constructor-design-pattern
dla bardziej specyficznych zastosowań możesz chcieć użyć: https://devszczepaniak.pl/wzorzec-projektowy-builder/ lub https://devszczepaniak.pl/wzorzec-projektowy-factory-fabryka/
@wombatDaiquiri - zaoszczędziłeś mi wymądrzania się
jeśli Cię dobrze rozumiem to możesz to ogarnąć przez clousures albo klasę z konstruktorem zależy czy funkcyjnie czy obiektowo.
edit - wombat dał bardziej kompleksową odpowiedź.
Zaloguj się aby komentować
Jest sobie aplikacja, do której można pisać pluginy. Wtyczki mają postać bibliotek dll, które muszą eksportować odpowiednie funkcje i muszą znajdować się w odpowiednim folderze w ścieżce aplikacji np. "c:\Aplikacja\plugins\"). Interfejs i API jest natywne, ale mam narzędzie napisane w C#, które chciałem podpiąć. Jedna opcja to użycie jakiegoś starego pakietu z NuGeta (DllExport), które dokleja tablicę eksportów do dotnetowego zestawu, ale pomyślałem, że zrobię po prostu pomost w C++/CLI, z którego będą wywoływał obiekty napisane w C#.
Problem polega na tym, że nie mam pomysłu jak poprawnie skonfigurować ścieżki w projekcie, żeby wszystkie DLLki ładowały się od razu przy starcie wtyczki, bez konieczności ręcznego ładowania zestawów dotnetowych i pokazywania ścieżek. Obecnie zestawy dotnetowe muszą być obok aplikacji wywołującej (w "c:\Aplikacja\"), a chciałbym, aby były folderze z pluginami, albo jeszcze lepiej - w dedykowanym folderze wewnątrz katalogu z pluginami (c:\Aplikacja\plugins\MojaWtyczka\). Oczywiście dobrze by było, żeby wszystkie dll-ki budowały się od razu do docelowych folderów przy debugowaniu.
A może jednak trzeba napisać własny resolver, żeby pokazać, gdzie dotnet ma szukać dll-ek?
#programista15k #programowanie #cpp #csharp #dotnet
@MostlyRenegade https://stackoverflow.com/a/398911
@fadeimageone no właśnie nad czymś takim pracuję: natywna aplikacja zewnętrzna + wrapper C++/CLI i reszta w C#. Chodzi mi natomiast o konkretny problem ze ścieżkami do wszystkich potrzebnych dll-ek. Nie mogą się znajdować gdziekolwiek, gdyż wtedy to nie działa.
I jak teraz na to patrzę, to chyba najefektywniej będzie po prostu napisać własny resolver, w którym będzie wskazana ścieżka do ich wyszukiwania.
Komentarz usunięty
Napisałem kiedyś kalkulator w c++ - w czym mogę pomóc?
Zaloguj się aby komentować
Dzisiaj ruszyły zapisy na Potyczki Algorytmiczne 2024, ogólnopolski, otwarty konkurs programistyczny.
-
strona główna: https://potyczki.mimuw.edu.pl/
-
wejście do systemu: https://sio2.mimuw.edu.pl/c/pa-2024-1/dashboard/
Harmonogram
Rejestracja rozpoczyna się 1 marca 2024 o godz. 12:00.
Runda próbna startuje 5 marca 2024 o godz. 12:00 i kończy się 7 marca 2024 o godz. 23:59.
Rundy zdalne wystartują 11 marca 2024 o godz. 12:00, a zakończą się 17 marca 2024 o godz. 23:59.
Ogłoszenie ostatecznych wyników rund zdalnych nastąpi 19 marca 2024 o godz. 20:00.
Finał odbędzie się w dniach 24-25 maja 2024 w Zielonej Górze.
Warto spróbować, nawet jeśli ktoś tylko trochę umie programować. Zadania i rozwiązania z poprzedniej edycji.
Każdego, kto jest pasjonatem algorytmiki i programowania gorąco zapraszamy do wzięcia udziału w XIX edycji konkursu „Potyczki Algorytmiczne”. Potyczki Algorytmiczne są najstarszym internetowym konkursem algorytmiczno-programistycznym w Polsce, adresowanym do wszystkich – uczniów, studentów, zawodowców i amatorów, bez jakichkolwiek ograniczeń wiekowych. W tej edycji, oprócz rozwiązań w C++, dopuszczamy także rozwiązania w Pythonie.
Rejestracja on-line do konkursu rusza już 1 marca 2024 r.
Potyczki Algorytmiczne w roku 2024 składać się będą z dwóch etapów:
● zdalnego – odbywającego się w dniach od 11 marca do 17 marca 2024 roku;
● wielkiego finału – rozgrywanego w dniach 24 – 25 maja w gościnnych progach współorganizatora konkursu, zielonogórskiej firmy Digital Technology Poland. DTP Ltd. Do finału zostanie zakwalifikowanych 20 zawodników.
Dla najlepszych zawodników czekają nagrody rzeczowe. Dodatkowo 128 uczestników otrzyma kultowe koszulki Potyczek Algorytmicznych 2024 oraz upominki-niespodzianki.
#cpp #python #algorytmy
Jak ktoś ma konto na wykopie, to może tam też opublikować.
O kurczę zajrzę. Dzięki!
Zaloguj się aby komentować
Konstruktor zmiennej globalnej nie jest wywoływany.
Po długich godzinach szukania co tu się w ogóle dzieje okazało się, że problem występuje tylko w niektórych plikach w projekcie i tylko w Visual Studio.
Rozwiązanie:
Problem pojawia się jeśli w statycznej libce (dołączanej później do exeka) masz zmienne globalne. Visual Studio domyślnie podczas linkowania nie bierze wszystkich rzeczy z libki - konieczne jest dodanie argumentu linkera /WHOLEARCHIVE (wielkość liter zdaje się mieć znaczenie, co na windowsie nie jest zbyt częste).
W przypadku CMake trzeba dodać:
set_property(TARGET projekt_robiący_binarkę APPEND PROPERTY LINK_OPTIONS /WHOLEARCHIVE:libka_ze_zmiennymi_globalnymi)
Uwielbiam Microsoft. Gdyby nie to, że linkowanie używając GCC zajmuje u mnie ~2 minuty to bym dalej siedział na Eclipse.
#cpp #programowanie #visualstudio
Nie znam cpp, ale „konstruktor zmiennej” brzmi co najmniej dziwnie
@def bo ten język jest w ogóle dziwny
Ale nawet google nie nie wie o konstruktorach zmiennych, chyba, ze autor dokonal tutaj jakiegos skrotu myslowego
Korzystasz z linkera mold? Jest czsami kilka razy szybszy niż ldd czy gnu gold
@krokietowy Myślałem o wypróbowaniu innych linkerów, ale biorąc pod uwagę, że GDB czasem mi się wysypuje (czy debuggery debuguje się debuggerami?), to już wolę siedzieć na Visualu. Generalnie działa on całkiem sprawnie, ale widać, że robił go Microsoft - podpowiadanie składni zawsze na pierwszym miejscu daje najgorszą możliwą opcję, dokładnie tak, jak Excel.
@shiranai Szczerze, jeśli polegasz na takich zależnościach, to na Twoim miejscu zastanowiłbym się, czy to co robisz ma sens.
@groman43 Uwierz mi, że przez chwilę nawet się nad tym zastanawiałem.
Używam w swojej grze Lua. Lua pozwala zdefiniować własne funkcje w C i używać ich z poziomu skryptu. Wcześniej każdą zdefiniowaną funkcję musiałem ręcznie dodawać do Lua. Stwierdziłem, ze to za dużo roboty i chcę się pobawić w automatyczne ich dodawanie. Odgapiłem sposób stosowany do testów w Catch2: https://github.com/catchorg/Catch2/blob/v2.x/include/internal/catch_test_registry.h#L106 . Dopiero po fakcie przypomniałem sobie, że z nim też były problemy jeśli testy definiowałem w osobnej libce.
Zaloguj się aby komentować
Top down shooter Hypersomnia już na Steam! Pisany przez znajomego, 10 lat w C++ bez silnika, z edytorem map i pikselową grafiką. Gra jest darmowa i open-source, więc jak tylko najdzie ochota na partyjkę jak za czasów 1.6 to jest do pobrania na Steam waży ledwie 40 MB!
Jeśli się podoba to dajcie review na Steam dla zasięgów a jeśli się nie podoba to lepiej nie, hehe
#programowanie #cpp #opensource #gamedev #hypersomnia
Zaloguj się aby komentować
https://store.steampowered.com/app/2660970/Hypersomnia/
Strona internetowa: https://hypersomnia.xyz/
Kod źródłowy: https://github.com/TeamHypersomnia/Hypersomnia
Społeczność: https://discord.com/invite/YC49E4G
Materiały dla prasy: https://github.com/TeamHypersomnia/PressKit/blob/main/README.md#intro
#programowanie #cpp #opensource #gamedev #hypersomnia
Zaloguj się aby komentować
Znajomy wypuszcza gierke na Steama, niedługo będzie dostępna.. Wrzucam trailer do obejrzenia.
FUN FACT: Pisze to w VIM-ie
#programowanie #cpp #opensource #gamedev #hypersomnia
https://www.youtube.com/watch?v=L4zSA34fD_E
@Bigos mi też tak się kojarzy @wombatDaiquiri tak, zapraszam na https://discord.gg/YC49E4G
@Hajt
Written in modern C++, without a game engine!
Ke wat?
@koszotorobur pewno chodzi o to, że własny silnik klepnął. W celach edukacyjnych spoko, ale ta gra pewno by na unity ładnie chodziła. Chociaż chyba unity już nie jest fajne, bo kombinują z wydzieraniem kasy od devów. I sumie nie wiem jaka jest alternatywa
@Pjorun - gra jest Open Source - wszystko ładnie gość wyjaśnił w repo: https://github.com/TeamHypersomnia/Hypersomnia - nie znałem tej gry i jestem pod wrażeniem jego pracy!
Ja już właściwie tylko używam https://godotengine.org/ - w pełni darmowy silnik Open Source - właśnie wyszła wersja 4.2 z wieloma usprawnieniami i nie trzeba płacić haraczu jak za Unity.
Uczę dzieciaki robienia gier na https://gdevelop.io/ skonfigurowanym pod robienie lokalnych buildów na Androida tak, że nie trzeba używać dodatkowych usług chmurowych, które są płatne - sam silnik też jest właściwie darmowy i Open Source i świetnie nadaje się do wprowadzenia w budowanie gier bo buduje się z gotowych klocków i używa wizualnego programowania (dla zaawansowanych jest też pisanie normalnego kodu JavaScript).
@Hajt - jak to naprawdę Twój kolega to przekaż mu szacuneczek za tworzenie gry przez tyle lat i do tego bez żadnego gotowego silnika!
Zaloguj się aby komentować
#it #programowanie #programista15k #python #cpp
Zastanawiam się nad przejściem z C++ na Pythona - jest dużo więcej zdalnych ofert, stawki też całkiem niezłe. Czy ktoś z was ma coś podobnego za sobą i może podpowiedzieć jak to wygląda? Co robić w przypadku braku typowo komercyjnego doświadczenia z pythonem? Po prostu wysyłać CV i liczyć, że ktoś mnie zaprosi na rozmowę czy robić jakieś certyfikaty? Mam ~5 lat doświadczenia w it. Początkowo jako support, większość jako software developer - C++, trochę Javy, python na wewnętrzne potrzeby firmy. Do tego sporo pobocznych skilli na umiarkowanym poziomie - m.in.: js, HTML, CSS.
Piszę z anonimowych, bo nie chcę udostępniać sczegółów ze swojego konta.
Kliknij tutaj, aby odpowiedzieć w tym wątku anonimowo
Kliknij tutaj, aby wysłać OPowi anonimową wiadomość prywatną
ID: #655dedb8cf4ac0227e44bf8a
Post dodany za pomocą AnonimoweHejtoWyznania: https://anonimowehejto.pl - Zaakceptowane przez: HannibalLecter
W czasach eksplozji LLM'ów to bym się raczej zastanowił nad przejściem z C++ na przykład na budowlankę albo rolnictwo
Nie znam Cię, więc nie wiem jak to się ma do Ciebie ale podzielę się swoim doświadczeniem z tych okolic. Pracuję w projekcie gdzie mamy część pythonową (zarządzanie) i cpp (faktyczne mielenie ruchu i danych). Jest duża różnica w myśleniu, postrzeganiu problemów i tworzeniu rozwiązań.
Zarówno ja rozumiem kod cpp, jestem w stanie go poprawić albo zmienić, tak samo inni są w stanie zrozumieć mój kod albo go zmienić. Ale każdy jednak w nie swojej bajce "zrobiłby to inaczej". I wydaje mi się że tutaj jest największy problem takiego przejścia: że nie tylko musisz się nauczyć innych narzędzi ale przede wszystkim zacząć inaczej myśleć
OP: @HannibalLecter co do samego języka się zgodzę, ale co z całą resztą? Konkretna dziedzina, frameworki itd. W tej chwili programuję bliżej niż dalej sprzętu, a python to głównie inne tematy - backendy webowe, analiza danych, bazy danych, cloudy itd. Z tym nie mam dużego doświadczenia (ale też nie zerowe).
Ten komentarz został dodany przez osobę dodającą wpis (OP)
Zaakceptował: HannibalLecter
Zaloguj się aby komentować
Zrobiłem libke do łączenia się z wifi na #esp32 . Jest to marna(narazie) podróba wifiManagera od tzapu. Zrobiłem ją tylko dlatego, że tamta działa tylko na arduino-esp32 a moja arduino-esp32 i na czysym espidf framweroku (oraz przez platformio). Narazie mam
-
Odpalanie wifi w trybie AP
-
Serer http ze stroną do podania loginu i hasła do wifi
-
Captive portal ( działa na linux i android, na innych platformach nie testowałem)
-
Zapis i odczy credentiali z pamięci Flash
-
Przejście do trubu STA lub AP_STA ( do wyboru przez uzytkownika)
Moje założenia to:
-
libka ma działać na zasadzie plug and play ( co jest trudne ze względu na kolejny punkt)
-
libka ma być niezależna od frameworku/IDE (nie ważne czy ktoś używa arduino, platformIO czy czystego espidf)
Pytanie:
Jakie dodatkowe funkcjonalności powinienem dodać ? Myślałem nad umożliwieniem dodawania przez użytkownika innych parametrów oprócz SSID i hasła do wifi do stronki i ich zapis. I jeszcze dodać na stonce logger. Czyli okienko gdzie bedą wyświetlać się logi z wykonywania programu bo czasami ktoś może nie mieć dostępu do portu szeregowego żeby je czytać jak urzadzenie gdzieś stoi.
#programowanie #arduino #elektronika #cpp

Nie znam się na ESP, ale czy ten kompilator nie ma stla? Czemu nie korzystasz tutaj z veców i Smart ptrów?
@fitoplankton ma i korzystam. Mam ustawiony cpp17 żeby mieć optionale bez konieczności dodawania boosta. Pewnie pijesz do tego new i delete. Otóż funkcje frameworku są napisane w C a nie w cpp. To co widisz na screenie wyżej wygląda teraz tak jak poniżej.

@fitoplankton a o wyjątki się nie boje bo te funkcje C nimi nie rzucają dlatego nie muszę stosować RAII
Zaloguj się aby komentować
Na początku sprite w mojej grze były zapisane jako png + xml (animacje, klatki, specjalne punkty). Potem zacząłem używać Aseprite, więc sprite zapisane było jako wyeksportowany png + xml. Ciągłe eksportowanie stało się jednak nudne, więc napisałem sobie importer plików .aseprite, dzięki czemu wszystkie informacje dodatkowe, takie jak specjalne punkty i hitboxy, mogłem odczytywać bezpośrednio z nich.
Mając już doświadczenie w odczytywaniu różnych informacji z Aseprite, pomyślałem: "skoro i tak planuję wszystkie etapy rysować, to czemu by nie odczytywać wszystkiego co się da bezpośrednio ze źródła"? Jak pomyślałem tak zrobiłem, a efekty widać na filmiku. Póki co najbardziej jestem dumny z konwersji pikselowych wielokątów na "wektorowe"
Ps. Nienawidzę robić GUI, ale ImGUI jest na tyle niestandardowy, że aż znośny.
#platformowki #cpp #imgui #sfml #aseprite
@cremmy kocham cię
Zaloguj się aby komentować