Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Hirttopuuhun pistelasku (JS)

feder [18.05.2012 17:27:26]

#

Olen tehnyt hirttopuu-pelin javascriptillä, mutta siitä puuttuu vielä pistelasku. Miten tuo pistelasku onnistuisi yksinkertaisimmin? Minulla on score-muuttuja pistelaskua varten. Jos pelin haluaa aloittaa alusta pitää sivu ladata uudelleen ja score-muuttuja nollautuu. Sen voi varmaankin tallentaa evästeisiin, mutta koodi on liian monimutkainen noin yksinkertaisen toiminnon tekemiseen, ainakin näkemäni esimerkit.

Metabolix [18.05.2012 17:51:08]

#

Tee peli niin, ettei sivua tarvitse koskaan ladata uudestaan.

feder [18.05.2012 18:55:41]

#

Sitäkin vaihtoehtoa mietin mutta en saa peliä toimimaan. Pistelasku toimii mutta koodi ei piirrä aakkosia tai arvattavaa sanaa uudelleen. setupgame pitäisi varmaan jakaa kahteen funktioon, mutta mitä muuta pitää korjata?

Tämän verran pääsin eteenpäin. Nyt se luo kirjaimet, mutta alempi funktio ei toimi oikein. Se ei ilmeisesti muuta luokkaa blanksiksi, koska vanha sana pysyy takana.

function setupgame() {
	var i;
	var x;
	var y;
	var uniqueid;
	var id = this.id;
	var an = alphabet.length;
	lettersguessed = 0;
	image = 1;
	countdown = 10;
	for(i=0;i<an;i++) {

		uniqueid = "a"+String(i);
		d = document.createElement('alphabet');
    	d.innerHTML = (
	      "<div class='letters' id='"+uniqueid+"'>"+alphabet[i]+"</div>");
		document.body.appendChild(d);
		thingelem = document.getElementById(uniqueid);
		x = alphabetx + alphabetwidth*i;
		y = alphabety;
		thingelem.style.top = String(y)+"px";
		thingelem.style.left = String(x)+"px";
		thingelem.addEventListener('click',pickelement,false);
		thingelem.style.display = "block";

	}
	setupword();
}
function setupword() {
	for (i=0;i<secret.length;i++) {
		uniqueid = "s"+String(i);
		d = document.createElement('secret');
    	d.innerHTML = (
	      "<div class='blanks' id='"+uniqueid+"'> _ </div>");
		document.body.appendChild(d);
		thingelem = document.getElementById(uniqueid);
		x = secretx + secretwidth*i;
		y = secrety;
		thingelem.style.top = String(y)+"px";
		thingelem.style.left = String(x)+"px";
	}
	draw();
	cur++;
	return false;
}

feder [21.05.2012 15:45:51]

#

Olen varmaankin nyt ongelman juurilla, mutta en osaa korjata sitä. Funktio joka paljastaa kirjaimet, muuttaa siis viivat tekstielemenetiksi. Setupword-funktion pitäisi siis poistaa tekstielementti, mutta miten se onnistuu?

if (picked==secret[i]) {
	id = "s"+String(i);
	document.getElementById(id).textContent = picked;
}

feder [21.05.2012 21:49:09]

#

Kukaan ei vissiin osaa tehdä hirttopuuta?

Lebe80 [21.05.2012 22:04:49]

#

Ei. Kerran joku yritti, mutta päättikin tehdä astetta helpomman ja koodasi CryEnginen.

Metabolix [21.05.2012 23:21:34]

#

Laita koko homma bodyn sijasta johonkin diviin, ja kun aloitat pelin, tyhjennä ensin kyseinen div.

Olet varmaan ymmärtänyt createElement-funktion aivan väärin. Sillä ei ole tarkoitus luoda mielivaltaisia elementtejä eikä antaa elementeille nimiä, vaan createElement("div") luo samanlaisen elementin kuin HTML-koodi <div></div>.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta