Autor | Zpráva | ||
---|---|---|---|
Karel+ěš Profil |
#1 · Zasláno: 21. 2. 2013, 22:29:12
Mám problém s hrou, začal jsem dělat zkušební základ a ani nevim jak to nejlíp stručně popsat. prostě vypočty kodů , podmíny a td neodpovídaj výsledku :D .
Uvidite sami vše jsme popsal v kodu. 4ast kodu jsem dal do komentáře, protože neni duležitý, ale je tam takže pochopíte jeho smysl. Taky jsem tam dal ukazatel pixlů X kostky, aby jste videli jak to nesedí. Jsem začátečník, tak se nezlobte, jetli zjistíte, že by ten kod šel napsat daleko lípa dyžtak řekněte svůj nápad. díky DEJTE TO DO JEDNÉ ŠLOŽKY, MĚLO BY VÁM TO JET. . <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <script src="js/jquery.js"></script> <script src="js/hra.js"></script> <title></title> <style> #pole { width: 500px; height: 500px; border: 1px solid black; position: absolute; top: 100px; left: 300px; } #koule{ width: 50px; height: 50px; top: 190px; left: 0px; background : red; position: relative; } </style> </head> <body> <div id="pole" > <div id="koule"> </div> </div> <p id="x"></p> </body> </html> var klavesy = { stop:82, doleva : 37, nahoru : 38, doprava : 39, dolu: 40 } //ni6e proměnné, některé jsou možná nepotřebné, to neřešit. var gogo = {} var kulicka = {x : 0, y : 0} var pocetschodu = 1; var schody = []; var hodnoceni = 0; var start = false; var rychlost = 20; var gravitace; var smer = 3 ; var top = parseInt($("#koule").css("top")); // object pro budouci schody...taky ted neřešit. function schod() { this.x = 50; this.y = 200; } // nastavení intervalu $(function(){ gogo.timer = setInterval(game,1000); }); function game() { movePaddless(); } $(document).keydown(function(e){ if (e.keyCode == klavesy.doleva) {smer = 180}; if (e.keyCode == klavesy.nahoru) {smer = 90}; if (e.keyCode == klavesy.doprava) {smer = 0}; if (e.keyCode == klavesy.dolu) {smer = 270}; }); function movePaddless() { //níže podnínky pro pohyb...teď tpo důležitý if (smer == 90 ) { // DŮLEŽITÉ!!!! ...tady ten troling začíná //řešim zpomalení a pomalý přechod na pád rychlost -- ; if (rychlost == 0) { rychlost = 20; smer = 270; } var top = parseInt($("#koule").css("top")); $("#koule").css("top",top-rychlost); } if (smer == 270 ) { var top = parseInt($("#koule").css("top")); $("#koule").css("top",top+rychlost); // tady troling pokračuje ..uvidíte, že se kostka zastaví až na 240. //jakoby se to celé posunulo o 20 px, ale proč jasně //jsem mu na hoře řek, ať to skončí na 0. :D if (top == 200) { smer = 3; } } if (smer == 180) { var left = parseInt($("#koule").css("left")); $("#koule").css("left",left-rychlost); } if (smer == 0) { var left = parseInt($("#koule").css("left")); $("#koule").css("left",left+rychlost); } if (smer == 3) { var left = parseInt($("#koule").css("left")); $("#koule").css("left",left); var top = parseInt($("#koule").css("top")); $("#koule").css("top",top); } /* if (smer == 90 || smer == 180 ) { rychlost -- ; if (rychlost == 0) { rychlost = 20; smer = 270; } var top = parseInt($("#koule").css("top")); $("#koule").css("top",top-rychlost); var left = parseInt($("#koule").css("left")); $("#koule").css("left",left-rychlost); } if (smer == 0 || smer == 90) { rychlost -- ; if (rychlost == 0) { rychlost = 20; smer = 270; } var left = parseInt($("#koule").css("left")); $("#koule").css("left",left+rychlost); var top = parseInt($("#koule").css("top")); $("#koule").css("top",top-rychlost); } if (smer == 270 && smer == 180) { var left = parseInt($("#koule").css("left")); $("#koule").css("left",left-rychlost); var top = parseInt($("#koule").css("top")); $("#koule").css("top",top+rychlost); } if (smer == 270 && smer == 0) { var left = parseInt($("#koule").css("left")); $("#koule").css("left",left+rychlost); var top = parseInt($("#koule").css("top")); $("#koule").css("top",top+rychlost); } */ $("#x").html(top); } |
||
shaggy Profil |
#2 · Zasláno: 21. 2. 2013, 23:35:43
Karel+ěš:
„Uvidite sami vše jsme popsal v kodu“ Neuvidíme. Daj odkaz na živú ukážku, nikto nebude čítať 160 riadkov kódu a/alebo si to u seba spúšťať. |
||
peta Profil |
#3 · Zasláno: 22. 2. 2013, 10:20:46
Mno, nevim, co to dela. Podle kodu je to nesrozumitelne, nemas oddelenou cast vypocty a cast zobraz vysledek.
Predpokladam, ze je to jakysi druh pohybou panacka p[x,y,w,h] v ohranicenem prostoru h[x1,x2,y1,y2]. Protoze panacek ma nejakou vysku a sirku (w,h), musis s nimi pocitat do jeho polohy. Protoze rychlost pohybu se muze menit, musis s tim pocitat v podminkach a zjistit, jestli prekroci okraj nebo neprekroci a pripadne ho o ten rozdil, ktery k okraji ma, pokud je mensi nez rychlost, posunout. Nic takoveho nevidim, ze bys tam resil. if (top == 200) plati pouze pokud je top=200, neplati v pripade prekroceni top=193 nebo opacnym smerem top=207. Tva podminka umoznuje panacku pohybovat se kamkoliv, pokud se nahodou netrefi presne do top=200. Za predpokladu, ze "smer" je uhel, neni mi jasny radek smer = 3; . Za predpokladu, ze smer ne uhel, ocekaval bych, ze souradnice x,y budes pocitat pomoci Math.sin, Math.cos a ne resit pomoci if (smer==270) :)
|
||
Karel+ěš Profil |
#4 · Zasláno: 22. 2. 2013, 18:40:17
peta dik, ale to co pišeš, je z cesty. Říkal jsem že je to začatek, chtěl jsem tam udelat gravitaci a ano smer = 3 jako že se zastaví, když je na 200px.
Mě šlo o to, že ta kostka se posouvá špatně ale ne díky kodu, ja si nemůžu pomoct ale je to dobře napsaný a proto nechapu přoč když skočim přoč se zastaví až na -20 a ne na 0 jak je to v podmínce. Já jsem dám odkaz až to hodim na net. SHAGY: nechtělo se mi dávat takovou blbost na domenu, ale udelám to. Tech řádků je jen 100 :D a pulka jsou budoucí proměnné. |
||
Časová prodleva: 3 dny
|
|||
peta Profil |
#5 · Zasláno: 25. 2. 2013, 13:12:05
"peta dik, ale to co pišeš, je z cesty."
Zajimave. Jenze, rozdil je v tom, ze tve na ceste nefunguje. http://axpsu.fpf.slu.cz/~web/x/js-keyevent.htm <style> .border {width:600px;height:400px;border:2px solid #f00; position:relative; left:50px; top:50px;} .border #player {width:50px;height:50px;border:2px solid #00f; position:absolute;} </style> <body> <div class="border"><div id="player"></div></div> <script> function eventy(event) { var event = event || window.event, key = event.charCode || event.keyCode || event.which || null; switch (key) { case 37: // key left player.moveSet(180); break; case 38: // key up player.moveSet(90); break; case 39: // key right player.moveSet(0); break; case 40: // key down player.moveSet(270); break; case 82: // stop key player.stopDo(); break; deafult: break; // deafult: return false; break; } //return true; } function desetiny(n) { var m = Math.abs(n); return m>n ? -Math.floor(m) : Math.floor(n); } function newPlayer(id) { var that = this; this.speed = 10; this.angle = 0; this.x = 0; this.y = 0; this.w = 50; this.h = 50; this.moveSet = function(angle) { this.angle = angle; this.speedangle = { x: desetiny(this.speed * Math.cos(this.angle * Math.PI / 180)), y: - desetiny(this.speed * Math.sin(this.angle * Math.PI / 180)) }; this.moveDo(); }; this.moveDo = function() { this.timerStop(); var x = this.x, y = this.y; x += this.speedangle.x; y += this.speedangle.y; if (world.border[0]<=x && x<=world.border[2]-this.w && world.border[1]<=y && y<=world.border[3]-this.h) { this.x = x; this.y = y; this.show(); this.timerStart(); } }; this.stopDo = function() { this.timerStop(); }; this.obj = document.getElementById(id); this.show = function() { this.obj.style.left = this.x + 'px'; this.obj.style.top = this.y + 'px'; }; this.timer = null; this.timerspeed = 100; this.timerStop = function() { clearTimeout(this.timer); this.timer = null; }; this.timerStart= function() { if (this.timer==null) { this.timer = window.setTimeout(function(){that.moveDo()},this.timerspeed); } }; }; var world = { border: [0,0,600,400] }; var player = new newPlayer('player'); document.onkeydown = eventy; </script> </body> |
||
Časová prodleva: 11 let
|
0