using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; using CommonAI.RTS; using System.IO; namespace CommonTest { public partial class Form1 : Form { public Form1() { this.DoubleBuffered = true; this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); InitializeComponent(); GameWorld.global_font = this.Font; this.MouseWheel += new MouseEventHandler(form1_MouseWheel); this.mapmask = (Bitmap)Bitmap.FromFile(Application.StartupPath + "\\res\\MapData.png"); } //--------------------------------------------------------------------------------------- Bitmap mapmask; GameWorld world; GameUnit actor; private void Form1_Load(object sender, EventArgs e) { string path = "F:\\projects\\morefuntek\\Heros\\Client\\GameEditors\\SceneEditor\\Assets\\DGodWorld\\Data\\"; XLSLoader xls = new XLSLoader(); using (FileStream fs = new FileStream(path + "TriggerTemplate.xls.xml", FileMode.Open)) { xls.LoadTriggerTemplate(fs); } using (FileStream fs = new FileStream(path + "UnitTemplate.xls.xml", FileMode.Open)) { xls.LoadUnitTemplate(fs); } this.world = GameWorld.createLOL(mapmask); this.world.test_AddActor("Actor"); } private void restart3CToolStripMenuItem_Click(object sender, EventArgs e) { this.world = GameWorld.create3C(); this.world.test_AddActor("Actor"); } private void restart4AToolStripMenuItem_Click(object sender, EventArgs e) { this.world = GameWorld.create4A(); this.world.test_AddActor("Actor"); } private void restartLOLToolStripMenuItem_Click(object sender, EventArgs e) { this.world = GameWorld.createLOL(mapmask); this.world.test_AddActor("Actor"); } //--------------------------------------------------------------------------------------- // timer 2 for render system private void timer2_Tick(object sender, EventArgs e) { world.setWindow(new RectangleF(0, 0, pictureBox1.Width, pictureBox1.Height)); world.update(); actor = world.getUnitByName("Actor"); if (actor != null) { world.setCamera(actor.pos.x, actor.pos.y); } pictureBox1.Refresh(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { world.renderWorld(e.Graphics); world.renderHUD(e.Graphics, actor); } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { float wx = world.screenToWorldX(e.X); float wy = world.screenToWorldY(e.Y); if (actor != null) { if (e.Button == MouseButtons.Left) { world.test_UnitMove(actor.ID, wx, wy); } else if (e.Button == MouseButtons.Right) { world.test_UnitSlip(actor.ID, wx, wy); } } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { float wx = world.screenToWorldX(e.X); float wy = world.screenToWorldY(e.Y); if (actor != null) { if (e.Button == MouseButtons.Left) { world.test_UnitMove(actor.ID, wx, wy); } } } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (actor != null) { if (e.KeyCode >= Keys.D1 && e.KeyCode <= Keys.D9) { world.test_UnitAttack(actor.ID, 1 + (e.KeyCode - Keys.D1)); } } } private void spawnUnitToolStripMenuItem_Click(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { world.test_AddUnit("Enemy"); } } private void spawnUnit100ToolStripMenuItem_Click(object sender, EventArgs e) { for (int i = 0; i < 100; i++) { world.test_AddUnit("Enemy"); } } private void toolStripMenuItem2_Click(object sender, EventArgs e) { for (int i = 0; i < 1000; i++) { world.test_AddUnit("Enemy"); } } private void toolStripMenuItem3_Click(object sender, EventArgs e) { for (int i = 0; i < 10000; i++) { world.test_AddUnit("Enemy"); } } void form1_MouseWheel(object sender, MouseEventArgs e) { int d = RTSMath.getDirect(e.Delta) ; if (d > 0) { world.setCameraScale(world.getCameraScale() * 1.1f); } else if (d < 0) { world.setCameraScale(world.getCameraScale() / 1.1f); } } } }