private void Form1_KeyUp(object sender, KeyEventArgs e) { //# 刪除 if (e.KeyCode == Keys.Delete) { //# 移除項目 if (m_selectedState != null) { // 移除 SimsAffect foreach (var o in m_affects.Where(c => c.A == m_selectedState || c.B == m_selectedState).ToList()) { m_affects.Remove(o); } // 移除 SimsState m_states.Remove(m_selectedState); m_selectedState = null; this.Invalidate(); // 重繪畫面 } else if (m_selectedAffect != null) { // 移除 SimsAffect m_affects.Remove(m_selectedAffect); m_selectedAffect = null; this.Invalidate(); // 重繪畫面 } } }
private void btnAddEntity_Click(object sender, EventArgs e) { SimsState newState = new SimsState("新狀態", 150, 60, 50); m_selectedState = newState; m_states.Add(newState); this.Invalidate(); }
public SimsAffect(SimsState _A, SimsState _B, float _volum) { A = _A; B = _B; affectVolumn = _volum; //# Init. this.pen this.pen = new Pen(Color.OrangeRed, 3); GraphicsPath capPath = new GraphicsPath(); capPath.AddLines(new Point[] { new Point(-3, -4), new Point(0, 0), new Point(3, -4) }); this.pen.StartCap = LineCap.SquareAnchor; //this.pen.EndCap = LineCap.ArrowAnchor; this.pen.CustomEndCap = new CustomLineCap(null, capPath); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); // Init m_states.Add(new SimsState("工作", 300, 100, 50)); m_states.Add(new SimsState("錢", 600, 100, 50)); m_states.Add(new SimsState("消費", 600, 400, 50)); m_states.Add(new SimsState("GDP", 300, 400, 50)); m_states.Add(new SimsState("機器", 100, 250, 50)); m_affects.Add(new SimsAffect(m_states[0], m_states[1], +1.0f)); m_affects.Add(new SimsAffect(m_states[1], m_states[2], +1.0f)); m_affects.Add(new SimsAffect(m_states[2], m_states[3], +1.0f)); m_affects.Add(new SimsAffect(m_states[3], m_states[0], +0.5f)); m_affects.Add(new SimsAffect(m_states[3], m_states[4], +0.5f)); m_affects.Add(new SimsAffect(m_states[4], m_states[0], -1.25f)); m_selectedState = m_states[2]; propViewer.SelectedObject = m_selectedState; }
private void Form1_MouseDown(object sender, MouseEventArgs e) { Debug.Print("ON : Form1_MouseDown"); switch (e.Button) { case MouseButtons.Left: if (f_addnewAffect) { foreach (var c in m_states) { if (c.HitTest(e.Location)) { m_affects.Add(new SimsAffect(m_selectedState, c, +1.0f)); this.f_addnewAffect = false; this.m_selectedState = null; } } this.Invalidate(); break; // } //# 選取 SimsAffect this.m_selectedAffect = null; foreach (var c in m_affects) { if (c.HitTest(e.Location)) { this.m_selectedAffect = c; // 選取 SimsState propViewer.SelectedObject = c; // 顯示屬性 break; } } //# 選取 SimsState this.m_selectedState = null; foreach (var c in m_states) { if (c.HitTest(e.Location)) { this.m_selectedState = c; // 選取 SimsState propViewer.SelectedObject = c; // 顯示屬性 this.m_selectedAffect = null; break; } } // 重繪畫面 this.Invalidate(); break; case MouseButtons.Right: //# 選取 SimsState this.m_selectedState = null; this.f_addnewAffect = false; foreach (var c in m_states) { if (c.HitTest(e.Location)) { this.m_selectedState = c; // 選取 SimsState propViewer.SelectedObject = c; // 顯示屬性 this.f_addnewAffect = true; // 開始新增 SimsAffect this.m_selectedAffect = null; break; } } // 重繪畫面 this.Invalidate(); break; } }
public PointF CalcCircleBoundPos(SimsState B) { return(CalcHelper.CalcCircleBoundPos(this.cx, this.cy, this.r, B.cx, B.cy)); }