Autor Zpráva
maty78
Profil
Ahoj všichni,
před pár dny jsem dostal knížku na programování (Tvořte kody - navrhněte vlastní hru). Vše se terpve učím, no tak to přepisuji a prohlížeč napíše toto: Uncaught ReferenceError: image is not defined at start. Můžete mi prosím poradit co mám špatně, kod můžu klidně přeposlat. Píšu to v poznámkovém editoru. Děkuji moc

maty :)
lionel messi
Profil
maty78:

Môžeme a radi poradíme, nemáme však krištáľovú guľu a traja králi namiesto nových HTML elementov a JavaScriptových funkcií zrejme prinesú len zlato, kadidlo a myrhu.

Nahraj ten kód trebárs sem.

Viď aj debatu o živých ukážkach.
maty78
Profil
lionel messi:
nic to neudělalo, stále to píše chybu. pošlu odkaz



lionel messi:
odkaz -) Hra - živá ukázka
Tomášeek
Profil
maty78:
Přečti si něco o platnosti proměnných, kontextech (uvnitř a vně funkcí).
maty78
Profil
přidám další a zase vyskočí ta chyba a obrázek se stále nezobrauje :(


Tomášeek:

díval jsi se na ten kod? poslal jsem odkaz


odkaz na ted udělanou verzi (něco připsáno) : Hra - živá ukázka
odkaz na verzi kterou jsem posílal na začátku vlákna: Hra - živá ukázka
:D
Tomášeek
Profil
maty78:
díval jsi se na ten kod? poslal jsem odkaz
Ano, koukal.

můžete mi sakra někdo prosím poradit co mám špatně :)
Přečti si znovu #4. Ano, nedávám it tu k dispozici celý kód, ale aspoň víš, co hledat. Bude se ti to do budoucna hodit.
maty78
Profil
Tomášeek:
a co tam mám za chybu? proč to pořád píše Uncaught ReferenceError: image is not defined ???
můžeš ten kod překontrolovat prosím :)
Tomášeek
Profil
maty78:
a co tam mám za chybu?
Nedefinovanou proměnnou uvnitř funkce. Přečti si znovu #4, resp. „něco o platnosti proměnných, kontextech.“.

Věnuj chvilku času (samo)studiu, víš, co máš hledat.
Keeehi
Profil
maty78:
Proměnou (image), kterou vytvoříš (var image = ...) ve funkci (start), je viditelná jen v rámci té funkce. Takže není vidět ve funkci loop.
Jinak několikrát tam vytváříš funkci start. Ty nové vždy přepíšou chování té staré funkce. Bylo by dobré, aby jsi ty funkce pojmenovával vždy unikátně, protože jinak se z toho zblázníš.

Píšu to v poznámkovém editoru.
Tak jsme začínali asi všichni. A víceméně na tom ani není nic špatného. Doporučil bych ti ale si nainstalovat nějaký editor pro vývojáře. Ten ti bude zvýrazňovat syntaxi (lépe se orientuje v textu), upozorní tě na překlepy, bude ti napovídat jména funkcí a proměnných, a spoustu dalších užitečných věcí. Není to nutnost ale obrovsky to usnadňuje práci. Spousta je jich i zadarmo, takže si určitě vybereš.
maty78
Profil
Keeehi:
ahoj díky za odpověď a radu. ale moc to nechápu jak jsi to popsal , za tož se omlouvám dělám to 2 dny a je mi 11..

Doporučil bych ti ale si nainstalovat nějaký editor pro vývojáře.
znáš nějaký? jestli ano tak napiš název. děkuji :)

maty


Keeehi:
ale jestli ještě můžu, tak mám problém. jakmile kod otevřu v prohlížeci otevře se mi jenom modrá obrazovka a hra nikde, přitom konzole píše že mám všechno správně. Ale udivuje mně že konzole občas píše že je chyba v řádku který je prázdný. diky

maty
Tomášeek
Profil
maty78:
znáš nějaký? jestli ano tak napiš název. děkuji :)
Znáš Google? Je jich přehršel, zkus prohledat i zdejší diskusi, kde se podobný dotaz historicky vyskytl milionkrát.

moc to nechápu jak jsi to popsal
Je to popsané dobře. Zkus se podívat na příklad s komentářem pod ním na Scope v JavaScriptu. To je to, oč tu jde. Pokud ani takto ne, tak doporučuji nějakou knihu o JS, případně online manuál. A studium pěkně do začátku.
maty78
Profil
Tomášeek:
diky stahnul jsem si notepad ++ a PSPAD ale moc se v tom nedokážu orienovat
asi si vyberu z toho PSPAD, notepad++ totiž nemá html zobrazení. nebo poradte jaký je lepší

diky
maty


jinak Tomášeek a Keeehi teď jsem tam něco připsal
odkaz --> Ninja Go - živá ukázka podivejte se tam dole uvidite ze z toho kodu vychazi jenom modre pole, ne hra :) zkusim se na to jeste podivat
lionel messi
Profil
maty78:

Ak chceš naozaj iba editor a nerobí ti problém angličtina, tak pokiaľ ide o rozmanitosť pokročilých funkcií, nenájdeš nič lepšie než Sublime Text.

Ak ťa programovanie chytí viac, zrejme ťa bude časom zaujímať ešte pokročilejší softvér, tzv. IDE. Spomedzi tých, ktoré sú zadarmo, by som ti odporučil NetBeans (len nie je síce celkom na mieru pre Javascript). Skvelý na PHP je aj PHPStorm, len nie je zadarmo, i keď pre študentov by malo byť možné ho zadarmo legálne získať, skús pohľadať. Taktiež si nie som istý, ako PHPStorm zvláda prácu s Javascriptom, nikdy som v ňom nepracoval.

Tiež odporúčam diskusiu Jaký editor pro PHP (přehled editorů). Venuje sa síce editorom/IDE z hľadiska PHP, ale na tom až tak nezáleží.

ale moc to nechápu jak jsi to popsal

Keeehi aj Tomášeek to vysvetlili veľmi dobre, skúsim ti to ešte trochu priblížiť.

Celý svoj kód si skús predstaviť ako jedno poschodie domu s rôznymi miestnosťami a jednotlivé premenné ako ľudí. To, čo je mimo funkcií je ako priestranná chodba napr. v škole cez veľkú prestávku. Je v nej veľa ľudí (premenných), ktorí sa navzájom vidia a môžu si odovzdávať informácie (napr. keď sa prechádzaš po chodbe, stretneš kamaráta a začnete sa baviť trebárs o hokeji alebo o tom, čo bude na obed). Ak pôjde niekto okolo (ďalšia premenná), uvidí vás a bude počuť váš rozhovor.

Funkcie sú jednotlivé miestnosti. Sú okien so zamknutými dverami, od ktorých nikto nemá kľúč, a povedzme, že cez steny nič nepočuť, teda ľudia (premenné) nachádzajúci sa („uzatvorení“) v tejto miestnosti/funkcii nevidia tých na chodbe (premenné mimo funkcie) ani v iných miestnostiach a nemôžu sa spolu baviť — z vášho rozhovoru sa teda nedozvedia, že juniorským majstrom sveta v hokeji je Kanada a na obed budú klopsy na smotane.

Existuje jedna* fajn možnosť, ako sa s ľuďmi v miestnosti spojiť a odovzdať im potrebnú informáciu. Predstav si, že pod dvere možno prestrčiť papierik s informáciou, napr. „Stiahol som si PSPad. maty“, teda človek v (takmer) izolovanej miestnosti sa dozvie všetko potrebné. To sú tzv. argumenty alebo parametre funkcie. Majme kód:

function nasobDvomi(cislo) {
  return cislo * 2;
}

To cislo je tzv. parameter alebo argument, teda niekde ďalej v kóde môžeš spraviť toto:

var vek = 11;
console.log(nasobDvomi(vek));

A do konzoly sa uloží 22, teda funkcia dostane informáciu, čo je v premennej vek.

*) Globálne premenné z dôvodu jednoduchosti nechávam úmyselne bokom.


maty78:
z toho kodu vychazi jenom modre pole, ne hra :)

Vo funkcii draw znovu nikde nemáš definovanú premennú pozadiX (zachytí to aj konzola).
maty78
Profil
lionel messi:
Děkuji moc za vysvětlení, už to asi chápu :)

Vo funkcii draw znovu nikde nemáš definovanú premennú pozadiX (zachytí to aj konzola).
a jak ji mám definovat? jakým příkazem?

omlouvám se :D
maty


lionel messi:
píšu to podle knihy Tvořte kody: Navrhněte vlastní hru (najdi si na na webu) takže jsem předpokládal že to mají dobře, asi ne.
Ale jsme lidi, ne roboti takže se každý může spést. :/

maty
lionel messi
Profil
maty78:

a jak ji mám definovat? jakým příkazem?

Premenné sa v Javascripte definujú nasledujúcim príkazom:

var nazovPremennej = hodnotaPremennej;

Druhou možnosťou je pristupovať k pozadiX ako k parametru (čiže by si definoval draw(pozadiX) a pri volaní funkcie draw(hodnotaParametru) (ako aj ten príklad s vekom v [#13]).
maty78
Profil
lionel messi:
chápu díky


lionel messi:
přeměnnou jsem napsal, opravil konzole píše že mám vše dobře ale stále se zobrazuje jenom modrá a zelená, fotka (background.png) se nezobrazuje..

maty
maty78
Profil
hele znáte někdo nějaký online kurz HTML? v té knize mají podle mně nějaké věci špatně takže to nefunguje :(

diky za odpoved
maty
Tomášeek
Profil
maty78:
Sorry, to, že ti je jedenáct, ti nebrání trochu samostudovat (a hledat). Kurzů HTML je hafo, v různé kvalitě. Co začít třeba na JPW? Až ti bude JPW malý, porozhlídni se dále.

Pokud chceš tvořit weby, musíš umět pracovat s Googlem. Bude se ti hodit i angličtina, pokročilejší věci v češtině moc nejsou. Každopádně tato diskuse slouží k tomu, aby ti pomohla s konkrétním problémem, není technicky dost dobře možné, aby tě tu krok po kroku vedla za ručičku.
lionel messi
Profil
maty78:
lionel messi:
přeměnnou jsem napsal, opravil konzole píše že mám vše dobře ale stále se zobrazuje jenom modrá a zelená, fotka (background.png) se nezobrazuje..

Nikde nevidím aktuálnu verziu kódu, posledná verzia [#12] je ešte s tou nedefinovanou premennou.

v té knize mají podle mně nějaké věci špatně takže to nefunguje

Je to pokojne možné. Aj do inak kvalitnej knihy sa môžu dostať chyby.

hele znáte někdo nějaký online kurz HTML?

Základy HTML a CSS sú výborne popísané na jakpsatweb.cz, nové trendy a vymoženosti (a starosti) HTML 5/CSS 3 už menej, na to mám radšej Str4wberryho jecas.cz (to ale nie je systematický kurz od základov, skôr zápisník plný užitočných článkov). Plus k tomu kopa anglických zdrojov. Malé upozornenie: vyhol by som sa w3schools.com.

Z toho, čo tu celý čas riešime, mám však pocit, že ťa oveľa väčšmi než HTML bude zaujímať Javascript. K nemu nájdeš základy na už odkázaných stránkach, spomedzi anglických stránok by som skúsil stránku Mozilly (je tam aj kvalitná dokumentácia HTML a CSS vrátane nových funkcionanlít) ako učebnicu a komplexnú dokumentáciu jazyka. Za pokus možno ešte stojí aj javascript.info.

Spomedzi českých zdrojov žiadny komplexnejší a odporúčania hodný materiál nepoznám, bez angličtiny to v tejto oblasti jednoducho veľmi nejde.

Kedysi (odhadom okolo rokov 2012 – 2014) mal tunajší odborník na Javascript Chamurappi v pláne vytvoriť učebnicu Javascriptu, nikdy však nič z nej nezverejnil a keďže momentálne nie je na diskusii príliš aktívny, nemožno očakávať zásadnú zmenu.
maty78
Profil
lionel messi:
děkuji.
maty


hele máte někdo nápad co bych měl dát na svůj web? o čem by měl být?

diky moc
maty :)
Keeehi
Profil
maty78:
píšu to podle knihy Tvořte kody: Navrhněte vlastní hru (najdi si na na webu) takže jsem předpokládal že to mají dobře, asi ne.
Tak teoreticky tam chyba být může, ale spíš ne. Ten tvůj kód je plný různých chyb. To není nějaký jeden překlep z knihy, který by to celé rozbil. Spíš si myslím, že to bude dusledek té části, kde čtenáře navádí, aby s kódem různě experimentovali. Experimentování je samozřejmě dobré, protože si to ošaháš a lépe poznáš jak co funguje. Ovšem než půjdeš dál, tak se vždy musíš vrátit přesně k tomu kódu z knihy. Ta kniha nemůže vědět, co jsi kde změnil.
maty78
Profil
lionel messi:
nová verze --> Ninja Go - živá ukázka
lionel messi
Profil
maty78:

Myslím si, že momentálne by si sa naozaj mal zamerať na pochopenie základov a logiky Javascriptu. Ako tento programovací jazyk funguje, čo v ňom má zmysel robiť a čo nie, ako fungujú premenné, dátové typy, podmienky, cykly, polia, objekty... Potom sa pohneme ďalej. Momentálne sme v situácii, keď máš kód plný chýb, jednu odstrániš po našej rade, vyskočí však ďalšia, týmto spôsobom sa naozaj veľa nenaučíš. Efektívnejšie by naozaj bolo otvoriť si nejakú učebnicu (či už tlačenú, alebo online). Odkazy, ktoré som tu dal v [#19], si si prešiel? Máš tam aj dobré zdroje o Javascripte.

Ak chceš niečo vytvoriť, musíš poznať jednotlivé technológie. Čím lepšie, tým lepšie pre teba aj výsledok tvojej práce. Ak chceš hrať futbal, tiež musíš najprv ovládať pravidlá (dozvieš sa v nich napríklad to, že hra rukou nie je povolená).

Áno, každý chlapec chce dať gól ako Cristiano Ronaldo, ale najprv musí trénovať hlavičky a prihrávky na malom priestore a iné, ďaleko nudnejšie cvičenia. Ak by Ronaldo tvrdo nemakal, nikdy by podobný gól nestrelil (sny nepočítam).

Ak sa neprelúskaš základmi jazyka, nikdy žiadnu hru nevytvoríš. Ak sa mu budeš venovať, máš šancu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0