public void CanWriteAnimations() { using var file = new DMIFile(@"Data/Input/animal.dmi"); var toTest = file.States.First(x => x.Name == "mushroom"); for (StateDirection dir = StateDirection.South; dir != StateDirection.SouthEast; dir++) { using var fs = System.IO.File.OpenWrite($@"Data/Output/mushroom_gif_{dir}.gif"); toTest.SaveAnimatedGIF(fs, dir); } }
// Start is called before the first frame update void Start() { //初期化 bTrigger = false; lerpValue = 0.0f; lerpValueplus = 1.0f; stateDirection = StateDirection.STATE_RIGHT; oldstateDirection = stateDirection; ImageSize = 32.0f; nMoveCnt = 0; child.enabled = true; bInterbal = false; AudioSource = gameObject.GetComponents <AudioSource>(); // ポジション宣言 recttransform = GetComponent <RectTransform>().localPosition; }
public AlphabetType(string _text, XmlElement _element, StateDirection _direction) { Text = _text; Element = _element; Direction = _direction; }
public AlphabetType(string _text, XmlElement _element, StateDirection _direction) { Text = _text; Element = _element; Direction = _direction; }
public static Point CreateNewPoint(StateDirection direction, Point currentPosition, SpriteMeta meta) { var offsetPixelDirection = meta.OffsetPixelsDirections.Where(x => x.Key == direction).Select(y => y.Value).First(); return(new Point(offsetPixelDirection.X + currentPosition.X + meta.SpacingBetweenSize.X, offsetPixelDirection.Y + currentPosition.Y + meta.SpacingBetweenSize.Y)); }
public static Rectangle CreateRectangle(StateDirection direction, Point currentPosition, SpriteMeta meta) { var newPosition = CreateNewPoint(direction, currentPosition, meta); return(new Rectangle(newPosition.X, newPosition.Y, meta.IconSize.X, meta.IconSize.Y)); }
public static void SetFrame(DMIState state, Image <Rgba32> image, DirectionDepth depth, StateDirection direction, int frame) { if (depth == DirectionDepth.One) { state.SetFrame(image, frame); } else { state.SetFrame(image, direction, frame); } }
// Update is called once per frame void Update() { // トリガーがONになったら if (bTrigger) { // カンスト処理 if (nMoveCnt >= 999) { nMoveCnt = 999; } // 線形補間 recttransform = Vector3.Lerp(q1, q2, lerpValue); GetComponent <RectTransform>().localPosition = recttransform; // 値を足す lerpValue += lerpValueplus; // 値が1.0f以上になったらやめる if (lerpValue >= 1.0f) { // 正規化 lerpValue = 1.0f; // 線形補間 recttransform = Vector3.Lerp(q1, q2, lerpValue); GetComponent <RectTransform>().localPosition = recttransform; // 初期化 bTrigger = false; lerpValue = 0.0f; } return; } else if (bTrigger || signManager.goal || !pause.bpop || startlogo.bStart) { return; } // キー入力待ち if (!bInterbal && !bTrigger && Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.S)) {//下 if (recttransform.y <= -200) { return; } // 走行距離プラス nMoveCnt++; q1 = new Vector3(recttransform.x, recttransform.y, recttransform.z); q2 = new Vector3(recttransform.x, recttransform.y - ImageSize, recttransform.z); // 顔の向きを変える transform.rotation = Quaternion.Euler(0f, 0f, -90f); // 向きを格納 oldstateDirection = stateDirection; // 過去の向きを保存 stateDirection = StateDirection.STATE_DOWN; // トリガーON bTrigger = true; bInterbal = true; return; } else if (!bInterbal && !bTrigger && Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.W)) {//上 if (recttransform.y >= 200) { return; } // 走行距離プラス nMoveCnt++; q1 = new Vector3(recttransform.x, recttransform.y, recttransform.z); q2 = new Vector3(recttransform.x, recttransform.y + ImageSize, recttransform.z); // 顔の向きを変える transform.rotation = Quaternion.Euler(0f, 0f, 90f); // 向きを格納 oldstateDirection = stateDirection; // 過去の向きを保存 stateDirection = StateDirection.STATE_UP; // トリガーON bTrigger = true; bInterbal = true; return; } if (!bInterbal && !bTrigger && Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.A)) {//左 if (recttransform.x <= -380) { return; } // 走行距離プラス nMoveCnt++; q1 = new Vector3(recttransform.x, recttransform.y, recttransform.z); q2 = new Vector3(recttransform.x - ImageSize, recttransform.y, recttransform.z); // 顔の向きを変える transform.rotation = Quaternion.Euler(0f, -180f, 0f); // 向きを格納 oldstateDirection = stateDirection; // 過去の向きを保存 stateDirection = StateDirection.STATE_LEFT; // トリガーON bTrigger = true; bInterbal = true; return; } else if (!bInterbal && !bTrigger && Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKeyDown(KeyCode.D)) {//右 if (recttransform.x >= 380) { return; } // 走行距離プラス nMoveCnt++; q1 = new Vector3(recttransform.x, recttransform.y, recttransform.z); q2 = new Vector3(recttransform.x + ImageSize, recttransform.y, recttransform.z); // 顔の向きを変える transform.rotation = Quaternion.Euler(0f, 0f, 0f); // 向きを格納 oldstateDirection = stateDirection; // 過去の向きを保存 stateDirection = StateDirection.STATE_RIGHT; // トリガーON bTrigger = true; bInterbal = true; return; } // 一回入力したらインターバルを置く if (bInterbal) { bInterbal = false; } }