This repository has been archived on 2026-04-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2018-04-21 19:28:30 -04:00

106 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class witchAnimate : MonoBehaviour {
public enum Direction { down = 0, up = 8, side = 16 }
public Direction dir = Direction.down;
public enum Element { fire = 0, ice = 24, wind = 48 }
public Element el = Element.fire;
public enum Deed { idle = 0, walk = 1, shoot = 5 }
public Deed current = Deed.walk;
Sprite[] animationSet;
SpriteRenderer spr;
public int frame = 0;
// Use this for initialization
void Start () {
spr = GetComponent<SpriteRenderer>();
animationSet = Resources.LoadAll<Sprite>("Candy");
}
float frAccum = 0;
public float walkingFrameRate = 0.02f;
public float shootingFrameRate = 0.01f;
bool justSwitched = false;
// Update is called once per frame
void Update () {
var h = Input.GetAxis("Horizontal");
var v = Input.GetAxis("Vertical");
var wasShooting = current == Deed.shoot;
if (v < 0)
{
dir = Direction.down;
spr.flipX = false;
current = Deed.walk;
}
else if (v > 0)
{
dir = Direction.up;
spr.flipX = false;
current = Deed.walk;
}
else if (h > 0)
{
dir = Direction.side;
spr.flipX = false;
current = Deed.walk;
}
else if (h < 0)
{
dir = Direction.side;
spr.flipX = true;
current = Deed.walk;
}
else current = Deed.idle;
if (wasShooting) current = Deed.shoot;
if (Input.GetButtonDown("Switch"))
el = (el == Element.fire) ? Element.ice : ((el == Element.ice) ? Element.wind : Element.fire);
if (Input.GetButtonDown("Attack"))
{
frame = 0;
frAccum = 0;
current = Deed.shoot;
}
frAccum += Time.deltaTime;
switch(current)
{
case Deed.idle:
frAccum = 0;
frame = 0;
break;
case Deed.walk:
if (frAccum >= walkingFrameRate)
{
frame++;
frAccum = 0;
}
frame %= 4;
break;
case Deed.shoot:
if (frAccum >= shootingFrameRate)
{
frame++;
frAccum = 0;
}
if (frame >= 3)
{
frame = 0;
current = Deed.idle;
}
break;
}
spr.sprite = animationSet[(int)dir + (int)el + (int)current + frame];
}
}