Hey,
I am currently working on a input/movement script for a simple top-down 2D RPG using javascript.
Here is what I have written so far:
#pragma strict
/* ========== Define Variables ========== */
var moveSpeed : float = 10.0;
var playerSprite : PackedSprite;
function Update () {
var thisTransform : Transform;
var moving : boolean;
var movingLeft : boolean = false;
var movingRight : boolean = false;
var movingUp : boolean = false;
var movingDown : boolean = false;
var wasMovingLeft : boolean;
var wasMovingRight : boolean;
var wasMovingUp : boolean;
var wasMovingDown : boolean;
var movement : float;
var horMoveDir : int;
var verMoveDir : int;
thisTransform = transform;
/* ========== Keyboard Input ==========*/
if(Input.GetKey("left")) {
horMoveDir = -1;
verMoveDir = 0;
wasMovingLeft = true;
wasMovingRight = false;
wasMovingUp = false;
wasMovingDown = false;
if(!movingLeft) {
movingLeft = true;
movingRight = false;
movingUp = false;
movingDown = false;
AnimateWalk();
}
}
if(Input.GetKey("right")) {
horMoveDir = 1;
verMoveDir = 0;
wasMovingLeft = false;
wasMovingRight = true;
wasMovingUp = false;
wasMovingDown = false;
if(!movingRight) {
movingLeft = false;
movingRight = true;
movingUp = false;
movingDown = false;
AnimateWalk();
}
}
if(Input.GetKey("up")) {
horMoveDir = 0;
verMoveDir = 1;
wasMovingLeft = false;
wasMovingRight = false;
wasMovingUp = true;
wasMovingDown = false;
if(!movingUp) {
movingLeft = false;
movingRight = false;
movingUp = true;
movingDown = false;
AnimateWalk();
}
}
if(Input.GetKey("down")) {
horMoveDir = 0;
verMoveDir = -1;
wasMovingLeft = false;
wasMovingRight = false;
wasMovingUp = false;
wasMovingDown = true;
if(!movingDown) {
movingLeft = false;
movingRight = false;
movingUp = false;
movingDown = true;
AnimateWalk();
}
}
/* ========== Animate Walk ==========*/
function AnimateWalk() {
if(movingLeft) {
playerSprite.PlayAnim(3);
}
if(movingRight) { /*Try "else if" if this doesn't work*/
playerSprite.PlayAnim(2);
}
if(movingUp) {
playerSprite.PlayAnim(0);
}
if(movingDown) {
playerSprite.PlayAnim(1);
}
}
}
The Unity Console is returning the following errors for it:
(111,18): BCE0044: expecting (, found 'AnimateWalk'.
(111,31): UCE0001: ';' expected. Insert semicolon at the end.
(112,17): BCE0043: Unexpected token: if.
(112,31): UCE0001: ';' expected. Insert a semicolon at the end.
(113,49): BCE0044: expecting :, found ';'.
(line 111 is the first after “Animate Walk” comment)
I have no idea why. These characters obviously shouldn’t be where it says they should. (should they? :S).
I am very new to Unityscript and I get the feeling I’m missing something ridiculously obvious, but I’ve spent most of the day trying to figure this out and it’s baffling me. Anybody lend a hand?