📄 mainform.cs
字号:
{
case CurrentSimulation.SteeringBehaviours:
if (sBC != null)
{
if (e.KeyCode == Keys.Insert)
sBC.FirstVehicle.Mass++;
if (e.KeyCode == Keys.Delete)
sBC.FirstVehicle.Mass--;
if (e.KeyCode == Keys.Home)
sBC.FirstVehicle.MaxSpeed++;
if (e.KeyCode == Keys.End)
sBC.FirstVehicle.MaxSpeed--;
if (e.KeyCode == Keys.PageUp)
sBC.FirstVehicle.MaxForce++;
if (e.KeyCode == Keys.PageDown)
sBC.FirstVehicle.MaxForce--;
if (e.KeyCode == Keys.Q)
Vehicle.ArriveRadius++;
if (e.KeyCode == Keys.A)
Vehicle.ArriveRadius--;
if (e.KeyCode == Keys.W)
Vehicle.WanderDistance++;
if (e.KeyCode == Keys.S)
Vehicle.WanderDistance--;
if (e.KeyCode == Keys.E)
Vehicle.WanderRadius++;
if (e.KeyCode == Keys.D)
Vehicle.WanderRadius--;
if (e.KeyCode == Keys.R)
Vehicle.WanderJitter++;
if (e.KeyCode == Keys.F)
Vehicle.WanderJitter--;
if (e.KeyCode == Keys.T)
Vehicle.CohesionRadius++;
if (e.KeyCode == Keys.G)
Vehicle.CohesionRadius--;
if (e.KeyCode == Keys.Y)
Vehicle.FOV++;
if (e.KeyCode == Keys.H)
Vehicle.FOV--;
}
break;
case CurrentSimulation.EString:
break;
case CurrentSimulation.Ants:
if (world != null)
{
if (e.KeyCode == Keys.Insert)
Cosmos.elitismRate += .1f;
if (e.KeyCode == Keys.Delete)
Cosmos.elitismRate -= .1f;
if (e.KeyCode == Keys.Home)
Cosmos.mutationRate += .1;
if (e.KeyCode == Keys.End)
Cosmos.mutationRate -= .1;
if (e.KeyCode == Keys.PageUp)
Cosmos.foodTolerance += 1;
if (e.KeyCode == Keys.PageDown)
Cosmos.foodTolerance--;
if (e.KeyCode == Keys.Q)
Cosmos.maxForce++;
if (e.KeyCode == Keys.A)
Cosmos.maxForce--;
if (e.KeyCode == Keys.W)
Cosmos.maxSpeed++;
if (e.KeyCode == Keys.S)
Cosmos.maxSpeed--;
}
break;
default:
break;
}
}
private void leaveTrailToolStripMenuItem_Click(object sender, EventArgs e)
{
leaveTrail = !leaveTrail;
}
private void mirroredToolStripMenuItem_Click(object sender, EventArgs e)
{
SBC.mirrored = !SBC.mirrored;
}
private void identicalBehaviourToolStripMenuItem_Click(object sender, EventArgs e)
{
identicalBehaviour = !identicalBehaviour;
}
private void cohesionToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.Cohesion;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.Cohesion;
}
private void alignmentToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.Alignment;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.Alignment;
}
private void cFToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.CF;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.CF;
}
private void initializeToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (!drawingSurfaceInitialized)
InitializeDrawingSurface();
DestroyAll();
timer1.Enabled = false;
oldPoint = new Point(80, 450 - 200);
newPoint = new Point(80, 450 - 200);
ClearScreen();
grafx.Render(Graphics.FromHwnd(mainPanel.Handle));
leaveTrail = true;
EString.elitism = float.Parse(textBoxElitismRate.Text);
EString.maxIteration = uint.Parse(textBoxMaxIteration.Text);
EString.mutationRate = float.Parse(textBoxMutationRate.Text);
EString.popSize = int.Parse(textBoxPopulationSize.Text);
CS = CurrentSimulation.EString;
listView1.Visible = true;
eStringRunning = true;
listView1.Items.Clear();
Start();
}
private void initializeToolStripMenuItem2_Click(object sender, EventArgs e)
{
if (!drawingSurfaceInitialized)
InitializeDrawingSurface();
DestroyAll();
listView1.Items.Clear();
DestroyAll();
listView1.Visible = true;
CS = CurrentSimulation.Ants;
world = new Cosmos(int.Parse(textBoxFood.Text), int.Parse(textBoxNo.Text), mainPanel.ClientSize, g, listView1, mainPanel, grafx);
world.Step();
}
private void fastModeToolStripMenuItem_Click(object sender, EventArgs e)
{
Cosmos.fastMode = !Cosmos.fastMode;
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
aboutBox = new AboutBox();
aboutBox.ShowDialog();
}
private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Cosmos.isRunning = false;
eStringRunning = false;
}
private void showDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
Cosmos.showDetails = !Cosmos.showDetails;
}
private void destroyAllToolStripMenuItem_Click(object sender, EventArgs e)
{
DestroyAll();
}
private void separationToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.Separation;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.Separation;
}
private void elitismToolStripMenuItem1_Click(object sender, EventArgs e)
{
Cosmos.useElitism = !Cosmos.useElitism;
}
private void fCASToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.FCAS;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.FCAS;
}
private void cASToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.CAS;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.CAS;
}
private void fCSToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.FCS;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.FCS;
}
private void cSToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.CS;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.CS;
}
private void cAToolStripMenuItem_Click(object sender, EventArgs e)
{
behaviourChanged = true;
steeringBehaviour = SB.CA;
if (sBC != null)
sBC.FirstVehicle.SteeringBehaviour = SB.CA;
}
private void weightedSumToolStripMenuItem_Click(object sender, EventArgs e)
{
Vehicle.weightedSum = !Vehicle.weightedSum;
}
private void landMinesToolStripMenuItem_Click(object sender, EventArgs e)
{
Cosmos.landMines = !Cosmos.landMines;
}
private void identicalVehiclesToolStripMenuItem_Click(object sender, EventArgs e)
{
mainForm.identicalVehicles = !mainForm.identicalVehicles;
}
private void sigmoidToolStripMenuItem_Click(object sender, EventArgs e)
{
Network.tF = TransferFunctions.LogSigmoid;
}
private void hardLimitToolStripMenuItem_Click(object sender, EventArgs e)
{
Network.tF = TransferFunctions.HardLimit;
}
private void saturatingLinearToolStripMenuItem_Click(object sender, EventArgs e)
{
Network.tF = TransferFunctions.SaturatingLinear;
}
private void positiveLinearToolStripMenuItem_Click(object sender, EventArgs e)
{
Network.tF = TransferFunctions.PositiveLinear;
}
private void dToolStripMenuItem_Click(object sender, EventArgs e)
{
if (sBC != null)
sBC.FirstVehicle.NewPath();
}
private void specialPathsToolStripMenuItem_Click(object sender, EventArgs e)
{
Vehicle.enableSpecialPath = !Vehicle.enableSpecialPath;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -