protected override OpTypeVector VisitTypeVector(TypeVector node) { var vector = base.VisitTypeVector(node); vector.ComponentCount = node.ComponentCount; vector.ComponentType = Visit(node.ComponentType); return(Register(vector, _typeInstructions)); }
public bool Tick(Snake snake, Fruit fruit) { if (snake.moveStatus is MoveStatus.Stopping) return false; TypeVector needSave = TypeVector.Down; bool need = false; while (snake.StackVectors.Count > 0) { TypeVector vector = snake.StackVectors.Pop(); if (!snake != vector) { snake.currentVector = vector; break; } need = true; needSave = vector; } snake.StackVectors.Clear(); if (need) snake.StackVectors.Push(needSave); if (snake.IsObstecle(this)) { return true; } snake.Move(this); AddSnake(snake); if (snake.IsFruit(fruit)) { _score += 10; if (snake.speed > 100) snake.UpSpeed(); snake.GetTail().Add(snake.GetTail().Count is 0 ? new Tail(snake.GetHead().GetCell()) : new Tail(snake.GetTail().Last().GetCell())); do { fruit.NewPosition(this); } while (fruit.GetCell().obj != null); AddGameObject(fruit); } Render(); return false; }
protected virtual bool WriteVectorField(string fieldName, uint byteOffset, TypeVector fieldType) { switch (fieldType.VectorType) { case VectorType.Vec2: WriteLine($" [FieldOffset({byteOffset})]"); WriteLine($" public Vector2 {fieldName};"); return(true); case VectorType.Vec3: WriteLine($" [FieldOffset({byteOffset})]"); WriteLine($" public Vector3 {fieldName};"); return(true); case VectorType.Vec4: WriteLine($" [FieldOffset({byteOffset})]"); WriteLine($" public Vector4 {fieldName};"); return(true); } for (uint i = 0; i < fieldType.ComponentCount; ++i) { string letter = null; switch (i) { case 0: letter = "X"; break; case 1: letter = "Y"; break; case 2: letter = "Z"; break; case 3: letter = "W"; break; default: letter = "_" + i; break; } WriteStructField(fieldName + letter, byteOffset + i * fieldType.ComponentType.Alignment, fieldType.ComponentType); } return(true); }
public void SwapVector(TypeVector typeVector) { //newVector = typeVector; StackVectors.Push(typeVector); }