Skocz do zawartości

Utermiko

Użytkownicy
  • Postów

    796
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Utermiko

  1. Do łączenia stringów używamy +. >> jest przeciążonym operatorem dla klasy cin, a << dla cout. string opcjanext; cin>>opcjanext; string cmd="java -Xmx" + opcjanext + "M -Xms" + opcjanext + "M -jar bukkit.jar"; system(cmd.c_str());
  2. To nie bug. To ficzer. A tak na serio to sprawdzaj alarmy. GML if (distance_to_object(obj_hero) < 40) && (otwarte == false) && alarm[1]<=0 { y -= 4; if (ruch == true) { alarm[0] = 10; ruch = false; } } if (distance_to_object(obj_hero) > 40) && (otwarte == true) && alarm[0]<=0 { y += 4; if (ruch == true) { alarm[1] = 10; ruch = false; } }
  3. Utermiko

    Slap

    Tyle, że to nie jest nawet w najmniejszym stopniu śmieszne :P Nie musisz publicznie przedstawiać swojego wstrętu do MS. (w następnym poście fervi napisze M$). W jaki sposób chcesz to osiągnąć? Pod Mono da się odpalić binarki C++/CLI?
  4. Utermiko

    FARE

    Jak patrzę na gameplay to widać, że ogromny postęp zrobiłeś. Daj tego healthbara trochę niżej i jakąś animację jak monetkę się zbierze.
  5. Utermiko

    Slap

    Tyle, że .NET 2 w porównaniu do .NET 4 ma bardzo małe możliwości. To nie tylko rozszerzenie o kilka klas. Do tego po co używać przestarzałego oprogramowania skoro i tak nieliczne osoby używają win 2000 i starsze systemy. .NET 4 to xp, vista, 7 i 8. .NET 4.5 to 7 i 8 (i vista jeszcze chyba) .NET 4.5 jest i tak tylko rozszerzeniem 4 o parę przydatnych klas i innych dupereli. CLR dalej jest ten sam. To jest napisane w C++/CLI, a Mono chyba tego nie obsługuje. Jak chcesz to się baw w portowanie na Mono. Dołączyłem source przecież. PS. Jak piszesz "Not" to nie jesteś fajny. @EDIT Compi, tak z ciekawości. Po co Ci LPVOID? Jakieś specyficzne zastosowanie? Na językach zarządzanych wskaźniki przydają się wg. mnie tylko przy importowaniu natywnych dlli.
  6. Ale ferviemu nie chodziło o własny silnik, tylko o klona GM'a
  7. Utermiko

    Drzwi top-down

    chyba raczej od przodu
  8. Raczej chodziło mi o klony windowsowych aplikacji. Wtedy to już będzie oddzielny produkt. Klony zazwyczaj są zgodne z oryginałami.
  9. @Fervi Widziałeś kiedyś klona przewyższającego możliwości oryginału który dalej się rozwija?
  10. Utermiko

    FARE

    Czemu nie wrzucisz na yt? 20 mb to nie dużo.
  11. Utermiko

    Slap

    char* gm to traktuje jako string źle zrozumiałem. gml sprawdza czy dałeś tam ty_real czy ty_string i wywołuje odpowiednią funkcję z dll'a Po prostu wpisujesz ty_real bądź ty_string, w zależności jaki typ jest zwracany, tak jak przy definiowaniu zwykłych dll (external_define) w gm. Obczaj zresztą skrypt ;p @EDIT Tak wgl to sprawdzałeś czy działa w slapie ten dla GM'a? Czyli działa? :) @EDIT Skończyłem :D Link: https://gmclan.org/up8194_3_DotNetSlapCrossover1_0.html W środku binarki dla .NET 4 oraz 4.5, source oraz przykłady. Testowałem importowanie funkcji przez P/Invoke w c# bo już mnie denerwowało cpp ;p (czyli zarządzany program odwoływał się do mieszanej biblioteki która z kolei odwoływała się do dynamicznie ładowanego, zarządzanego dll) Dodałem więcej typów do wykorzystania(kwestia dopisania paru linijek). Poniżej lista typów oraz ich odpowiedników w .NET. Nie zapomniałem oczywiście o LPVOID. W .NET to System.IntPtr. char* to System.String.(tego też nie ma w tej tabelce) Tutaj taka lista co możesz zaimportować (wycinek z kodu): //######################### //AUTHOR OF DLL: Utermiko # //######################### #define EXPORT extern "C" __declspec(dllexport) EXPORT int LoadDll(char* path); EXPORT int CreateObject(int assemblyId, char* namespaceAndClass); EXPORT int RemoveObject(int objectId); EXPORT int ClearArguments(); EXPORT int AddStringArgument(char* value);//System.String EXPORT int AddCharArgument(char value);//System.SByte EXPORT int AddUCharArgument(unsigned char value);//System.Byte EXPORT int AddDoubleArgument(double value);//System.Double EXPORT int AddFloatArgument(float value);//System.Float EXPORT int AddIntArgument(int value);//System.Int32 EXPORT int AddUIntArgument(unsigned int value);//System.UInt32 EXPORT int AddShortArgument(short value);//System.Int16 EXPORT int AddUShortArgument(unsigned short value);//System.UInt16 EXPORT int AddLongArgument(long value);//System.Int64 EXPORT int AddULongArgument(unsigned long value);//System.UInt64 EXPORT int AddLPVOIDArgument(LPVOID value);//System.IntPtr EXPORT char* InvokeStringMethod(int objectId, char* methodName);//System.String EXPORT char InvokeCharMethod(int objectId, char* methodName);//System.SByte EXPORT unsigned char InvokeUCharMethod(int objectId, char* methodName);//System.Byte EXPORT double InvokeDoubleMethod(int objectId, char* methodName);//System.Double EXPORT float InvokeFloatMethod(int objectId, char* methodName);//System.Float EXPORT int InvokeIntMethod(int objectId, char* methodName);//System.Int32 EXPORT unsigned int InvokeUIntMethod(int objectId, char* methodName);//System.UInt32 EXPORT short InvokeShortMethod(int objectId, char* methodName);//System.Int16 EXPORT unsigned short InvokeUShortMethod(int objectId, char* methodName);//System.UInt16 EXPORT long InvokeLongMethod(int objectId, char* methodName);//System.Int64 EXPORT unsigned long InvokeULongMethod(int objectId, char* methodName);//System.UInt64 EXPORT LPVOID InvokeLPVOIDMethod(int objectId, char* methodName);//System.IntPtr @EDIT Nie zapomnij użyć "ClearArguments" przed dodawaniem argumentów do wywołania innej metody. Najczęściej na tym można się złapać :P @EDIT2 Jeszcze jedno. Przy "LoadDll" trzeba podawać PEŁNĄ ścieżkę. @EDIT3 Nie testowałem wszystkich funkcji Invoke... i Add... , ale powinny działać.
  12. Utermiko

    Slap

    Domyślnie zwracać int'a czy double (tzn. czy coś się udało/nie udało. w gm'ie trzeba było double z wiadomych przyczyn)?
  13. Utermiko

    Slap

    Dobra postaram się zrobić. LPVOID to z tego co wyczytałem IntPtr w .NET. @EDIT Jaki limit argumentów? ;p
  14. Utermiko

    Slap

    Znaczy chodzi Ci o binarkę .NET 4 czy inne typy danych? xd
  15. Utermiko

    Slap

    Źródła są dołączone. Zresztą spójrz na skrypty w gml jak wywoływana jest funkcja i spokojnie przeniesiesz to na Slapa. Gdybyś potrzebował innych typów niż char* i double to pisz. Jak chcesz mogę już od razu skompilować binarkę na .NET 4, bo 4.5 nie ma na XP. Konkretnie to najpierw czyścisz listę z argumentami (ClearArguments), wrzucasz po kolei argumenty funkcjami "AddStringArgument" i "AddRealArgument", później wywołujesz "StringMethod" lub "RealMethod" (w zależności co zwraca) i voila.
  16. Utermiko

    FARE

    Pamiętaj, żeby zmieniać tylko sprite obiektu, a nie tworzyć kilka obiektów z różnymi sprite i kopiować kod :).
  17. Tylko w zwykłym GM'e jest możliwość używania dlli - natywnych, napisanych w np. w c++. Jak chcesz używać dlli napisanych w c# (i ogólnie .NET'owych) to możesz użyć mojego dlla: DotNetGMCrossover. To taka przejściówka między kodem zarządzanym a niezarządzanym dla GM'a.
  18. Utermiko

    FARE

    Czy ja wiem... Wg. mnie jest ok. Może ewentualnie dodaj możliwość wyboru wyglądu gracza.
  19. Utermiko

    FARE

    Bohatera już dodał
  20. Utermiko

    FARE

    Ustaw maskę bohatera w sprite na kwadratową, żeby postać się między ścianami nie blokowała. @EDIT @Up szybszy ;d
  21. Utermiko

    FARE

    Tak jak poprzednicy, proponowałbym dać go nad głową bohatera, nieco zmniejszyć i dać na zielono/czerwony kolor w zależności ile ma hp.
  22. Utermiko

    FARE

    Nie wkuwaj na pamięć. To największy błąd. Korzystaj z dokumentacji i podpowiedzi z edytora. Szybciej tak sobie przyswoisz.
  23. Utermiko

    FARE

    A no racja. Myślałem, że draw_healthbar pozwala tylko na rysowanie ze zmiennej "health" :P
  24. Rozwiązanie Threefa jest chyba bardziej precyzyjne. Przecież są funkcje takie jak point_direction i point_distance. W dodatku trafienie w sam środek jest nie możliwe (zawsze trafiam na obrzeża czerwonego kółka). Zwiększ room_speed zamiast większej ilości przeskakiwanych pixeli przez tą kreskę.
×
×
  • Dodaj nową pozycję...