Poslao: 27 Jan 2010 21:33
|
offline
- Pridružio: 15 Maj 2009
- Poruke: 963
|
Napisano: 27 Jan 2010 16:08
Postavi depth na -1000.
Dopuna: 27 Jan 2010 21:33
kole017 ::Ajde dok zmmaj pise ja da vas zamolim da mi sredite sledece. Hitno mi je i bitno
1. Zivoti, poeni i municija se ne prenose. Srediti to.
2. Deda ima problem sa skakanjem i gravitacijom.
3. Cudovista ne mogu da lete.
4. Napraviti da se na score_table prikazuje koliko mi je municije ostalo...
Neka mi neko sredi ovo ako zeli. Ako ne, onda nek mi kaze kako da sredim
@zmmaj
Postavio sam ti nekoliko pitanja u jednom postu, proveri...
EDIT: http://www.mycity.rs/3D-programiranje/GAME-MAKER-Dakle_38.html#1003731
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 28 Jan 2010 08:28
|
offline
- zmmaj
- Građanin
- Pridružio: 03 Okt 2009
- Poruke: 246
|
kole017 ::
Otvorio sam ovaj GMVInfo fajl (ne .gmk nego ovaj drugi) i pronasao sam:
global.VI_COMPANYNAME=2;
Onda sam otvorio gmk i pronasao:
data+="Company Name: "+cvc_vinf_get(global.VI_COMPANYNAME)+"#"
Moze to malo da se pojasni???
Kao i ovo:
#define cvc_vinf_init
// Initialize Covac Version Info Dll
global._vinf_dll="GMVInfo.dll";
global._vinf_set=external_define(global._vinf_dll,"loadPortableExecutable",dll_stdcall,ty_real,1,ty_string)
global._vinf_has=external_define(global._vinf_dll,"hasVersionInfo",dll_stdcall,ty_real,0)
global._vinf_get=external_define(global._vinf_dll,"getVersionInfo",dll_stdcall,ty_string,1,ty_real)..
1:
// constant list
global.VI_CONST0=0;
global.VI_CHARSET=0;
global.VI_COMMENTS=1;
global.VI_COMPANYNAME=2;
Sve su to unapred definisane windowsove konstante... I vec sam opisao cemu sluze...
2:
global._vinf_dll="GMVInfo.dll";
Jednostavno postavljanje adrese DLL-a, da bi GM znao gde se nalazi...
obzirom da se sam DLL nalazi u istom folderu gde i GM fajl nista drugo i nije potrebno...
Da ste kojim slucajem isti dll postavili u folderu, nazvanom, npr Dll_ovi, onda bi ono definisanje varijabile global._vinf_dll izgledalo
global._vinf_dll="Dll_ovi/GMVInfo.dll"
3:
Komandom external_define() se definisu funkcije DLL-a...
Pri ovoj radnji ova komanda vraca jedinstveni ID koji se pamti pod opdredjenom varijabilom...
Npr... global.koliko_je_sati=external_define(bla bal bla);
To se radi na pocetku aplikacije JEDNOM...
Kasnije se po potrebi poziva ista inicirana funkcija komandom
vreme=external_call(global.koliko_je_sati, argumenti....)
Znaci... ono external ne treba da vas buni... DLL-ovi i jesu externi i nisu deo GM-a.
Sintaxa je takva da jednostavnija i ne moze da bude...
U gornjem slucaju global.koliko_je_sati je fixno, i jednom se namesta na pocetku aplikacije.
A samo vreme ( ili bilo sta drugo) je promenljivo... Trenutno stanje te doticne varijabile se dobija pozivanjem odgovarajuceg external_call() poziva...
HAjde da sve to jos uprostimo....
Recimo da si ti kole07, imas drugara warmphole i njih josh 150 pored...
Recimo da ti zatreba nesto sto warmphole zna da uradi ili neko drugi, a ti ne znash....
Kako ces zatraziti to sto ti treba?
pa ides sledecim koracima
1: Prvo definises ko moze da to uradi ( external_define() )
2: Skontao si ko to zna i nazoves warmphole mobilnim npr ( warmphole je u ovom slucaju ime DLL-a ( dll)
3: sad moras reci warmphole-u sta tebi u stvari treba od njega...
pomoc, da odete u bioskop, da ti pomogne oko domaceg etc... ( name)
4: MOras mu reci i kakva je to vrsta pomodi koja ti treba (vrsta poziva)
Ako ti treba da ti nesto fizicki pomogne ( dll_cdecl ),
a ako treba da ti nesto npr napise onda je (dll_stdcall)
5: Normalno da mu moras predociti i sta ocekujes od njega... kakav rezultat (restype).
6: I normalno, na kraju moraces mu dati i argumente sa kojima ce on zapoceti dati posao...( arg0, arg1,arg2 etc)
SLEDECI put kada ti bude zatrebala ista pomoc... normalno da neces ponoviti warmphole-u sve... E sad nastupa external_call komanda
sa njom mu samo kazes ime posla i argumente, obzirom da su oni promenljivi...
MIslim da je ovo gore najlucidnije objasnjenje dll poziva koje sam ikad procitao...
|
|
|
|
Poslao: 28 Jan 2010 09:06
|
offline
- Pridružio: 15 Maj 2009
- Poruke: 963
|
zmmaj ::1: Prvo definises ko moze da to uradi ( external_define() Smile )
2: Skontao si ko to zna i nazoves warmphole mobilnim npr ( warmphole je u ovom slucaju ime DLL-a ( dll)
3: sad moras reci warmphole-u sta tebi u stvari treba od njega...
pomoc, da odete u bioskop, da ti pomogne oko domaceg etc... ( name)
4: MOras mu reci i kakva je to vrsta pomodi koja ti treba (vrsta poziva)
Ako ti treba da ti nesto fizicki pomogne ( dll_cdecl ),
a ako treba da ti nesto npr napise onda je (dll_stdcall)
5: Normalno da mu moras predociti i sta ocekujes od njega... kakav rezultat (restype).
6: I normalno, na kraju moraces mu dati i argumente sa kojima ce on zapoceti dati posao...( arg0, arg1,arg2 etc)
Sada mi je sve mnogo jasnije.
Gde mogu da nadjem jos neke dllove??
|
|
|
|
|
Poslao: 28 Jan 2010 10:08
|
offline
- Pridružio: 15 Maj 2009
- Poruke: 963
|
zmmaj ::na adresi:
http://gmc.yoyogames.com/index.php?s=4d5cba39557dc.....owforum=36
OPet da napomenem... krenite sa jednostavnijim... dok ne dovrsimo skripting..
Narocito je bitno da skontate onaj folder " scipts" sa leve strane GM editora...
Ima ih puno ovde. Si su "profesionalni" Pronasao sam jedan kao jednostavan primer, ali ima mnogo napisano.
Ajde ti kao strucnjak, odredi sta bi za nas pocetnike bilo najednostavnije...
|
|
|
|
Poslao: 28 Jan 2010 10:26
|
offline
- zmmaj
- Građanin
- Pridružio: 03 Okt 2009
- Poruke: 246
|
npr sa adrese
http://gmc.yoyogames.com/index.php?showtopic=207939
skinite beep.dll
Sta radi?
nista bog zna sta... ali sve jedno GM po defaultu to ne moze ...
Startuje sistemski zvucnik na racunaru...
Onaj mali pistavi...
imate i dll za led diodice na tastaturi... ne na ovom linku, ali potrazite ga...
Sto da ne napravite Light Show od tastature ?
|
|
|
|
|
|
Poslao: 28 Jan 2010 11:07
|
offline
- Pridružio: 15 Maj 2009
- Poruke: 963
|
Napisano: 28 Jan 2010 11:01
Zmmaj snimi ovo:
#define get_file_size
if (!variable_global_exists("getFileSizeDll"))
{
global.getFileSizeDll=external_define("filesize.dll","get_file_size",dll_stdcall,ty_real,1,ty_string);
}
//Argument0: Filename
return external_call(global.getFileSizeDll,argument0);
To je sve sto ima u jednom primeru sto sam nasao.
Ovo je u gmk fajlu:
//File to check size of
file="testfile.txt";
//Get filesize from file
size=get_file_size(file);
show_message("Size of "+file+" is "+string(size)+"bytes");
game_end();
Sada ta pojasnimo meni ...
#define get_file_size verovatno time odredjujemo da definisemo get_file_size koji se nalazi u gmk fajlu.
if (!variable_global_exists("getFileSizeDll")) ako variabla getFileSizeDll tamo postoji uraditi sledece, mada treba mi pojasnjenje ove varijable ali to je ono o cemu si pricao, sacekaj da dodjem do kraja pa ce mi vise stvari biti jasne (buni me ono "!variable" - podesetime cemu sluzi "!"???)
{
global.getFileSizeDll=external_define("filesize.dll","get_file_size",dll_stdcall,ty_real,1,ty_string);
}
to je ono o cemu si pricao i jasno mi je ali ipak me buni "dll_stdcall,ty_real,1,ty_string"
Citat:Ako ti treba da ti nesto fizicki pomogne ( dll_cdecl ),
a ako treba da ti nesto npr napise onda je (dll_stdcall)
kada se sta koristi???
//Argument0: Filename
return external_call(global.getFileSizeDll,argument0);
argumeniti, jasno
Ovo se moze naci ovde:
http://gmc.yoyogames.com/index.php?showtopic=460394
Dopuna: 28 Jan 2010 11:07
kole017 ::{
global.getFileSizeDll=external_define("filesize.dll","get_file_size",dll_stdcall,ty_real,1,ty_string);
}
to je ono o cemu si pricao i jasno mi je ali ipak me buni "dll_stdcall,ty_real,1,ty_string"
Citat:Ako ti treba da ti nesto fizicki pomogne ( dll_cdecl ),
a ako treba da ti nesto npr napise onda je (dll_stdcall)
kada se sta koristi???
To mi je sada jasno kada sam sve procitao, onaj mali tekst box za dgovor mi je smetao...
Sta ima jos pored dll_stdcall i dll_cdec???
Tu mi sada nije jasno samo "ty_real,1,ty_string"
|
|
|
|
Poslao: 28 Jan 2010 11:22
|
offline
- zmmaj
- Građanin
- Pridružio: 03 Okt 2009
- Poruke: 246
|
Napisano: 28 Jan 2010 11:19
Citat:
Ako ti treba da ti nesto fizicki pomogne ( dll_cdecl ),
a ako treba da ti nesto npr napise onda je (dll_stdcall)
kada se sta koristi???
To je ovisno o samom DLL-u i autoru... zato ti treba neka vrsta dokumentacije, ili bar primer... Sto se u GM bas daje... ili kao txt dokument pored , ili u samim skriptama...
variable_global_exists:
Varijabile mozete definisati kao lokalne i globalne...
Lokalnim mozete pristupiti direktno samo iz objekta u kojem je i kreirana, a iz drugog objekta ili skripte pozivanjem objekta u kojem se nalazi lokalna varijabila...
PRIMER LOKALNE definisane u npr objektu 'o_start'
tezina=25;
Ovoj varijabili mozete prici iz objekta o_start direknim pozivom 'tezina' i uvek ce te imati 25 ( osim ako ovu vrednost niste proimenili u medjuvremenu.. )
Istoj varijabili iz drugog objekta ili skripte mozete pristupiti tako sto prvo napisete gde se ista nalazi, odnosno u kojem objektu...
Tako da varijabili ' tezina' pozovete iz objekta npr ' o_kraj', moracete da napisete sledecom sintaxom o_kraj.tezina da bi ste dobili vrednost varijabile ' tezina'....
Kada se prica o GLOBALNIM varijabilama, njima mozete pristupati uvek na isti nacin i sa svakog mesta...
Primer
global.tezina=25
pozivanjem ' global.tezina' iz bilo kojeg , pa i iz objekta o_start, uvek ce te dobiti trenutnu vrednost varijabile global.tezina....
Nacin , KAKO ispitati , postoji li uopste varijabila koja ima ime npr global.tezina, je upravo ona komanda koja ti nije jasna... odnosno
variable_global_exists() <- unutra se upisuje samo ime bez onog 'global'
Provera istinitosti.. odnosno da li je nesto istina ili neistina (true/false odnosno 1/0) mozete uraditi dvojako...
primer:
if a !=b then ( ako je a razlicito od b onda... )
ili
if !a=b then ( isto znaci samo je sintaxa razlicita... nebitno je koji nacin se koristi, to je vasa licna stvar, pa koristite onu koja vam je logicnija)
el jasnije?
Dopuna: 28 Jan 2010 11:22
kole017 ::Napisano: 28 Jan 2010 11:01
Sta ima jos pored dll_stdcall i dll_cdec???
Tu mi sada nije jasno samo "ty_real,1,ty_string"
Nema nizta pored te dve opcije... to su jedine opcije koje su za sada moguce u GM...
Kada stoji ty_real argument je real broj...
KAda stoji ty_string argument je string...
i ne moze nikako drugacije... Znaci vodite racuna da je string uvek string, a broj broj...
Naravno da mozete proslediti i varijabilu u poziv....
a = 25;
umesto 25 uvek mozete napisati 'a'...
|
|
|
|