NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
samo007
Tvůrce
Avatar
samo007:23.9.2012 9:32

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 Hartinger
Vlastník
Avatar
Odpovídá na samo007
David Hartinger:23.9.2012 10:36

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

Nahoru Odpovědět
23.9.2012 10:36
New kid back on the block with a R.I.P
Avatar
samo007
Tvůrce
Avatar
Odpovídá na David Hartinger
samo007:23.9.2012 12:28

Akože v inom jazyku?

 
Nahoru Odpovědět
23.9.2012 12:28
Avatar
TomBen
Tvůrce
Avatar
TomBen:23.9.2012 12:53

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
Tvůrce
Avatar
Odpovídá na TomBen
samo007:23.9.2012 13:50

Ďakujem, skúsim to.

 
Nahoru Odpovědět
23.9.2012 13:50
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:23.9.2012 14:19

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
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:23.9.2012 14:54

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
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:23.9.2012 14:59

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 Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:23.9.2012 15:08

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
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:23.9.2012 15:10

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 Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:23.9.2012 15:15

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

Nahoru Odpovědět
23.9.2012 15:15
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:23.9.2012 15:22

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
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:23.9.2012 15:27

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
Tvůrce
Avatar
Odpovídá na Kit
TomBen:23.9.2012 15:27

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
Tvůrce
Avatar
Odpovídá na TomBen
Kit:23.9.2012 15:32

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
Tvůrce
Avatar
TomBen:23.9.2012 15:34

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 Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:23.9.2012 15:35

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
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:23.9.2012 15:41

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
23.9.2012 15:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Kit
TomBen:23.9.2012 15:45

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 Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:23.9.2012 15:50

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
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:23.9.2012 15:51

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

Nahoru Odpovědět
23.9.2012 15:51
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:23.9.2012 16:04

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
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:23.9.2012 16:11

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
Tvůrce
Avatar
TomBen:23.9.2012 16:21

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
Tvůrce
Avatar
Odpovídá na TomBen
Kit:23.9.2012 16:32

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
Tvůrce
Avatar
Odpovídá na Kit
TomBen:23.9.2012 16:38

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
Tvůrce
Avatar
Odpovídá na TomBen
Kit:23.9.2012 16:54

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
Tvůrce
Avatar
Odpovídá na Kit
TomBen:23.9.2012 17:04

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

Nahoru Odpovědět
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
Tvůrce
Avatar
Odpovídá na TomBen
Kit:23.9.2012 17:18

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
Tvůrce
Avatar
samo007:23.9.2012 17:19

Ď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
Tvůrce
Avatar
Odpovídá na Kit
samo007:23.9.2012 17:25

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
Tvůrce
Avatar
Odpovídá na samo007
Kit:23.9.2012 17:35

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
Tvůrce
Avatar
Odpovídá na Kit
samo007:23.9.2012 17:45

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
Tvůrce
Avatar
Odpovídá na samo007
Kit:23.9.2012 17:55

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
Tvůrce
Avatar
Odpovídá na Kit
samo007:23.9.2012 18:10

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
Tvůrce
Avatar
Odpovídá na samo007
TomBen:23.9.2012 18:57

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 Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:23.9.2012 23:04

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
23.9.2012 23:04
New kid back on the block with a R.I.P
Avatar
samo007
Tvůrce
Avatar
Odpovídá na David Hartinger
samo007:24.9.2012 21:16

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
Tvůrce
Avatar
Odpovídá na TomBen
samo007:24.9.2012 21:20

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
Tvůrce
Avatar
Odpovídá na samo007
Kit:24.9.2012 22:51

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 Hartinger
Vlastník
Avatar
Odpovídá na samo007
David Hartinger:24.9.2012 22:56

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
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na samo007
TomBen:24.9.2012 23:11

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 Hartinger
Vlastník
Avatar
Odpovídá na samo007
David Hartinger:24.9.2012 23:12

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
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:24.9.2012 23:25

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 Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:25.9.2012 9:32
: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
New kid back on the block with a R.I.P
Avatar
samo007
Tvůrce
Avatar
samo007:25.9.2012 9:54

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
Tvůrce
Avatar
Odpovídá na samo007
TomBen:25.9.2012 10:00

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
Tvůrce
Avatar
Odpovídá na TomBen
samo007:25.9.2012 10:07

Á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
Tvůrce
Avatar
Odpovídá na samo007
TomBen:25.9.2012 10:11

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 Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:25.9.2012 10:16

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
New kid back on the block with a R.I.P
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 50 zpráv z 52.