95 lines
2.0 KiB
C#
95 lines
2.0 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
|
|
using OpenTK.Graphics.OpenGL4;
|
|
using OpenTK;
|
|
|
|
using OpenTK.Audio.OpenAL;
|
|
using OpenTK.Audio;
|
|
|
|
using ImageSharp;
|
|
using ImageSharp.Processing;
|
|
|
|
using org.budnhead.graphics;
|
|
using org.budnhead.audio;
|
|
using org.budnhead.core;
|
|
|
|
namespace bnhdemo
|
|
{
|
|
public static class BootStrap
|
|
{
|
|
static SquaredMap map;
|
|
|
|
static Actor trackedActor;
|
|
static GLCamera trackingCamera;
|
|
|
|
public static void Main(string[] args){
|
|
Engine.InitializeGraphics();
|
|
|
|
Engine.SceneWindows[0].Scene = new Scene();
|
|
|
|
loadMap();
|
|
|
|
Engine.SceneWindows[0].Visible = true;
|
|
|
|
Engine.SceneWindows[0].KeyPress += (sender, e) => {
|
|
switch (e.KeyChar){
|
|
case 'r':
|
|
SceneWindow sw = Engine.createSceneWindow();
|
|
sw.Visible = true;
|
|
sw.Scene = new Scene(Engine.SceneWindows[0].Scene);
|
|
GLCamera cam = new GLCamera();
|
|
|
|
cam.Position = new Vector3(800,800,384);
|
|
cam.View = new Vector3(-1,-1,-1);
|
|
cam.Top = Vector3.UnitZ;
|
|
|
|
CameraRotator cr = new CameraRotator(cam);
|
|
|
|
sw.PrimaryViewport.SceneOrientation = cam;
|
|
|
|
trackingCamera = cam;
|
|
break;
|
|
|
|
case ' ':
|
|
Console.WriteLine("Fire Ballistic...");
|
|
BallisticActor ba = new BallisticActor(0);
|
|
ba.Position.Value = map.ground(new Vector2(10,10));
|
|
ba.Velocity.Value = new Vector3(1,1,1).Normalized();
|
|
ba.Velocity.Value *= 100.0f;
|
|
ba.fire();
|
|
|
|
trackedActor = ba;
|
|
|
|
break;
|
|
}
|
|
};
|
|
|
|
Engine.AfterUpdate += delegate {
|
|
if ((trackedActor != null)&&(trackingCamera != null)){
|
|
if (trackedActor.IsActive){
|
|
trackingCamera.lookAt(trackedActor.Position.Value);
|
|
} else {
|
|
trackedActor = null;
|
|
}
|
|
}
|
|
};
|
|
|
|
Engine.run();
|
|
}
|
|
|
|
public static void loadMap(){
|
|
ImageSharp.Image i = ImageSharp.Image.Load( new FileStream("M3-wip.png",FileMode.Open));
|
|
i.Flip(ImageSharp.Processing.FlipType.Vertical);
|
|
|
|
map = new SquaredMap(i);
|
|
|
|
Engine.SceneWindows[0].Scene.RootObject.addChild(map);
|
|
|
|
}
|
|
|
|
}
|
|
}
|