Autor Zpráva
Programxm
Profil
Ahoj když se mi nepodařila ta střílečka byla z toho matlanice tak jsem si vnukl myšlenku na Minecraft 2D (možná ale možná 3D)v javascriptu.
Vytvořil jsem si ukázku dám vám jí tu a bylo to složíté ale napůl jednoduché. Teď nepotřebuji hned nějakou pomoc jen jsem vám to chtěl říct.
Vypadalo to takle:

<script src=engine/game.js>
<div id=game>

javascriptem se generovala složitě hra

</div>
<div style="text-align: center;">
<u onclick=jup()>Jump</u>
<u onclick=left()>Left</u> <u onclick=right()>Right</u>


Bloky se generují javascriptem do divu s ídéčkem game pomocí tagu img s vlastností onclick.
Asi takhle:

document.getElementById("game").innerHTML=map
map="<img src=blocks/a.png onclick=this.src=blocks/nic.png>" + to same + to same asi dvacetkrát...

Samozřejmě jsem to kopíroval jinak bych si u

Pak jsem si udělal img s ídéčkem player kterého jsem pozicoval pomocí CSS

Zbytek dopíšu potom...
lorin
Profil
Kde je ukázka?
Chamurappi
Profil
Reaguji na Programxma:
Teď nepotřebuji hned nějakou pomoc jen jsem vám to chtěl říct.
Děkujeme.
Scyllot
Profil
Tak az to v tom roce 3024 bude fungovat, tak urcite napis znova.
1Pupik1989
Profil
No jo, fakt hustě udělané. A já se rady patlám s nějakým enginem, když stačí 2 řádky. :D
Anonymní
Profil *
Bože už fakt nechci slyšet slovo minecraft.
Každopádně pokud máš zapotřebí dělat podobné kraviny nauč se nějaký programovací jazyk a nedělej podobně potenciálně náročnější věci aby běželi v prohlížeči, ale aby to byla klasická aplikace, nejlepší prog. jazyk na tyto účely je C++(vzhledem k tomu, že si rád, že jsi vůbec pochopil základy HTML, tak tohle bude pro tebe fakt chuťovka), každopádně pokud se naučíš C#,VB či třeba Javu(v té je tuším napsaný minecraft) tak tím asi taky nic nezkazíš. Nehledě na tom, že musíš ukládat nějaké data na server, takže ano je zapotřebí databáze a serverový jazyk, propojit to ještě s tímhle to bude fakt srandička. Ale určitě se s tím popereš, ale spíše bych řekl, že nám tady za měsíc napíšeš, jaká z toho tvého minecraftu vznikla matlanice.

Víš co by bylo možná nej? Sehnat si nějaký již udělaný engine. Za zmínku rozhodně stojí Unity3D, tuším že to podporuje psaní i v javascriptu, ale počítej s tím, že ti z toho vyleze totální, jak ty říkáš "matlanice", protože i na toto musíš mít nějaké základy programování.

Takže buď můžeš dělat kraviny a prostě vytvářet něco co se ani zdaleka nepodobá žádnému zdrojovému kódu, natož hře, nebo si sehnat knihu, či nějakou dobrou webovou stránku a začít se učit JS od začátku, je to na tobě
Naf
Profil *
Ty máš talent.
Jedno z toho budou šílený ptáci.
Batrachus
Profil
<u> jako klikatelný odkaz. Geniální. Mimochodem, až tak budeš mít stovky funkcí typu left() a right(), naprosto se v tom nevyznáš.
Programxm
Profil
Batrachus
Ty příkazy tam a jsou jednoduché:

function right(){
document.getElementById("player").style.left=playerx

playerx+=10

}

playerx=0



Odkaz na demo je http://minecraft2d.czweb.org/menu/hra.htm


Jestli se ale někdo chce podílet na mém projektu tak napište.
Programxm
Profil
Kolize

Snažil jsem se udělat kolizi ale, vůbec mi to nešlo. Tak samo mi nešlo udělat padání--škoda.
Jestli vás někoho napadlo jak to udělat moc by mi to pomohlo.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Každý den aktualizuji web i s novou verzí zkoušky hry takže nemáte dlouhé čekání.
Chamurappi
Profil
Reaguji na Programxma:
Což takhle si vzít menší sousto? Nabrat nějaké zkušenosti na něčem jednodušším…?

Každý den aktualizuji web i s novou verzí
Nedal jsi sem klikatelný odkaz, takže se na něj nekoukne moc lidí.

Kolize jde zjišťovat cca třemi různými způsoby, v závislosti na typu hry. Pokud jsi ve čtvercové mřížce, tak předpokládám, že máš její stav uložený v nějakém poli — můžeš se tedy podívat do místa, na němž by se přesouvaný objekt měl ocitnout a pokud na něm už něco je, nedávat ho tam.
1Pupik1989
Profil
Jak píše chamurappi. Nesměřuje-li objekt na objekt, pak nemají kolizní dráhu. Pokud ano, tak začni počítat. ve 2d je to jednoduché. I ve 3d je to naprosto jednoduché. Pokud bod A je v útvaru B tak vzniká kolize. To je vlastně základní pravidlo, kterému musíš předejít. Pokud to má být minecraft, tak ti víc nehrozí. Tam se dají počítat kolize včas. U 1000 hraném polygonu ale ve 2d by to bylo pomalé, zvol radši webgl.
Programxm
Profil
1Pupik1989:
Ale jak bys v javascriptu udělal například bych chtěl zjistit jestli má blok pod playerem src takovou a takovou
tak se player posune o 10 pixelů dolů.
Programxm
Profil
[a href="Minecraft 2D.org
Navštivte tento web jestli se chcete dozvědět více.
Jan Tvrdík
Profil
Programxm:
Začni tím, že si nastuduješ, jak se v JS dělá pole a následně dvourozměrné pole. V tom poli uchovávej, co se nachází na daných souřadnicích.
shaggy
Profil
Programxm:
Navštivte tento web jestli se chcete dozvědět více.
Čo viac? Prečo nás spamuješ zbytočnými a nekonštruktívnymi príspevkami?
Pre teraz zabudni na štúdium JS, neuč sa ani polia a začni sa učiť úplné základy. Stiahol som si ten tvoj nepodarok a mám z neho pocit, že máš problém pochopiť aj tak triviálnu vec, ako je html, javascript je na teba príliš veľké sústo.

Neviem, či ti to ešte nikto nepovedal, ale tvoj výtvor nie je ani náhodou hra. Je to nepodarok, zlá, nefunkčná stránka, ktorá by chcela raz byť hrou, ale má od nej tak ďaleko, ako dinosaurus od ropy.
Osobne sa čudujem, že táto téma prežila (už prvý príspevok nedával zmysel).
Programxm
Profil
Tak a jsou tu novinky
--------------------------------------------------
Právě jsem dokončil novou verzi hry a dodal jsem k ní hodně věcí... bez obrázků by jsem se neobešel.
Hlavně mě napadlo jak by šel udělat jednoduše multiplayer.

Napadlo mě že by šlo udělat že se vytvoří na jednom počítači server a ten by všechna data odesílal na nějakou
stránku a pak se hráč připojí a bude jakoby "číst" ty data.


Více na minecraft2d.czweb.org
Medvídek
Profil
Stáhl jsem to, spustil a hned v první vteřině: document.getElementById(...) is null

Vyzkoušet jsem to chtěl, ale nepovedlo se.

TypeError: document.getElementById(...) is null
    

document.getElementById('file').style.display='block'

game.js (řádek 253)
TypeError: document.getElementById(...) is null
    

document.getElementById('player').style.top=playery + 'px'

game.js (řádek 140)
TypeError: document.getElementById(...) is null
    

document.getElementById('player').src='mobs/steve.png'

game.js (řádek 118)
TypeError: document.getElementById(...) is null
    

document.getElementById('player').src='mobs/steve2.png'
Programxm
Profil
Medvídek:

Divné. Mě to funguje dobře... a nebyla to normal mapa ??? Můžeš zkusit tlačítko "superflat".

Nebo si to otevři v jinem prohlížeči --- v jakém to máš ???

Já používám GOOGLE CHROME, a funguje tam všechno. Testoval jsem i explorer a tam to funguje dobře.
Medvídek
Profil
Programxm:
Já zkoušel default, přijde mi divný nabízet ovládání ve chvíli, kdy nefunguje.
V superflatu t již chybu neháže, každopádně se mi pomocí jumpu podařilo dostat mimo prohlížeč :)

Při pokusu o zapnutí default mapy to píše:

TypeError: onload is not a function
onload()
okolojsoucí
Profil
Zajímavé jak se počítá FPS
system= new Object()

system.fps=10

document.write("FPS: <span id=fps>" + system.fps + "</span>")

setInterval("fps()", 1000)

system.fpsEnabled=true

function fps(){
if(system.fpsEnabled == true){
if(system.fps <= 20) system.fps++
}
else {
system.fps--
}
if(system.fps == 20) system.fpsEnabled=false
if(system.fps == 12) system.fpsEnabled=true
document.getElementById('fps').innerHTML=system.fps
}
Medvídek
Profil
okolojsoucí:
Na to jsem koukal, ani ani jsem se nenamáhal koukat do zdrojáku, jelikož to byla očividně kravina :)
okolojsoucí
Profil
Medvídek:
Mě to totiž bylo divný že bych měl tak málo FPS :) Tak mě napadlo když je to „open-source“ tak tajně nahlédnout, a vida chyba je na světě :)
Joker
Profil
Mám otázku, prozatím jsme lidem neumožňovali si tu vést blog o tom, jak se učí programovat. Vyžadovali jsme, aby se jedno vlákno týkalo jednoho konkrétního problému.
Děláme teď z nějakého důvodu výjimku?
Programxm
Profil
Medvídek:
Zkus stisknout CTRL + SHIFT + J a zadej onload()


A s tím FPS to jsem zatím jenom zkoušel PARDON jestli vás to zmátlo. (-:
Anonymní
Profil *
Já nechápu co má tohle téma za smysl. Chce Programxm slyšet jak je suprový, že dělá tak dobrou hru, nebo chce vyhledat chyby v daném kódu? Tak či tak jak psal Joker tady to fakt asi není blog. Pokud tohle máš zapotřebí nejednodušší řešení je si založit stránku na FB nahnat tam nějaké potenciální fanoušky a prostě novinky psát tam.

Každopádně z mé vlastní zkušenosti vím, že dělat kopii(ještě k tomu nepovedenou) něčeho co je nehorázně úspěšné(což rozhodně minecraft je) je prostě zbytečná ztráta času. Vzhledem k tomu jak to děláš tak pochybuji že to dokončíš do zdárného konce a pokud to náhodou dokončíš a hra se stane trošku úspěšnější hned někdo bude řvát ohledně autorských práv.
Takže moje návrhy zní: Založ si stránku na FB, vymysli úplně nový projekt, nauč se aspoň minimálně programovat v jazyce ve kterém to děláš(javascript) a pak začni uvažovat o nějaké hře, protože fakt v dnešní době neznám člověka, který by hru místo šipkami(či třeba klasickýcm wsad) ovládal pomocí kliknutí na odkaz "left", "right", "jump.
Programxm
Profil
Anonymní:
Celkem dik za radu, ale ta hra se dá ovládat i číslama-pokud tedy máte NUM klávesnici.

No nic, tak ahoj.


Programxm již nebude na toto téma dlouho přispívat.
okolojsoucí
Profil
Programxm:
Programxm již nebude na toto téma dlouho přispívat.

A koho to zajímá?
Anonymní
Profil *
Programxm:
pokud tedy máte NUM klávesnici.
Ano velmi logické, proč hru ovládat šipkami, které jsou na každé klávesnici, když to lze ovládat numerickou klávesnicí, která se naopak u některých notebooků nenachází. Stejně tak je velmi logické že se skáče 2, kde je nakreslená šipka dolu když většinou skok je spíše pohyb nahoru. Ale jinak fajn.. Příště více uvažuj, nevymýšlej kraviny i v tom ovládání, nevím jestli se mravy změnily ale logické ovládání je buď šipky, nebo wasd, vzhledem k tomu že se jedná o 2D hru raději bych kombinoval šipky doprava doleva, skok třeba mezerníkem, na to jsou hráči zvyklí.


Programxm již nebude na toto téma dlouho přispívat.
Bomba, jsem zvědavý jak dlouho ti to vydrží..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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