IPB

Witaj Gościu ( Zaloguj | Rejestruj )

> Uwaga!

Uwaga!
To forum służy do zamieszczania gotowych przykładów i silników, nie do poszukiwań!

 
Reply to this topicStart new topic
Najprostszy ekwipunek
Ocena 5 V
 
Sutikku
post 28.08.2014 - 21:26
Post #1


Forum Infiltrator
*******

Wiek: 16 lat
Grupa: Użytkownicy
Postów: 711
Dołączył: 26.07.2014

Nagrody:
Najlepsza zapowiedz (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


Moją pięta Achillesa od zawsze było robienie ekwipunku. Przeważnie to było draw_text() zamiast ekwipunku.
Przykłady znalezione w internecie, przeważnie posiadały dużo kodu, albo nie mogłem zrozumieć/nie chciałem (lenistwo wrogiem człowieka)
albo trzeba było dawać kod do każdego obiektu, co mnie troszkę zrażało.
Tym razem na potrzeby własnej gry, wziąłem się do pracy i stworzyłem własny, bardzo prosty ekwipunek. Może nie powala funkcjonalnością, czy też możliwościami, ale wierzę, że komuś się przyda.
A tutaj link http://gmclan.org/up9511_12_ProstyEkwipunek.html Wersja GM 8.0
Tworzymy obiekt ekwipunku. W create wstawiamy kod
GML (CREATE)
maksEkw=6 //maksymalna wielkosc ekwipunku, ostatni element tablicy nie jest wykorzystywany
//petla itemow
for(i=0; i<maksEkw; i+=1) //
{
global.ekwipunek[i]=-1
}

W draw wstawiamy taki oto kod
GML (Draw)
for(i=0; i<maksEkw; i+=1)
{
if!(global.ekwipunek[i]==-1)
{
draw_sprite(spr_box, global.ekwipunek[i], x+(i*33), 32) // sprite ma rozmiar 32, ale dalem 33 zeby byl odstep
}
}
. Mam stworzony sprite spr_box, a w nim 3 klatki, każda to inna skrzynka/obiekt. A to kod do step (chciałem to zrobić optymalniej ale zawiodłem)
GML (Step)
if keyboard_check_pressed(ord('1'))
{
check_ekw(1-1) //daje tutaj 1-1, zamiast 0, aby w przyszlosci wiedziec co robie i sie nie pogubic.
}

if keyboard_check_pressed(ord('2'))
{
check_ekw(2-1)
}

if keyboard_check_pressed(ord('3'))
{
check_ekw(3-1)
}

if keyboard_check_pressed(ord('4'))
{
check_ekw(4-1)
}

if keyboard_check_pressed(ord('5'))
{
check_ekw(5-1)
}

if keyboard_check_pressed(ord('6'))
{
check_ekw(6-1)
}
Skrypt check_ekw wygląda tak:
GML (checkekw)
ii=argument0
if !(global.ekwipunek[ii]==-1)
{
switch(global.ekwipunek[ii])
{
case 0:
score+=3
global.ekwipunek[ii]=-1
break;

case 1:
score+=15
global.ekwipunek[ii]=-1
break;

case 2:
instance_create(random(640), random(480), obj_item)
global.ekwipunek[ii]=-1
break;
}
}
. case 0, to inaczej klatka 0. Ponieważ w przykładzie nie robiłem postaci, kod zbierania itemków mam w obiekcie,
ale nic nie stoi na przeszkodzie aby pokazany tutaj kod dawać w kolizji z itemkiem.
Obiekt Itemku - Create
GML (CREATE)
image_speed=0
image_index=choose(0,1,2) //to dla zroznicowania itemkow</span></span></span></span>

A kod zbierania, w tym przypadku po naciśnięciu myszką na item
GML (zbieranie)
for(i=0; i<obj_ekwipunek.maksEkw; i+=1)
{
if(global.ekwipunek[i]==-1)
{
global.ekwipunek[i]=image_index
i=obj_ekwipunek.maksEkw //to zeby zakonczyc petle, nie jestem pewien czy nie wystarczy samo break;
instance_destroy();
}
}
Piszcie uwagi, bluzgi, czy co tam chcecie :)
Zapomniałem dopisać, że jest pod GM 8.0, bo na czas robienia nowej gry, musiałem się przenieść.


--------------------
Ludzie to źli ludzie ~ ja
Prosty Ekwipunek
Coś szykuję, dumdum
Go to the top of the page
 
+Quote Post
post 28.08.2014 - 21:26
Post #





Wiek:



Uploader


Pani kontekstowa pokazuje swe wdzięki tylko w Valhalli lub wszędzie jeżeli nie jesteś zalogowany(a)! :3
Go to the top of the page
 
Quote Post
exp
post 28.08.2014 - 22:17
Post #2


Master of Posts
********

Wiek: ?
Grupa: Użytkownicy
Postów: 1,020
Dołączył: 24.07.2010

Nagrody:
Cytat roku (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


Fajna rzecz, w sam raz dla przygodówki.
Go to the top of the page
 
+Quote Post
Sutikku
post 28.08.2014 - 22:21
Post #3


Forum Infiltrator
*******

Wiek: 16 lat
Grupa: Użytkownicy
Postów: 711
Dołączył: 26.07.2014

Nagrody:
Najlepsza zapowiedz (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


Dziękuje za opinie smile.gif Na początku miało się używać przedmioty przez naciśnięcie kursorem, ale to wtedy nie byłby tytułowy Najprostszy Ekwipunek.


--------------------
Ludzie to źli ludzie ~ ja
Prosty Ekwipunek
Coś szykuję, dumdum
Go to the top of the page
 
+Quote Post
Sutikku
post 20.09.2014 - 9:28
Post #4


Forum Infiltrator
*******

Wiek: 16 lat
Grupa: Użytkownicy
Postów: 711
Dołączył: 26.07.2014

Nagrody:
Najlepsza zapowiedz (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


MiniAktualizacja. Ponieważ jest to kwestia zamiany paru linijek kodu dam tutaj. Za pomocą tej zmiany teraz można powiększać ekwipunek. Na tej samej zasadzie zmniejszać.
W create obj_ekwipunek
GML (create)
maksEkw=3 //maksymalna wielkosc ekwipunku, ostatni element tablicy nie jest wykorzystywany
//petla itemow
for(i=0; i<9; i+=1) //
{
global.ekwipunek[i]=-1
}
Teraz 9 wyznacza maksymalny ekwipunek jaki można mieć. Po naciśnięciu spacji, zebrania nowego plecaka, czy jeszcze czegoś innego powiększanie ekwipunku.
GML (akcja)
if(maksEkw<9)
maksEkw+=1
. I w step dodać wszystkie wciśnięcia klawisza do 9
GML (step)
if keyboard_check_pressed(ord('9'))
{
check_ekw(9-1) //daje tutaj 1-1, zamiast 0, aby w przyszlosci wiedziec co robie i sie nie pogubic.
}
I tak od 1, do 9.


--------------------
Ludzie to źli ludzie ~ ja
Prosty Ekwipunek
Coś szykuję, dumdum
Go to the top of the page
 
+Quote Post
gnysek
post 20.09.2014 - 10:03
Post #5


Emerytowany Admin
************

Wiek: 29 lat
Grupa: Użytkownicy
Postów: 9,019
Dołączył: 2.06.2004
Skąd: Banino / Trójmiasto
Team: Gear-Studio

gnysek


Nagrody:
Najbardziej pomocny uzytkownik (CA 2011)

Uploader
Ostrzeżenia:
(0%) -----


Upraszczamy event step:

GML
var i;
for(i=1; i<9; i++) {
if keyboard_check_pressed(ord(string(i)))
{
check_ekw(i-1);
}
}


5x mniej kodu.


--------------------
GMCLAN NA FACEBOOKU: facebook.com/GMCLAN

Aktualne gry w PlayStation Plus

Obecne Projekty:
[||||||||||] Word Memo - 35%
[||||||||||] Digy Digy Dig - 30% [on hold]
[||||||||||] Almora Origins - 50%
Go to the top of the page
 
+Quote Post
Sutikku
post 20.09.2014 - 10:58
Post #6


Forum Infiltrator
*******

Wiek: 16 lat
Grupa: Użytkownicy
Postów: 711
Dołączył: 26.07.2014

Nagrody:
Najlepsza zapowiedz (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


Dziękuje. Kombinowałem coś z stringami, ale gdzieś robiłem błąd.


--------------------
Ludzie to źli ludzie ~ ja
Prosty Ekwipunek
Coś szykuję, dumdum
Go to the top of the page
 
+Quote Post
Opisek
post 11.12.2014 - 19:41
Post #7


Smart Newbie
*

Wiek: 14 lat
Grupa: Użytkownicy
Postów: 75
Dołączył: 17.07.2013
Skąd: z nikąd
Uploader
Ostrzeżenia:
(0%) -----


Bardzo mi się podoba i pasuje idealnie do mojej gry. Na pewno wykorzystam,


--------------------
Pac's Land: [][][][][][] Etap: Budowa i rozwijanie gry
___________________________________________________________
Gdy już raz się spróbuje, od programowania nie będzie dało się uciec.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 użytkownik(ów) przegląda ten temat (1 gości i 0 anonimowych użytkowników)
0 Użytkownicy:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2017 - 6:18