Exemplo n.º 1
0
        private void cmbNodeType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbNodeType.Text.CompareTo("MoveTo") == 0)
                node = new AI_MoveTo(node.getLocation(), node.getSpeed());
            else if (cmbNodeType.Text.CompareTo("JumpTo") == 0)
                node = new AI_JumpTo(node.getLocation());
            else if (cmbNodeType.Text.CompareTo("ArcTo") == 0)
                node = new AI_ArcTo(node.getLocation(), 0, node.getSpeed());
            else if (cmbNodeType.Text.CompareTo("Wait") == 0)
                node = new AI_Wait(0.0);
            else if (cmbNodeType.Text.CompareTo("Reset") == 0)
                node = new AI_Reset(-1);
            else if (cmbNodeType.Text.CompareTo("StageHorizontal") == 0)
                node = new AI_StageHorizontal(100, node.getSpeed());
            else if (cmbNodeType.Text.CompareTo("StageVertical") == 0)
                node = new AI_StageVertical(100, node.getSpeed());
            else if (cmbNodeType.Text.CompareTo("StageCircle") == 0)
                node = new AI_StageCircle(100, node.getSpeed(), AI_ScriptNode.CIRCLE_DIRECTION_CW, 0);
            else if (cmbNodeType.Text.CompareTo("StagePointToPoint") == 0)
                node = new AI_StagePointToPoint(node.getLocation(), node.getSpeed());
            else if (cmbNodeType.Text.CompareTo("Kamikaze") == 0)
                node = new AI_Kamikaze(node.getSpeed());

            nodeProperties.SelectedObject = node;
        }
Exemplo n.º 2
0
 public void Insert(int index, AI_ScriptNode node)
 {
     z_script.Insert(index, node);
 }
Exemplo n.º 3
0
 public void Add(AI_ScriptNode node)
 {
     z_script.Add(node);
 }
Exemplo n.º 4
0
 private void drawScriptSegment(Graphics gr, Brush brush, Pen pen, ref Vector2 current, AI_ScriptNode node)
 {
     Vector2 temp, center;
     bool drawDot = true;
     switch (node.getCommand())
     {
         case AI_ScriptNode.ID_START_POINT:
             current = node.getLocation();
             break;
         case AI_ScriptNode.ID_MOVE_TO:
         case AI_ScriptNode.ID_JUMP_TO:
         case AI_ScriptNode.ID_STAGE_POINT_TO_POINT:
             gr.DrawLine(pen, offset.X + current.X, offset.Y + current.Y, offset.X + node.getLocation().X, offset.Y + node.getLocation().Y);
             current = node.getLocation();
             break;
         case AI_ScriptNode.ID_ARC_TO:
             while (node.GetDistanceTo(current) > node.getSpeed())
             {
                 temp = current + node.CreateVectorFrom(current);
                 gr.DrawLine(pen, offset.X + current.X, offset.Y + current.Y, offset.X + temp.X, offset.Y + temp.Y);
                 current = temp;
             }
             node.reset();
             break;
         case AI_ScriptNode.ID_STAGE_HORIZONTAL:
             gr.DrawLine(pen, offset.X + current.X - ((AI_Stage)node).getSwingDistance(), offset.Y + current.Y,
                 offset.X + current.X + ((AI_Stage)node).getSwingDistance(), offset.Y + current.Y);
             break;
         case AI_ScriptNode.ID_STAGE_VERTICAL:
             gr.DrawLine(pen, offset.X+ current.X, offset.Y + current.Y - ((AI_Stage)node).getSwingDistance(),
                 offset.X + current.X, offset.Y + current.Y + ((AI_Stage)node).getSwingDistance());
             break;
         case AI_ScriptNode.ID_STAGE_CIRCLE:
             center = current;
             for (float theta = 0f; theta < 3 * Math.PI; theta += node.getSpeed() / ((AI_Stage)node).getSwingDistance())
             {
                 temp = current + node.CreateVectorFrom(current);
                 gr.DrawLine(pen, offset.X + current.X, offset.Y + current.Y, offset.X + temp.X, offset.Y + temp.Y);
                 current = temp;
             }
             // reset current to the center after drawing this one
             current = center;
             node.reset();
             break;
         // nothing to do or draw for these...
         case AI_ScriptNode.ID_RESET:
         case AI_ScriptNode.ID_WAIT:
         case AI_ScriptNode.ID_END_POINT:
         case AI_ScriptNode.ID_NULL:
         default:
             drawDot = false;
             break;
     }
     if (drawDot)
         gr.FillEllipse(brush, offset.X + current.X - 5, offset.Y + current.Y - 5, 10, 10);
 }
Exemplo n.º 5
0
 public frmNewScriptNode()
 {
     InitializeComponent();
     node = new AI_MoveTo(Vector2.Zero, 0f);
     nodeProperties.SelectedObject = node;
 }
Exemplo n.º 6
0
 public AI_ScriptNode(AI_ScriptNode node)
     : this(node.z_location, node.z_speed)
 {
     z_command = AI_ScriptNode.ID_NULL;
 }