Avatar
samo007
Redaktor
Avatar
samo007:

Zdravím, ako môžem nastaviť zastrešované písmo (tie čierne body, bez toho, aby mi ukázalo vypadne znaky kvôli bezpečnosti)?

Dá sa to vôbec v Game-makeru?

 
Odpovědět 23.9.2012 9:32
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na samo007
David Čápka:

V GM se dá vše, ale budeš si to asi muset naprogramovat sám :)

Nahoru Odpovědět 23.9.2012 10:36
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
samo007
Redaktor
Avatar
 
Nahoru Odpovědět 23.9.2012 12:28
Avatar
TomBen
Redaktor
Avatar
TomBen:

EventCreate - ikona ExecuteCode:
password='devbook';
keyboard_string='';
unlocked=0;

EventDraw - ikona ExecuteCode:
var i,r,s ;
i=0; r=4; s=11;

repeat string_length(ke­yboard_string)
{
draw_ellipse_co­lor((si)+x-r-1,y-r-1,(si)+x+r+1,­y+r+1,c_black,c_blac­k,0);
draw_ellipse_co­lor((si)+x-r,y-r,(si)+x+r,y+­r,c_black,c_whi­te,0);
i+=1;
}

if (unlocked)
{
draw_set_alpha(0­.5);
draw_line_wid­th_color(5+x+(si)­,y,11+x+(si),y+6,5,c_blac­k,c_black);
draw_line_wid­th_color(10+x+(si­),y+5,18+x+(si),y-11,5,c_black,c_blac­k)
draw_set_alpha(1);
draw_line_wid­th_color(5+x+(si)­,y,10+x+(si),y+5,3,c_gre­en,c_lime);
draw_line_wid­th_color(10+x+(si­),y+5,17+x+(si),y-10,3,c_green,c_li­me)
}

EventReleaseEnter - ikona ExecuteCode:
if (keyboard_strin­g)=password
{ unlocked=1; }

Nahoru Odpovědět 23.9.2012 12:53
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
samo007
Redaktor
Avatar
Odpovídá na TomBen
samo007:

Ďakujem, skúsim to.

 
Nahoru Odpovědět 23.9.2012 13:50
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

Ten keyboard_string vypadá jako užitečná věc, nevěděl jsem o ní :) Mrzí mě ale, jak jsou tyhle GM kódy vždycky špatně napsané, žádné konvence, např. proměnné i, r s nebo jak jsou zapsány podmínky.

Část kódu se zformátovala, chtělo by ho vkládat jako zdrojový kód, takhle asi nebude fungovat, chybí tam nějaké hvězdičky.

Nahoru Odpovědět 23.9.2012 14:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

Ajaj, to mě mohlo trknout.
Když to bude v tagu code, tak to bude OK?

>samo007:
Tady je link na gmk, ten pojede vždycky:
http://www.povray.cz/…wordType.gmk

Nahoru Odpovědět 23.9.2012 14:54
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

BTW: Co se ti jeví špatně na proměnných i,r,s?

Nahoru Odpovědět 23.9.2012 14:59
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

Ano, v code to bude chápáno jako zdrojový kód a bude také zvýrazněna syntaxe.

Název proměnné by měl vystihovat to, co je v ní uloženo.

Ten repeat je příšerný, to je práce pro for cyklus.

Zápis té poslední podmínky jsem také nepochopil, proč dávat do závorky proměnnou místo celé podmínky a proč porovnávat =?

Tyhle kódy jsou jak nemoc, nikdo jim nerozumí, někdo to napíše, další stahnou a zkopírují, ty chyby nevidí, pak si tam přidají další a další proměnné...

Editováno 23.9.2012 15:09
Nahoru Odpovědět 23.9.2012 15:08
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na TomBen
Kit:

Kde jsi vzal proměnnou si?

Nahoru Odpovědět 23.9.2012 15:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

To je jen důsledek vložení kódu jako prostého textu.

Nahoru Odpovědět 23.9.2012 15:15
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Pokud dodržuje určité zvyklosti, např. r=poloměr a x,y=souřadnice apod, tak s jednopísmennými názvy proměnných nemusí být problém. U delších výrazů to může být i přínosem ke zvýšení čitelnosti, zejména u matematických vzorců.

Pokud vím, tak cykly repeat a for nemusí být ekvivalentní.

Nahoru Odpovědět 23.9.2012 15:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

To vím. Očekával jsem od TomBen reakci, že to sem pošle znovu a tentokrát to vloží správně.

Nahoru Odpovědět 23.9.2012 15:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Kit
TomBen:

Proměnná si vznikla tím, že jsem to nedal do code.
Měla tam být násobící hvězdička. :-)

>sdraco:
Názvy proměnných mám v tomto duchu správně.
i je běžný inkrementační prvek
r je radius
s je space

Repeat je pravda trochu programátorská ohavnost,
ale je kratší a přehlednější. Není důvod ho nepoužít.

Ta závorka v porovnávání je normální překlep. :-)
Nenapadlo mě, že tak průhledný a krátký kód musím vůbec řešit.
V tom GMK je to samozřejmě funkční. Ten závorkový překlep tam
sice je, ale to nemá na funkčnost žádný vliv. Proto jsem to
taky přehlédl. I to se stane.

Nahoru Odpovědět 23.9.2012 15:27
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na TomBen
Kit:

Koukám: Má tam být ve výrazu y+6,5 nebo y+6.5?

Nahoru Odpovědět 23.9.2012 15:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Redaktor
Avatar
TomBen:

Ale abych tady nenechával rozvrtaný kód, zkusím to znovu vložit
a snad tentokrát lépe:

Create:

password='devbook';
keyboard_string='';
unlocked=0;

Draw

var i,r,s ;
i=0; r=4; s=11;

repeat string_length(keyboard_string)
{
draw_ellipse_color((s*i)+x-r-1,y-r-1,(s*i)+x+r+1,y+r+1,c_black,c_black,0);
draw_ellipse_color((s*i)+x-r,y-r,(s*i)+x+r,y+r,c_black,c_white,0);
i+=1;
}

if (unlocked)
{
draw_set_alpha(0.5);
draw_line_width_color(5+x+(s*i),y,11+x+(s*i),y+6,5,c_black,c_black);
draw_line_width_color(10+x+(s*i),y+5,18+x+(s*i),y-11,5,c_black,c_black)
draw_set_alpha(1);
draw_line_width_color(5+x+(s*i),y,10+x+(s*i),y+5,3,c_green,c_lime);
draw_line_width_color(10+x+(s*i),y+5,17+x+(s*i),y-10,3,c_green,c_lime)
  }

ReleaseEnter

if (keyboard_string=password)
{ unlocked=1; }
Nahoru Odpovědět 23.9.2012 15:34
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

Repeat je cyklus bez řídící proměnné, for cyklus je cyklus s řídící proměnnou. Zde se do repeat vloží řídící proměnná, to nedává smysl.

Máš pravdu, radius dává smysl, ale na space bych tedy nepřišel :)

Nahoru Odpovědět 23.9.2012 15:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Jenže v daném cyklu i není řídicí proměnnou, ale počitadlem. Kdyby byla řídicí proměnnou, přestala by po opuštění cyklu platit a nemohla by se použít v následujícím bloku if.

Nahoru Odpovědět  +1 23.9.2012 15:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Kit
TomBen:

Všímavý. Máš bod. :)

Nahoru Odpovědět 23.9.2012 15:45
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

Viděl bych to takhle (snad neudělám chybu, nechce se mi to zkoušet):

Create

password = 'devbook';
keyboard_string = '';
unlocked = false;

Draw

// zde by se možná dalo přiřadit rovnou
var r, space, length;
r = 4;
space = 11;
length = string_length(keyboard_string);

for (i = 0; i < length; i++)
{
 // tady možná také to var, chtělo by zkusit...
 // každopádně proč 4x počítat střed?
 cx = space * i + x;
 cy = y;
 draw_ellipse_color(cx - r - 1, cy - r - 1, cx + r + 1, cy + r + 1, c_black, c_black, 0);
 draw_ellipse_color(cx - r, cy - r, cx + r, cy + r, c_black, c_white, 0);
}

if (unlocked)
{
 draw_set_alpha(0.5);
 // na tohle už nemám :D
 draw_line_width_color(5+x+(space*length),y,11+x+(space*length),y+6,5,c_black,c_black);
 draw_line_width_color(10+x+(space*length),y+5,18+x+(space*length),y-11,5,c_black,c_black)
 draw_set_alpha(1);
 draw_line_width_color(5+x+(space*length),y,10+x+(space*length),y+5,3,c_green,c_lime);
 draw_line_width_color(10+x+(space*length),y+5,17+x+(space*length),y-10,3,c_green,c_lime)
}

ReleaseEnter

if (keyboard_string == password)
   unlocked = true;
Editováno 23.9.2012 15:51
Nahoru Odpovědět 23.9.2012 15:50
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Jo a proto to dává ještě menší smysl :)

Nahoru Odpovědět 23.9.2012 15:51
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

Místo

for (i = 0; i < length; i++)

musí být v GM

for (i = 0; i < length; i+=1)

jinak to ale máš hezké.

Nahoru Odpovědět 23.9.2012 16:04
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Těch způsobů je víc, možná bych raději preferoval

// snad to tak v GM funguje
var r=4;  // poloměr
var space=11; // mezera mezi (čím?)
var length=string_length(keyboard_string);

Nemyslím si, že je vhodné dávat mezery do vzorců. Jsou pak zbytečně dlouhé, musí se zalamovat a k přehlednosti to nepřispívá. Naopak mezeru za čárkou v seznamu považuji za dobrý zvyk.

Hodilo by se použití několika konstant. Co třeba znamená číslo "5" v seznamu parametrů funkce draw_line_width_color()? Teď už vím, že je to šířka, ale proč to tam není uvedeno?

Nahoru Odpovědět 23.9.2012 16:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Redaktor
Avatar
TomBen:

Já jsem původně počítal s tím, že téměř všechno vykreslování každý vymaže a přepíše podle svého.
V reálném použití bych použil sprity a samozřejmě je třeba ošetřit ještě strašnou spoustu věcí.
Např. aby nešlo po napsání hesla psát dál - trapně zůstane zatrženo heslo jako korektní. V zásadě by stačilo napsat, že to lze řešit přes keyboard_string, ale bohužel by pak následovaly otázky: "Jo? A jak?" :)
Takhle jsem to považoval jen za názorné a návodné.
Nicméně píšu kódy jako prase a vím to. Už se toho snad ani neumím zbavit. Takže díky za tu drobnou korekci.

Editováno 23.9.2012 16:23
Nahoru Odpovědět 23.9.2012 16:21
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na TomBen
Kit:

Dokud nepoužíváš globální proměnné, skoky goto, flow-controll výjimkami a podobné nešvary, tak se to ještě dá.

Nahoru Odpovědět 23.9.2012 16:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Kit
TomBen:

Tomu se většinou vyhýbám - chci to občas přečíst i po sobě. :)
Jen nerozumím, proč tak horlivě všichni bojujete proti globálním proměnným.
V GM jich je požehnaně takříkajíc od výroby. Např. score. Takže se jim
vyhýbá celkem špatně a při jednoduchém použití a malém množství bych řekl,
že zas tak neškodí. Jde jen o to udržet to na uzdě, ne?

Nahoru Odpovědět 23.9.2012 16:38
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na TomBen
Kit:

Globální proměnné vývojářům "chutnají", protože jsou pohodlné. Jenže čím větší projekt, tím jsou hůř zvládnutelné. Pak se přistihneš při tom, že určitou funkci nemůžeš použít, protože používá nějakou globální proměnnou, ale ty tam potřebuješ jinou. A začneš předělávat.

Mnoho vývojářů si takové globální skladiště dělá v objektech. Výsledek bývá podobný, ale vydrží s tím o něco déle. Jen u toho mají pár getterů a setterů navíc, aby to nevypadalo, že jsou jelita.

Globální proměnné se používat dají, ale jen do určité velikosti aplikace. Pak se stanou brzdou. Je lepší si už od počátku jejího vývoje zvykat na lokální proměnné, parametry funkcí předávané hodnotou, návraty definovaného typu, chybové návraty jiným kanálem (výjimkami) apod.

Jde o to vytěsnit potřebu globálních proměnných, aby byly bloky kódu na sobě maximálně nezávislé, aby se program snadno udržoval a recykloval.

Nahoru Odpovědět 23.9.2012 16:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Kit
TomBen:

Jo, to zní logicky. Dík.
Obvykle to tu zaznívalo skoro jako kázání. "Nezglobálníš!" :)

Nahoru Odpovědět  +1 23.9.2012 17:04
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na TomBen
Kit:

Zajímavé přikázání :)

Používání globálních proměnných má velký vliv na uvažování programátora, brání myšlenkové dekompozici problému. Začne globalizovat i ty části kódu, které by měly být uzavřeny v nějaké funkci či metodě nějakého objektu.

Občas se v nějakém fóru dozvím o problému na 31255. řádku programu. Navíc se autor diví, proč je to pomalé. Pokud by provedl správnou dekompozici ...

Nahoru Odpovědět 23.9.2012 17:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Redaktor
Avatar
samo007:

Ďakujem za rady, vyskúšam si tie kódy.

A ešte niečo. Na vkladanie používam typické GM zobrazovacie okno. Ako teda aplikujem kód do "message"?

 
Nahoru Odpovědět 23.9.2012 17:19
Avatar
samo007
Redaktor
Avatar
Odpovídá na Kit
samo007:

Už rozumiem. Pri globálnych premenných si všetko pc musí ukladať, pričom lokálne premenné sú menej náročné na dočasnú pamäť. Tak je to?

Ale ja zatiaľ pracujem na malých projektoch. Ak budem chcieť mať väčšie projekty, radšej sa naučím iný jazyk.

 
Nahoru Odpovědět 23.9.2012 17:25
Avatar
Kit
Redaktor
Avatar
Odpovídá na samo007
Kit:

Není to jen o úspoře paměti v PC, i když i ta může hrát roli, ale spíš je to o úspoře paměti v mozku vývojáře.

Nahoru Odpovědět 23.9.2012 17:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Redaktor
Avatar
Odpovídá na Kit
samo007:

Jasné, ale v tomto prípade si myslím, že je to práve globálnou premenou jednoduchšie, pretože sa pomocou nej dajú pripojiť iné funkcie s inými objektami. Ale to už radšej nechajme. Ja totiž potrebujem odpoveď na moju predposlednú odpoveď (okrem tejto). Či a ako to (tie kódy) použijem v message?

 
Nahoru Odpovědět 23.9.2012 17:45
Avatar
Kit
Redaktor
Avatar
Odpovídá na samo007
Kit:

V jednoduchých programech mohou být globální proměnné jednodušší, ale u tvého zdůvodnění mi vstávají vlasy na hlavě. Rozumný vývojář tohle nepoužívá. K tomu slouží parametry a návratové hodnoty funkcí.

Nahoru Odpovědět 23.9.2012 17:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Redaktor
Avatar
Odpovídá na Kit
samo007:

Vlastne áno. Máš pravdu, sú tam aj iné možnosti ako prepojiť funkcie. Len ja som sa do takýchto zložitých aplikácií ešte nedostal a potrvá mi kým prídem na to ako použiť iné možnosti. Ale radšej sa vráťme k téme.

Ako to teda vložím do message?

 
Nahoru Odpovědět 23.9.2012 18:10
Avatar
TomBen
Redaktor
Avatar
Odpovídá na samo007
TomBen:

No, nevložíš. Funkce skupiny message jsou dány Game Makerem a co v nich není,
to tam nedáš. Kód, který jsme tady probírali funkci message nepotřebuje.
Pokud bys z nějakého důvodu ( nenapadá mě jakého ) nutně potřeboval použít
funkci message, musel bys zřejmě někde najít font, který má místo písmen
samé puntíky. Pak bys asi dosáhl podobného efektu.

Nahoru Odpovědět 23.9.2012 18:57
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

Objektové programování přináší náhled na aplikaci/hru jako na soustavu spolupracujících objektů. Každý objekt má nějaký stav tvořený hodnotami v jeho atributech (proměnných) a také umí vykonávat nějakou funkcionalitu (metody, v GM události a akce). Když chci zobrazit život, tak ten život někomu patří, je to něčí stav, něčí atribut. Takhle OOP (objektově orientované programování funguje) a GM ho velmi slušně podporuje a ctí, je v této oblasti překvapivě dobře navržený, umí dědičnost, přepisování metod a tak dále. Bohužel ačkoli Mark (autor) v tutoriálech uživatele k používání těchto věcí vybízí, moc lidí o nich ani neví. Ale zpátky k glob. proměnným, zde jsem chtěl jen dokázat, že GM je objektový nástroj.

Otázka nezní "Proč globální proměnné nepoužívat", zní: "Proč je používat?". Není k tomu žádný důvod a vyspělé programovací jazyky nic jako glob. proměnné ani nemají. Ten život prostě někomu patří, když ho dáš globální, protrhneš ten systém objektů a takové programování nedává smysl. To vůbec nemusíš hru do objektů rozdělovat, může být vše v jednom, všechny metody globální, všechny proměnné globální. Takto jazyky v minulosti opravdu vypadaly, naštěstí se došlo k tomu, že to vede do pekla.

Nebezpečí glob. proměnné je hlavně v tom, že když voláš nějakou funkci, tak ta funkce může měnit něco globálního a ty o tom ani nevíš. Když předáš funkci parametry a navrátí ti hodnotu, víš, kam hrabe a máš chování programu pod kontrolou. Chyb je najednou méně a jednoduše se hledají.

Dalším problémem glob. proměnných je jejich jméno, co když jich budeš mít hodně a zapomeneš, že global.c už máš a něco do ní uložíš, což rozbije úplně jiný objekt. Vše se navzájem ovlivňuje, je to ošklivé, nebezpečné, zastaralé a takhle bych mohl pokračovat.

Myslím, že jsem teď uvedl dost důvodů i příkladů, proč to nepoužívat. Nenapsal jsem jen, že to je špatně. Ještě k dotazu, proč je GM má. No protože v GM dělají hlavně neprogramátoři, spíše se v tom bastlí než programuje a globálnost patří do tohoto bastlení. Udělat životy objektově by bylo problémové v těch ikonkách, protože bys je musel nastavit nějaký objekt a to už ubírá potenciální zákazníky, co si GM koupí. Proto tam tyhle věci raději jsou, aby v tom mohlo dělat co nejvíce lidí. Obecně ale platí, že co v jazyce je není nutně správě.

V GM by se dalo dělat hezky, opravdu moc hezky. Problém je, že ti lidé ani nechtějí umět programovat a co vidím, to je bastl. Proto GM nemám rád.

Editováno 23.9.2012 23:05
Nahoru Odpovědět  +2 23.9.2012 23:04
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
samo007
Redaktor
Avatar
Odpovídá na David Čápka
samo007:

Tak teraz tomu už konečne úplne rozumiem. Budem sa snažiť ich nepoužívať, ale ešte ich nejakú dobu as budmem musieť používať, pretože nemám na programovanie až toľko času. Čas je hlavný dôvod.
Ďakujem za vysvetlenie:)

 
Nahoru Odpovědět 24.9.2012 21:16
Avatar
samo007
Redaktor
Avatar
Odpovídá na TomBen
samo007:

Vytvoril som si font, tak ako si vravel, ale nefunguje to. Dočítal som sa, že message iné fonty nepodporuje.

Ale nevadí, nastavil som tam rovnakú farbu písma ako v poli, čiže text nevidno. Musel som improvizovať, pretože mám free verziu Game-makeru a nepodporuje časti kódu, ktoré ste mi poradili.

 
Nahoru Odpovědět 24.9.2012 21:20
Avatar
Kit
Redaktor
Avatar
Odpovídá na samo007
Kit:

Už jsem to asi psal, ale možná to musím napsat znovu: Čas je hlavní důvod pro to, abys definitivně přestal používat globální proměnné. Čas, který ušetříš při vývoji s globálními proměnnými, mnohonásobně ztratíš při ladění a údržbě programu.

Nahoru Odpovědět 24.9.2012 22:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na samo007
David Čápka:

Ano, ve škole nás učili, že odstranit chybu u hotového projektu je asi 100x dražší, než jí předejít v počátečních fázích.

Nahoru Odpovědět 24.9.2012 22:56
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na samo007
TomBen:

Nevím, co jsi kde četl, ale v mojí verzi 8.0 se v message změnit font
v pohodě nechá. Např:

message_input_font('Batang',12,c_yellow,0);
get_string('Heslo:','12345');

U free verze nevím. Je celkem přirozené, že tam něco nepojede,
ale těžko říct jestli právě toto.

Nahoru Odpovědět 24.9.2012 23:11
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na samo007
David Čápka:

Nevím, v čem šetří čas psát

global.zivot

místo

hrac.zivot

?

Možná jsi myslel čas ten projekt opravit, to chápu, pokud je od začátku takhle napsaný.

Nahoru Odpovědět 24.9.2012 23:12
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Navedl jsi mne na jednu myšlenku, která ve mně dřímala od doby seznámení s globálními proměnnými Ruby: Kdyby se globální proměnné nevolaly pouhým prefixem $promenna, ale třeba klíčovým slovem global_variables_for_dummies.promenna, možná by tahle jednoduchá pakárna odradila dostatek uživatelů od používání globálních proměnných. Někdy stačí jen málo...

Nahoru Odpovědět 24.9.2012 23:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:
:D

V Ruby ani nevím, že byly. Ale určitě to šlo udělat jako @@promenna, což je statika, šlo to použít i mimo třídu.

Nahoru Odpovědět 25.9.2012 9:32
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
samo007
Redaktor
Avatar
samo007:

Jasné, už tomu rozumiem.
TomBen: Font sa mi podarilo dať do hry, ale v tom message mi to naozaj nefunguje.

 
Nahoru Odpovědět 25.9.2012 9:54
Avatar
TomBen
Redaktor
Avatar
Odpovídá na samo007
TomBen:

Pro message se používají fonty z Windows. Nejde použít resource font ze hry.
To bude možná to, s čím je problém. Tzn. mělo by stačit ho nainstalovat jako písmo.
Když ho GM uvidí ( bude ve všech nabídkách ), měl by fungovat.

Editováno 25.9.2012 10:03
Nahoru Odpovědět 25.9.2012 10:00
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
samo007
Redaktor
Avatar
Odpovídá na TomBen
samo007:

Áno, možno. Ale v ostatných pc to asi fungovať nebude :/
Jediné, že sa to pridá všade mechanicky. Alebo použiť inštalačku.

 
Nahoru Odpovědět 25.9.2012 10:07
Avatar
TomBen
Redaktor
Avatar
Odpovídá na samo007
TomBen:

JJ. To je trochu zbytečně velké harakiri.
Ono dost záleží, o čem to vlastně celé bude.

Nahoru Odpovědět 25.9.2012 10:11
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

Ono by to samozřejmě šlo i v té FREE verzi, vše se dá nahradit. Pokud nefunguje cokoli z vykreslování, stačí vykreslit sprite místo té elipsy. Pokud nefunguje ten keyboard_string, stačí si v create udělat string a v události keypress do něj připisovat tu klávesu. I kdyby to měl naklikat po písmenkách.

Nahoru Odpovědět 25.9.2012 10:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

To je pravda. Nefungují především draw_elipse_color. Ostatní by snad mohlo.

Nahoru Odpovědět 25.9.2012 10:28
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
samo007
Redaktor
Avatar
samo007:

Stále som nad tým premýšľal, že to nahradím sprite-om, ale práve teraz ma to nenapadlo. (tzv. zákon schválnosti) :D

Editováno 25.9.2012 10:35
 
Nahoru Odpovědět 25.9.2012 10:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 52 zpráv z 52.