Skocz do zawartości

Wykonanie funkcji GM'a z biblioteki


Gość

Rekomendowane odpowiedzi

Witam :) Nie wiem czy w dobrym dziale dałem (chyba dobrym, bo to dość zaawansowane). Otóż, zacząłem sobie pisać dla zabawy DLL'a i mam takie pytanie. Czy można w tej bibliotece (w Delphi pisanej ;)) zastosować funkcję Game Makera (w tym przypadku to draw_circle_color)?

Powiedzmy, że w bibliotece mam wpisane tak:

GML
function CircleColor(): pchar; stdcall;

begin

Result:='draw_circle_color(x, y, 50, c_red, c_black, 0)';

end;

 

exports CircleColor;

 

begin

end.

w GM'ie:

 

Obiekt:

GML
// W CREATE //

CircleColor = external_define('DLL.dll', 'CircleColor', dll_stdcall, ty_string, 0);

 

// W DRAW //

CircleDraw();

 

Skrypt:

CircleDraw:

GML
external_call(CircleColor);

Czy po takim użyciu, w Game Makerze będzie rysowało okręg (czy tam koło :P) ?

 

Napisałem chyba dość zrozumiale :P

Z góry dzięki za odpowiedź :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tylko jeśli użyjesz GMapi, ale ta biblioteka jest dostępna na razie jedynie pod c++, więc w delphi jej nie użyjesz.

Ewentualnie możesz zwracać funkcjami tekst który będzie wykonywał za pomocą execute_string()

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, zaraz sprawdzę i w edicie dam, czy jakoś sobie z tym poradzę :P A co do tego GMapi, to to jest biblioteka, która wykonuje funkcje z bibliotek napisanych w C++? Czy jakoś tak :P

 

E: O, bardzo fajne, Działa :D Ale coś mi się wydaje, że przy użyciu bardziej złożonej funkcji (np. rysowanie wielu kółek z wypełnieniem itp.) będzie to nieoptymalne :P

Ale dzięki wielkie :D Szczerze, to wiedziałem, że taka funkcja istnieje, ale nie powiedziałbym, że mi w tym pomoże.

Odnośnik do komentarza
Udostępnij na innych stronach

to jest biblioteka ktora wykonuje funkcje oraz daje Ci niemal pelny dostep do zasobow GMa podczas gry, tak ze mozesz robic niemal wszystko z GMem tak samo jak bys pisal ten kod w edytorze w obiektach itp, tyle ze szybciej.

Powiem Ci tak: z moich obserwacji to GMapi + DLL jest bardziej wydajne niz sama gra w GM (do tego jak uzyjesz podmiany funkcji na wlasne to miodzio ^^ ale tego ficzera nie zdradze, zbyt wysoko go cenie ;) )

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Otworzyłem z powrotem temat, bo chcę o coś jeszcze zapytać. I przepraszam za double posta :P

No więc jak w bibliotece sobie napiszę żeby nie pokazywało myszki i chcę to w GM'ie zastosować, to w ogóle można tak zrobić ? :P

I jeśli tak, to jaki trzeba podać typ zwracanej etc? Bo to mnie właśnie męczy, i ustawiałem te ty_real itp. i nic :( nie wiem jak to zastosować.

Z góry dziękuję :)

Odnośnik do komentarza
Udostępnij na innych stronach

nie rozumiem.

No więc jak w bibliotece sobie napiszę żeby nie pokazywało myszki i chcę to w GM'ie zastosować, to w ogóle można tak zrobić ?

GML
window_set_cursor(cr_none)
Odnośnik do komentarza
Udostępnij na innych stronach

Tylko nie chodzi mi w GM'ie tylko w bibliotece. W Delphi jest możliwość wyłączenia myszki (nie ukrycie kursora, źle się wyraziłem :P). I trzeba coś zrobić z rundll32. I chodzi mi właśnie o coś takiego, że napiszę bibliotekę żeby wyłączała myszkę za pomocą tego rundll32 i żeby to później użyć w GM. Chyba lepiej wytłumaczone :P To idzie tego użyć w GM'ie?

Odnośnik do komentarza
Udostępnij na innych stronach

a takie coś to trzeba było od razu mówić :D - nie pomagam pseudohakerom i kompopsujom :(

Odnośnik do komentarza
Udostępnij na innych stronach

ma, bo od tego kompopsujstwa zaczynają. Bez wiedzy o assemblerze tez mozna w kompie namieszac. MSDN wita.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...