
Shaman
Użytkownicy-
Postów
53 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Shaman
-
Moja praca, heheh: LINK Miałem sporo frajdy z robienia jej :lol:
-
Wiele instance'ów tego samego obiektu
Shaman odpowiedział(a) na Shaman temat w Pytania zaawansowanych
Jaklub: Twój sposób może i byłby skuteczny, jednak zdaje się by bardzo zawiły i niepraktyczny. Jeśli miałbym nie 10, a na przykład 200 takich instance'ów to wiązałoby się to z tworzeniem ogromnej liczby zmiennych, więc na pewno jest pamięciożerne. Mimo to, wielkie dzięki że odpisałeś. Tymon: Hehe, powiem szczerze, że wystarczyłoby mi tylko uświadomienie mnie o istnieniu czegoś takiego jak with. W helpie wszystko odnośnie mojego problemu jest wyjaśnione, tylko po prostu tego nie znalazłem: With constructions As indicated before, it is possible to read and change the value of variables in other instances. But in a number of cases you want to do a lot more with other instances. For example, imagine that you want to move all balls 8 pixels down. You might think that this is achieved by the following piece of code ball.y = ball.y + 8; But this is not correct. The right side of the assignment gets the value of the y-coordinate of the first ball and adds 8 to it. Next this new value is set as y-coordinate of all balls. So the result is that all balls get the same y-coordinate. The statement ball.y += 8; will have exactly the same effect because it is simply an abbreviation of the first statement. So how do we achieve this? For this purpose there is the with statement. Its global form is with (<expression>) <statement> <expression> indicates one or more instances. For this you can use an instance id, the name of an object (to indicate all instances of this object) or one of the special objects (all, self, other, noone). <statement> is now executed for each of the indicated instances, as if that instance is the current (self) instance. So, to move all balls 8 pixels down, you can type. with (ball) y += 8; Tak więc, wielkie dzięki Tymon :thumbsup: :thumbsup: :thumbsup: -
Nie mogę rozkminić jak zrobić następującą rzecz: 1. Mam w roomie 10 instance'ów tego samego obiektu. Stworzyłem obiekt Drawer. Co mam zrobić żeby Drawer wyświetlał nad każdym instance'm jakiś jednakowy tekst? .... draw_text(?,?,"tekst") 2. Mam w roomie 10 instance'ów tego samego obiektu. Każdy instance ma variable health, każdy o własnej wartości. Stworzyłem obiekt Drawer. Co mam zrobić żeby Drawer wyświetlał nad każdym instance'm wartość jego własnego health'a? .... draw_text(?,?,?) Czekam na jakiekolwiek odpowiedzi ... :thumbsup:
-
Głos na Londona.
-
A co za problem zresetować zmienną?
-
zycie i troche inteligencji dla npc
Shaman odpowiedział(a) na Kendzop temat w Pytania początkujących
Jeżeli nie chcesz żeby przeciwnik ginął po 1 strzale to musisz ustawić mu zmienną odpowiadającą za ilość punktów życia. W "create" daj np. zycie = 10. Podczas atakowania musisz zmniejszać tą zmienną więc daj np. zycie -= 1. Wtedy bedzie miał na początku 10 życia, każdy atak odejmie mu 1, więc zginie dopiero po 10 atakach. Następnie, w "step" przeciwnika daj kod: if (zycie <= 0) { instance_destroy() } No i to wszystko. Jeżeli chodzi o wyświetlanie zycia nad głową przeciwnika, to już trudniejsza sprawa. Proponuję obejrzeć mój przykład: Link Jest też inny przykład pasku życia na gmclanie. Znajdziesz bez problemu. Jeśli chodzi o inteligencję dla NPC to dużo bardziej skomplikowana sprawa. Nikt tego nie zrobi bez kodu twojej gry, więc chyba musisz liczyć na siebie w tej kwestii. -
Jeżeli ustawiłeś żeby odejmowało jedno życie przy kolizji, to pamiętaj, że będzie odejmować życia cały czas, dopóki bohater będzie dotykał obiektu. Po prostu, najpierw daj klocek odejmujący 1 życie i od razu po nim wrzuć klocek "jump to a position" podaj odpowiednie współrzędne x i y (tam gdzie chcesz żeby bohater się odrodził), pamiętaj żeby odznaczyć relative. Wtedy od razu kiedy bohater dotknie obiektu, to zostanie przeniesiony w inne miejsce i już nie będzie kolizji.
-
re: up Yyy... taaa... :mellow: re: tojax Link Mój przykład ruchu platformowego - chodzenie, skakanie, zmiana animacji To żaden problem znaleźć przykład platformówki na gmclanie ... Nie wysiliłeś się ...
-
Proponuję ustalić nowy temat i kontynuować Ligę... :) No i też przydałoby się w końcu ostatecznie ustalić sposób wymyślania nowych tematów...
-
Jeśli będzie napisany całkowicie inaczej, a mimo to będzie napisany czytelnie i przejrzyście to myślę że żaden mod nie odważy się wlepić ci warna. W końcu moderatorzy to też ludzie, a nie maszyny ;)
-
x = strzal.x + 74 y = strzal.y + 23 ??? :mellow:
-
Moja propozycja jest taka: W "create" utwórz zmienną np. kierunek = "right" Do każdej akcji związanej z przemieszczaniem bohatera dopisz kod, który zmienia zmienną kierunek w "Left" daj: kierunek = "left" w "Right" daj: kierunek = "right" w "Up" daj: kierunek = "up" w "Down" daj: kierunek = "down" Potem w akcji klawisza odpowiadającego za cios sprawdzaj zmienną kierunek: if (kierunek = "left") { sprite_index = animacja_ataku_lewo // reszta kodu } if (kierunek = "right") { sprite_index = animacja_ataku_prawo // reszta kodu } i tak samo dla up i down. Na koniec daj w "Animation End" znowu sprawdzanie kierunku i ustawianie sprite'u z atakującego na stojący w odpowiednim kierunku.
-
Ojej, w takim razie sorry... Źle cię zrozumiałem, zdarza się :rolleyes: Luz. ^^ P. EDIT. Proponuję jeszcze dodać do wzorca kurs zamieszczania screenów bo połowa będzie pisać że nie umie. O ile się nie mylę to niedawno Marmot zrobił coś takiego. Po co ma się marnować? ;)
-
re: patrysław Okej. To udawajmy że wszystko jest w porządku, śpiewajmy i radujmy się. Skoro moderator uważa że nie należy nic zmieniać, to okej. Był bajzel, jest bajzel, bajzel będzie nadal. Więcej się wtrącać nie będę. Swoją drogą, uważam że główną przyczyną bałaganu jest za duża łagodność modów. Ale róbcie co chcecie, to wy macie władzę :thumbsup: ...peace
-
Propozycja bardzo dobra, bo według mnie, to, co się dzieje w dziale "gotowe gry i programy" można nazwać tylko w jeden sposób: TRAGEDIA Tylko nie wiem czemu temat ucichł...?
-
W sumie sprawa jest dość prosta, tylko jest trochę pieprzenia się z rysowaniem prostokątów. Zrobiłem przykład specjalnie dla ciebie: ;) Link Pozdrawiam
-
Ech... jak widzę takie tematy to zastanawiam się czy na tym forum są jeszcze jacyś moderatorzy... No jeśli nalegasz to bezproblemowo mogę w tym momencie odwołać do regulaminu w sprawie tego posta =) Zastanów się, może moderator też ma swoje życie. Tymon
-
Link Poprawiłem twój przykład po swojemu. Mam nadzieję że ci to pomoże :thumbsup: Problem tkwił w złym ustawieniu originów i braku maski, tak jak napisał Tymon. Ponadto, przerobiłem trochę sprite'y i kod. Teraz jest dużo lepiej.
-
Nie chcę cię martwić, ale to jest bardzo proste do zrobienia... Na przykład chcesz narysować prostokąt. Dajesz klocek "draw a rectangle" i wpisujesz np. x1 = 10, y1 = 10, x2 = 100, y2 = 30. Jeśli wolisz kod to używasz funkcji draw_rectangle. Jeśli ów prostokąt ma się poruszać za bohaterem to wystarczy przy podawaniu współrzędnych uwzględnić w nich jakąś zależność od współrzędnych obiektu za którym ma się poruszać... Dajmy na to że możesz zrobić tak: x1 = bohater.x - 50 y1 = bohater.y - 60 x2 = bohater.x + 50 y2 = bohater.y - 30 Wystarczy, że dopasujesz wielkości do swojej gry. Powodzenia w tworzeniu :thumbsup:
-
Chyba musisz trochę popracować nad wykrywaniem kolizji ... Kwestia bounding boxów i originów. Poza tym, da się w tej grze jakoś wyleczyć? Np. zjeść czarodziejskie grzybki lub upolować jakąś wiewiórkę?
-
Nie da się tak zrobić. Direction jest zmienną, która jest obliczana w każdym stepie na podstawie kierunku poruszania się obiektu. Zauważ, że kiedy zmieniasz direction jak obiekt się porusza, to wraz z tym zmieniają się zmienne dotyczące prędkości (vspeed, hspeed). Są one zależne od direction. Tak więc nie możesz zmienić tylko kierunku poruszania się obiektu, nie zmieniając direction. I odwrotnie. Może jakimś wyjściem jest ustalenie własnych zmiennych, wtedy możesz je zmieniać do woli, a to czy te zmiany mają wpływ na grę też zależy od ciebie (w przeciwieństwie do zmiennej direction).
-
skell: Ojej, :huh: Mi właśnie chodziło o ograniczenie pola do popisu w taki sposób żeby najistotniejszy był dobry pomysł. Ale to zależy od koncepcji Ligi. Jeśli mamy oceniać szybkość i efektywność kodowania, to okej. To jest tylko moje skromne zdanie, że ciekawiej byłoby oceniać pomysły i staranność, a nie np. najszybszy, najefektywniejszy i najbardziej rozbudowany engine RTS'a wykonany w 24 godziny... Ale niech decyduje lud !!
-
Ojoj... Moje zdanie jest takie: Wg mnie tematy typu RPG, RTS, platformówka są do kitu. Temat nie powinien w sposób techniczny opisywać gry, bo wtedy sprawa wygląda zbyt ogólnie. Poza tym, wkrótce tematy by się wyczerpały i trzebaby było je powtarzać. Liga stałaby się nudna jak kluchy z rosołem. Tematu typu jedzenie, niszczenie, bezbronność są już nieco ciekawsze. Dają tylko pewny zarys, pewną wizję gry, a reszta zależy od naszej pomysłowości. Wtedy niekoniecznie lepszy jest ten, kto wykonał grę perfekcyjnie pod względem technicznym. Liczy się wtedy też pomysł, koncepcja. I na przykład kiedy tematem jest jedzenie, to wykonanie zwyczajnej platformówki, w której wszelkimi 'znajdźkami' są produkty spożywcze jest moim zdaniem trochę pójściem na łatwiznę - nie ma w tym żadnej pomysłowości. Ale na przykład gra Hanjusa podobała mi się najbardziej, mimo że nie miała super grafiki, była tylko na 5 minut, ale pomysł był bardzo fajny i to powinno się liczyć. A tak w ogóle to uważam, że najlepsze pomysły na tematy zapodaje szczypiorex :thumbsup: Chciałbym zobaczyć jakie gry pojawiłyby się pod tytułem "Przygody dzięcioła Józka i jego kaczki". Heheh. No właśnie może tu tkwi haczyk? Może zamiast podawać tematu możnaby było podawać TYTUŁ gry? Najlepiej żeby wszystko było z humorem. Wtedy może Liga stałaby się dużo ciekawsza? PS. Jak dzięcioł może mieć kaczkę? :D Im durniejszy pomysł, tym śmieszniejszy :D
-
Mógłbym prosić o zapisanie mnie na listę uczestników? Może uda mi się coś wyczarować :) Się robi, mistrzu ;) Maximal
-
Jak dla mnie typ, który zakłada nowy temat z pytaniem, na które odpowiedź jest w FAQu, powinien dostać warna. Ale to tylko moja opinia.