Enemy movement in javascript?

I currently have a javascript code for a 2D game with an enemy that patrols a platform. Using the width of the sprite, it detects the edge of whatever collider it is on and flips the sprite. I essentially tried to translate a working functional C# script to javascript. The javascript code doesn’t flag any errors, but the enemy stays in place and rapidly flips back and forwards. Can anyone tell me what I’m missing?

JavaScript code

#pragma strict

public var speed : float;
public var enemyMask : LayerMask;
private var myBody : Rigidbody2D;
private var myTrans : Transform;
private var myWidth : float;
private var lineCastPos : Vector2;
private var isGrounded : boolean;
private var currRot : Vector3;


function Start () {
	myTrans = this.transform;
	myBody = this.GetComponent(Rigidbody2D);
	myWidth = this.GetComponent(SpriteRenderer).bounds.extents.x;
}

function FixedUpdate () {

	lineCastPos = myTrans.position - myTrans.right * myWidth;
	isGrounded = Physics2D.Linecast (lineCastPos, lineCastPos + Vector2.down, enemyMask);
	if (!isGrounded) {
		currRot = myTrans.eulerAngles;
		currRot.y += 180;
		myTrans.eulerAngles = currRot;
		}

		var myVel : Vector2 = myBody.velocity;
		myVel.x = -myTrans.right.x * speed;
		myBody.velocity = myVel;
}

and C# for reference

using UnityEngine;
using System.Collections;

public class Enemytest : MonoBehaviour {
	public float speed;
	public LayerMask enemyMask;
	Rigidbody2D myBody;
	Transform myTrans;
	float myWidth;

	// Use this for initialization
	void Start () {
		myTrans = this.transform;
		myBody = this.GetComponent<Rigidbody2D> ();
		myWidth = this.GetComponent<SpriteRenderer> ().bounds.extents.x;

	}
	
	// Update is called once per frame
	void FixedUpdate () {

		Vector2 lineCastPos = myTrans.position - myTrans.right * myWidth;
		bool isGrounded = Physics2D.Linecast (lineCastPos, lineCastPos + Vector2.down, enemyMask);

		if (!isGrounded) {
			Vector3 currRot = myTrans.eulerAngles;
			currRot.y += 180;
			myTrans.eulerAngles = currRot;
		}

		Vector2 myVel = myBody.velocity;
		myVel.x = -myTrans.right.x * speed;
		myBody.velocity = myVel;
	}
}

Any help would be greatly appreciated!

Hi,

After a bit of testing it seems that the reason that your enemy is rapidly flipping while staying in place is because you have not assigned the enemy layer mask to the layer that the enemy is a part of. As such the linecast is colliding with the edge of your enemy, and this causes the sprite to flip. There seem to be some other problems with the script but I can’t seem to figure out how to fix them, someone else might be able to help you.

I hope this helps.