Reputation: 19
I am making a game in javascript, and I'm using making a class to hold all the sprites. However when I try to run it, safari gives me "SyntaxError: Unexpected use of reserved word 'class'". I can't find a reason it should be doing this. Below is my code:
var spritesContext;
//Sprite class
class sprite{
constructor(imageName, imageX, imageY, imageHeight, imageWidth, context, canvas){
this.imageName = imageName;
this.imageX = imageX;
this.imageY = imageY;
this.imageHeight = imageHeight;
this.imageWidth = imageWidth;
this.canvas = canvas;
this.context = context;
spritesContext = context;
console.log("Sprite constructed");
}
draw(){
var character = new Image();
character.src = "../Images/" + this.imageName + ".png";
character.onload = function(){
spritesContext.drawImage(character, this.imageX, this.imageY, this.imageWidth, this.imageHeight);
console.log("Inner Draw is working.");
}
console.log("Draw is working.");
}
function getHeight(){
return this.imageHeight;
}
function getWidth(){
return this.imageWidth;
}
function getX(){
return this.imageX;
}
function getY(){
return this.imageY;
}
function moveUpX(e){
this.imageX = (this.imageX + e);
}
function moveUpY(e){
this.imageY = (this.imageY + e);
}
function moveBackX(e){
this.imageX = (this.imageX - e);
}
function moveBackY(e){
this.imageY = (this.imageY - e);
}
function changeImage(e){
this.imageName = e;
}
function getImage(){
return this.imageName;
}
function changeX(e){
this.imageX = e;
}
function changeY(e){
this.imageY = e;
}
}
Upvotes: 0
Views: 3679
Reputation: 1587
To make your code work, and more specifically the keyword class, you need to be in strict mode to enable certain browsers to interpret it.
To be in strict mode, add the following to the top of your file:
'use strict';
Upvotes: 1