- Home /
Unable to shoot in the direction my sprite is facing
public var bullet : GameObject;
public var speed = 20;
public var up :Sprite;
public var right :Sprite;
public var left :Sprite;
public var down :Sprite;
public var UpRight :Sprite;
public var Upleft :Sprite;
public var downleft :Sprite;
public var downRight :Sprite;
private var currentDirection = Vector3.zero;
var health = 3;
var lastShot = 0;
function Start () {
}
function Update () {
lastShot++;
var r2d : Rigidbody2D = GetComponent("Rigidbody2D");
var pos = Camera.main.WorldToViewportPoint(transform.position);
var horizontal =Input.GetAxis("P2Horizontal");
var vertical = Input.GetAxis("P2Vertical");
var movement = new Vector2(horizontal, vertical);
r2d.AddForce(movement * speed);
if (Input.GetKeyUp("right") && pos.x < .91)
{
if(r2d.velocity.y > 0)
{
GetComponent(SpriteRenderer).sprite = UpRight;
}
else if(r2d.velocity.y < 0 )
{
GetComponent(SpriteRenderer).sprite = downRight;
}
else
{
GetComponent(SpriteRenderer).sprite = right;
}
r2d.velocity = new Vector3(0f, r2d.velocity.y);
}
else if (Input.GetKeyUp("left") && pos.x > 0.09){
r2d.velocity.x = (-1) * speed;
if(r2d.velocity.y > 0)
{
GetComponent(SpriteRenderer).sprite = Upleft;
}
else if(r2d.velocity.y < 0 )
{
GetComponent(SpriteRenderer).sprite = downleft;
}
else
{
GetComponent(SpriteRenderer).sprite = left;
}
r2d.velocity = new Vector3(0f, r2d.velocity.y);
}
else
{
//r2d.velocity.x = 0;
}
if (Input.GetKeyUp("up") && pos.y< .90)
{
if(r2d.velocity.x > 0)
{
GetComponent(SpriteRenderer).sprite = UpRight;
}
else if(r2d.velocity.x < 0 )
{
GetComponent(SpriteRenderer).sprite = Upleft;
}
else
{
GetComponent(SpriteRenderer).sprite = up;
}r2d.velocity = new Vector2(r2d.velocity.x, 0f);
}
else if (Input.GetKeyUp("down") && pos.y > .09)
{
r2d.velocity.y = (-1) * speed;
if(r2d.velocity.x > 0)
{
GetComponent(SpriteRenderer).sprite = downRight;
}
else if(r2d.velocity.x < 0 )
{
GetComponent(SpriteRenderer).sprite = downleft;
}
else
{
GetComponent(SpriteRenderer).sprite = down;
}
r2d.velocity = new Vector2(r2d.velocity.x, 0f);
}
else
{
// r2d.velocity.y = 0;
}
if (Input.GetKeyDown("return")) {
if(lastShot > 70)
{
var bullet = Instantiate(bullet,transform.position, Quaternion.identity);
var velocity = bullet.GetComponent(Rigidbody2D);
velocity.velocity = Vector2.zero;
lastShot = 0;
}
}
}
By bullet code is:
public var speed : int = 0;
function Start () {
var r2d : Rigidbody2D = GetComponent("Rigidbody2D");
r2d.position.y += .2;
r2d.velocity.x=speed ;
}
function OnBecameInvisible() {
// destroy the bullet
Destroy(gameObject);
}
function Update () {
//transform.Translate(transform.forward * Time.deltaTime);
}
function OnTriggerEnter2D(collider:Collider2D) {
// Name of the object that collided with the enemy
var name = collider.gameObject.tag;
Debug.Log("collider");
Debug.Log(name);
if (name == "P1") {
Destroy(gameObject);
var obj = collider.gameObject.GetComponent(Assult);
obj.removeHealth();
//var ls:UnityEngine.SceneManagement.SceneManager;
//ls.LoadScene("Menu");
}
else if(name == "barricade")
{
Destroy(gameObject);
}
}
Comment
Your answer
Follow this Question
Related Questions
How can I show a lower quality Sprite on lower devices? 0 Answers
Find object with tag in small distance and delete found object and itself. 1 Answer
,Why does OnTriggerEnter2D consider the the child as it's parent ? 1 Answer
Flip box collider and sprite 1 Answer
How to create a hero's range of action? 0 Answers