Onclick spel van startscherm naar spelscherm fout

Status
Niet open voor verdere reacties.

herowarfare

Gebruiker
Lid geworden
19 jan 2013
Berichten
5
ik maak een shooter spel, en probeer dus op mijn startscherm een .png plaatje als .onclick te plaatsen zodat hij door word gelinkt naar het spelscherm in het canvas (+ nog een gameover scherm) maar ik kom niet verder dan het start scherm.. verder zitten alle benodigde elementen er al in:


Code:
// JavaScript Document
var wolk1NaarRechts = -200;
var wolk2NaarRechts = -1024;
var wolk3NaarRechts = 0;
var wolk4NaarRechts = -800;
var wolk1imp = new Image();
var wolk2imp = new Image();
var wolk3imp = new Image();
var wolk4imp = new Image();
var canvas;
var stage;
var cartmanimg;
var cartman;
var sterimg;
var ster;
var vijandimg;
var vijand;
var levenimg;
var leven;
var startimg;
var start;
var herlaadimg;
var herlaad;
var killsTxt = new Text(kills, "30px OrsonCasual", "#fff");
var levensTxt = new Text(levens, "30px OrsonCasual", "#fff");

var timer = 0;
var kills = 0;
var levens = 3;

var speed = 5;

var reloadSwitch = false;
var startSpel = false;
var dood = false;
var links = false;
var rechts = false;
var omhoog = false;
var omlaag = false;
var vuur = false;
var enter = false;
//wolken
//initialisatie canvas
var canvas = document.getElementById('Gamecanvas');
var stage = new Stage(canvas);

// Browsercheck
var browser = navigator.userAgent;

// Ticker aanmaken en init functie laden bij het laden van scherm
Ticker.setFPS(30);
Ticker.addListener(window);
window.onload = init;
stage.update();

// Cookie
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
  {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

// Checken of er een username cookie opgeslagen is, anders nieuwe aanmaken
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

// Checken of er een username cookie opgeslagen is, anders nieuwe aanmaken
function checkCookie()
{
var username=getCookie("username");
// Als de username niet null is of niet leeg laden we de bestaande username cookie
if (username!=null && username!="")
  {
  var controle = confirm("Welcome back " + username + ". Would you like to change your name?");
	  if (controle == true)
	  {
		  username=prompt("Please enter your new name:","");
		  if (username!=null && username!="")
		  {
			setCookie("username",username,365);
		 }
	  }
  }
// Anders prompt voor nieuwe username
else 
  {
  username=prompt("Please enter your name:","");
  if (username!=null && username!="")
    {
    setCookie("username",username,365);
    }
  }
}

// Aanmaken achtergronden
startachtergrondimg = new Image();  
startachtergrondimg.src = "../images/startachtergrond.png";
achtergrondimp = new Image();  
achtergrondimp.src = "../images/Achtergrond2.png";
gameoverachtergrondimp = new Image();  
gameoverachtergrondimp.src = "../images/gameoverbackground.png";

// Aanmaken ster en leven
sterimg = new Image();  
sterimg.src = "../images/ster.png";
levenimg = new Image();

// Aanmaken startbuttons
startimg = new Image()
startimg.src = "../images/start.png";
herlaadimg = new Image()
herlaadimg.src = "../images/herlaadknop.png";

function init()
{
	
	
	// Benodigde onderdelen aan de stage toevoegen
	achtergrond1 = new Bitmap(startachtergrondimg);
	achtergrond1.x = achtergrond1.y = 0;
	stage.addChildAt(achtergrond1, 0);

	start = new Bitmap(startimg);
	start.x = 380;
	start.y = 400;
	stage.addChildAt(start,2);
	
	// Cookie controleren en eventueel nieuwe aanmaken
	getCookie();
	setCookie();
	checkCookie();
}

// Ticker
function tick() 
{
	/* Achtergrond geluid afspelen
	introSnd.play();
	*/
	
	// Laad het level wanneer de startknop niet null is en erop geklikt word
	if(start != null)
	{
		start.onClick = laadSpel; 
	}
	// Herlaad het level wanneer de herlaadknop niet null is en erop geklikt word
	if(herlaad != null)
	{
		herlaad.onClick = herlaadSpel;
	}
	
	// Wanneer het level geladen is zullen onderstaande functies uitgevoerd worden
	if(startSpel == true)
	{
		laadKills();
		laadLevens();
		checkKills();
		checkLevens();
		beweegSpeler();
		
		// Wanneer de levens op zijn zal het game over scherm laden
		if (levens == 0) 
		{       
			endGame();
		}
		
		// Wanneer spatiebalk ingedrukt wordt en er nog geen kogel is word er een nieuwe aangemaakt
		if(vuur == true && ster == null)
		{
			schiet();
		}
		// Wanneer de kogel geladen is mag deze bewegen
		if(ster != null)
		{
			beweegSter();
		}
		
		// Controleren of objecten mekaar raken
		hitTest();
		// Wanneer de enemy geraakt wordt zal de timer starten en tot 25 tellen, daarna wordt de enemy verwijderd
		timerVijand();
		
		// Enemy laden wanneer deze null is
		if(vijand == null)
		{
			laadVijand();
		}
		// Wanneer er een enemy is mag deze bewegen
		else
		{
			beweegVijand();
		}
		
		// Extra leven laden wanneer deze null is
		if(leven == null)
		{
			laadLeven();
		}
		// Wanneer er een extra leven is mag deze bewegen
		else
		{
			beweegLeven();
		}
	}
	stage.update();
}
	
// Eerste keer laden van de game
function laadSpel()
{
	// Overbodige onderdelen van de stage verwijderen
	stage.removeChild(achtergrond1);
	stage.removeChild(start);
	
	/* Benodigde onderdelen aan de stage toevoegen
	confirmSnd.play();
	*/
	
	achtergrond2 = new Bitmap(achtergrondimg);
	achtergrond2.x = achtergrond2.y = 0;
	stage.addChildAt(achtergrond2, 0);
	
	
	
	cartman = new Bitman(cartmanimg);
	cartman.x = 150;
	cartman.y = 390;
	stage.addChildAt(cartman,2);
	
	// Startgame op true zetten zodat de andere functies binnen de tick actief worden
	startSpel = true;
}	

// Laden van de game na game over
function herlaadSpel()
{
	
	// Overbodige onderdelen van canvas verwijderen
	stage.removeChild(achtergrond3);
	//reloadbutton
	stage.removeChild(herlaad);
	stage.removeChild(gameoverTxt);
	
	// Benodigde onderdelen aan canvas toevoegen
	
	achtergrond2 = new Bitmap(achtergrondimg);
	achtergrond2.x = achtergrond2.y = 0;
	stage.addChildAt(achtergrond2, 0);
	
	cartman = new Bitman(cartmanimg);
	cartman.x = 150;
	cartman.y = 390;
	stage.addChildAt(cartman,4);
	
	
	kills = 0;
	speed = 5;
	startSpel = true;
}


// Game over bij 0 levens
function endGame()
{	
	// Overbodige onderdelen van canvas verwijderen
	stage.removeChild(vijand);
	stage.removeChild(cartman);
	stage.removeChild(ster);
	stage.removeChild(killsTxt);
	stage.removeChild(livesTxt);
	stage.removeChild(usernameTxt);
	stage.removeChild(achtergrond2);
		
	// Benodigde onderdelen aan canvas toevoegen
	achtergrond3 = new Bitmap(gameoverachtergrondimp);
	achtergrond3.x = achtergrond3.y = 0;
	stage.addChildAt(achtergrond3, 0);	
	
	gameoverTxt.text = getCookie("username") + ", Je hebt " + score + " X professor CHAOS verslagen";
	gameoverTxt.x = 150;
	gameoverTxt.y = 340;
	stage.addChild(gameoverTxt);
	
	herlaad = new Bitmap(herlaadimg);
	reloadSwitch = true;
	herlaad.x = 600;
	herlaad.y = 200;
	stage.addChildAt(herlaad,2);
	
	// Reset level en lives en zet de switch in de tikker om
	levens = 3;
	startSpel = false;
}

function schiet()
{
	
	randomNr = Math.floor(Math.random() * 10) + 1;
	ster = new Bitmap(sterimg);
	stage.addChildAt(ster,1);
	ster.y = cartman.y;
	ster.x = cartman.x;
	}
	
	function beweegSter()
{
	if (ster.x < +700)
	{
		ster.x -= -20;
	}
	else
	{
		stage.removeChild(ster);
		ster = null;
	}
}

// Meet de afstand tussen 2 objecten
function distance(obj1, obj2) 
{          
	var difx = obj2.x - obj1.x;          
	var dify = obj2.y - obj1.y;                
	return Math.sqrt( (difx*difx) + (dify*dify) );  
}

function hitTest()
{
	if(ster != null && vijand != null)
	{
		if(distance(ster, vijand)<=50)
		{
			stage.removeChild(ster);
			ster = null;
			dood = true;
		}
	}
}

//cartman plaatsen
function laadSpeler()
{
	cartman.x = 512;
	cartman.y = 250;
	stage.addChild(cartman);
}

// Score laden
function laadKills()
{
	killsTxt.x = 130;
	KillsTxt.y = 49;
	stage.addChildAt(killsTxt, 4);
}



// Enemy laden
function laadVijand()
{
	vijand = new Bitmap(vijandimg);
	stage.addChildAt(vijand,6);
	vijand.x = 900;
	vijand.y = Math.floor(Math.random() * 200) + 50;
}

// Enemy bewegen
function beweegVijand()
{
	// Wanneer de enemy nog niet buiten het canvas is, deze voortbewegen
	if(vijand.x > -200)
	{
		vijand.x -= speed;
	}
	// Verwijderen van de enemy en levens met 1 verminderen
	else
	{
		stage.removeChild(vijand);
		vijand = null;
		levens -= 1;
	}
}





function control()
{
document.onkeydown = knopIn;
document.onkeyup = knopLos;
stage.update();
}

function knopIn(e)
{
	switch(e.keyCode)
	{
		case 37:
		links = true;
		break;
		case 38:
		boven = true;
		break;
		case 39:
		rechts = true;
		break;
		case 40:
		onder = true;
		break;
		case 32:
		vuur = true;
		break;
		case 13:
		enter = true;
		break;
	}
}

function knopLos(e)
{
	switch(e.keyCode)
	{
		case 37:
		links = false;
		break;
		case 38:
		boven = false;
		break;
		case 39:
		rechts = false;
		break;
		case 40:
		onder = false;
		break;
		case 32:
		vuur = false;
		break;
		case 13:
		enter = false;
		break;
	}
}

function beweegSpeler() 
{		
	if(links == true )
	{
		cartman.x -= 7;
	
	}
	if(boven == true) 
	{
		cartman.y -=7;
	} 
	if(rechts == true) 
	{
		cartman.x += 7;
	
	} 
	if(onder == true) 
	{
		cartman.y +=7;
	
	}
	if (vuur == true)
{
vuurSter();
}
	
}

function beweegWolken()
{
	wolk1.x = wolk1NaarRechts;
	wolk2.x = wolk2NaarRechts;
	wolk3.x = wolk3NaarRechts;
	wolk4.x = wolk4NaarRechts;	
		
	if(wolk1NaarRechts < 1024)
	{
		wolk1NaarRechts = wolk1NaarRechts +2;
		wolk1.x = wolk1NaarRechts;
	}
	else
	{
		wolk1NaarRechts = -800;
	}

	if(wolk2NaarRechts < 1024)
	{
		wolk2NaarRechts = wolk2NaarRechts +4;
		wolk2.x = wolk2NaarRechts;
	}
	else
	{
		wolk2NaarRechts = -1024;
	}

	if(wolk3NaarRechts < 1024)
	{
		wolk3NaarRechts = wolk3NaarRechts +4;
		wolk3.x = wolk3NaarRechts;
	}
	else
	{
		wolk3NaarRechts = -1024;
	}
	if(wolk4NaarRechts < 1024)
	{
		wolk4NaarRechts = wolk4NaarRechts +4;
		wolk4.x = wolk4NaarRechts;
	}
	else
	{
		wolk4NaarRechts = -1024;
	}
}
	
//wolken plaatsen
function laadWolken()
{
	wolk1.y = 10;
	stage.addChildAt(wolk1, 2);
	
	wolk2.y = 20;
	stage.addChildAt(wolk2, 3);

	wolk3.x = 0;
	wolk3.y = 30;
	stage.addChildAt(wolk3, 4);
	
	wolk4.x = 0;
	wolk4.y = 40;
	stage.addChildAt(wolk4, 5);

}

var start is de start button die op het scherm hoort te komen, startachtergrond.png is het eerste scherm en achtergrond2.png het 2e.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan