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:
var start is de start button die op het scherm hoort te komen, startachtergrond.png is het eerste scherm en achtergrond2.png het 2e.
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: