本文整理汇总了C#中PloobsEngine.CreateTexture2DColor方法的典型用法代码示例。如果您正苦于以下问题:C# PloobsEngine.CreateTexture2DColor方法的具体用法?C# PloobsEngine.CreateTexture2DColor怎么用?C# PloobsEngine.CreateTexture2DColor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PloobsEngine
的用法示例。
在下文中一共展示了PloobsEngine.CreateTexture2DColor方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
{
tile = factory.GetTexture2D("Textures/tile");
FarseerWorld fworld = this.World.PhysicWorld as FarseerWorld;
///border
border = new Border(fworld, factory, GraphicInfo, factory.CreateTexture2DColor(1, 1, Color.Red));
///from texture
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
tex = factory.GetScaledTexture(tex, new Vector2(4));
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.OnHasMoved += new PloobsEngine.SceneControl._2DScene.OnHasMoved(o_OnHasMoved);
this.World.AddObject(o);
}
///camera
this.World.Camera2D = new Camera2D(GraphicInfo);
///Create the Particle System
DPFSParticleSystem ps = new DPFSParticleSystem("TESTE", new SpriteParticleSystem(null));
this.World.ParticleManager.AddAndInitializeParticleSystem(ps);
///updateable
JointUpdateable ju = new JointUpdateable(this, fworld, this.World.Camera2D);
base.LoadContent(GraphicInfo, factory, contentManager);
}
示例2: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
{
tile = factory.GetTexture2D("Textures/tile");
FarseerWorld fworld = this.World.PhysicWorld as FarseerWorld;
///border
border = new Border(fworld, factory, GraphicInfo, factory.CreateTexture2DColor(1, 1, Color.Red));
///from texture, scale usage sample
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
tex = factory.GetScaledTexture(tex, new Vector2(3));
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, tex);
fs.Position = new Vector2(0, 50);
partobj = new I2DObject(fs, mat, model);
partobj.OnHasMoved += new PloobsEngine.SceneControl._2DScene.OnHasMoved(o_OnHasMoved);
this.World.AddObject(partobj);
}
Vertices verts = PolygonTools.CreateRectangle(150, 150);
{
IModelo2D model = new SpriteFarseer(factory, verts, Color.Green);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model, 1, BodyType.Dynamic);
I2DObject o = new I2DObject(fs, mat, model);
///the origin of the created object will be in the center of it, this mean: if we draw it, the center of mass of it will be on the midle of the screen
///We need to translate it a bit down
o.PhysicObject.Position = new Vector2(100, 100);
this.World.AddObject(o);
}
//circle
verts = PolygonTools.CreateCircle(150, 150);
{
IModelo2D model = new SpriteFarseer(factory, verts, Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model, 1, BodyType.Dynamic);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(-100, -100);
this.World.AddObject(o);
}
///camera
this.World.Camera2D = new Camera2D(GraphicInfo);
DPFSParticleSystem ps = new DPFSParticleSystem("TESTE", new SpriteParticleSystem(null));
this.World.ParticleManager.AddAndInitializeParticleSystem(ps);
///updateable
ju = new JointUpdateable(this, fworld, this.World.Camera2D);
base.LoadContent(GraphicInfo, factory, contentManager);
}
示例3: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
#region Models
{
simpleModel = new SimpleModel(factory, "..\\Content\\Model\\teapot");
simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE);
GhostObject tmesh = new GhostObject(Vector3.Zero, Matrix.Identity, Vector3.One * 2);
///Environment Map Shader, there are 2 options, the first is a fully reflective surface (dont use the object texture) and the second
///is a mix of the object texture and the environment texture
///Used to fake ambient reflection, give metal appearence to an object ....
shader = new ForwardEnvironmentShader(factory.GetTextureCube("Textures\\cubeMap"),1,false);
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject tea = new IObject(fmaterial, simpleModel, tmesh);
tea.OnUpdate += new OnUpdate(tea_OnUpdate);
this.World.AddObject(tea);
}
//{
// SimpleModel simpleModel = new SimpleModel(factory, "Model//block");
// simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.White), TextureType.DIFFUSE);
// BoxObject tmesh = new BoxObject(new Vector3(0,-20,0), 1, 1, 1, 10, new Vector3(200, 1, 200), Matrix.Identity, MaterialDescription.DefaultBepuMaterial());
// tmesh.isMotionLess = true;
// DeferredNormalShader shader = new DeferredNormalShader();
// DeferredMaterial fmaterial = new DeferredMaterial(shader);
// IObject obj = new IObject(fmaterial, simpleModel, tmesh);
// this.World.AddObject(obj);
//}
#endregion
cam = new RotatingCamera(this);
this.World.CameraManager.AddCamera(cam);
SkyBoxSetTextureCube stc = new SkyBoxSetTextureCube("Textures//cubeMap");
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(stc);
}
示例4: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
{
tile = factory.GetTexture2D("Textures/tile");
FarseerWorld fworld = this.World.PhysicWorld as FarseerWorld;
///border
border = new Border(fworld, factory, GraphicInfo, factory.CreateTexture2DColor(1, 1, Color.Red));
///from texture
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(200, 0);
this.World.AddObject(o);
}
///from texture, scale usage sample
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
tex = factory.GetScaledTexture(tex, new Vector2(2));
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.OnHasMoved += new PloobsEngine.SceneControl._2DScene.OnHasMoved(o_OnHasMoved);
this.World.AddObject(o);
}
///rectangle
Vertices verts = PolygonTools.CreateRectangle(50, 50);
{
IModelo2D model = new SpriteFarseer(factory, verts, Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(-200, 0);
this.World.AddObject(o);
}
///circle
CircleShape circle = new CircleShape(50, 1);
{
IModelo2D model = new SpriteFarseer(factory, circle, Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(200, -100);
this.World.AddObject(o);
}
///animated sprite
{
Texture2D tex = factory.GetTexture2D("Textures//DudeSheet");
SpriteAnimated sa = new SpriteAnimated(tex, 8, 2);
sa.AddAnimation("ANIM1", 1, 8, 0);
sa.AddAnimation("ANIM2", 2, 4, MathHelper.PiOver2);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
Texture2D frame = factory.GetTexturePart(tex, sa.GetFrameRectangle("ANIM1", 0));
FarseerObject fs = new FarseerObject(fworld, frame);
//GhostObject fs = new GhostObject(Vector2.Zero);
sheet = new I2DObject(fs, mat, sa);
sheet.PhysicObject.Position = new Vector2(500, 0);
this.World.AddObject(sheet);
}
{
PointLight2D l = new PointLight2D(new Vector2(-GraphicInfo.BackBufferWidth / 4, -GraphicInfo.BackBufferWidth / 4), Color.Red, 1);
this.World.AddLight(l);
}
{
SpotLight2D l = new SpotLight2D(new Vector2(+GraphicInfo.BackBufferWidth / 4, -GraphicInfo.BackBufferWidth / 4), Color.Blue, new Vector2(0, 1), MathHelper.ToRadians(45));
this.World.AddLight(l);
}
{
SimpleConcreteKeyboardInputPlayable sc = new SimpleConcreteKeyboardInputPlayable(StateKey.PRESS, Keys.Space);
sc.KeyStateChange += new KeyStateChange(sc_KeyStateChange);
this.BindInput(sc);
}
///camera
this.World.Camera2D = new Camera2D(GraphicInfo);
DPFSParticleSystem ps = new DPFSParticleSystem("TESTE", new SpriteParticleSystem(null));
this.World.ParticleManager.AddAndInitializeParticleSystem(ps);
///add a post effect =P
//this.RenderTechnic.AddPostEffect(new WigglePostEffect());
///updateable
JointUpdateable ju = new JointUpdateable(this, fworld, this.World.Camera2D);
base.LoadContent(GraphicInfo, factory, contentManager);
//.........这里部分代码省略.........
示例5: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
///Must be called before everything in the LoadContent
base.LoadContent(GraphicInfo, factory, contentManager);
///Create a Simple Model
IModelo sm = new SimpleModel(factory,"..\\Content\\Model\\cenario");
///Create a Physic Object
IPhysicObject pi = new TriangleMeshObject(sm, Vector3.Zero,Matrix.Identity,Vector3.One,MaterialDescription.DefaultBepuMaterial());
pi.isMotionLess = true;
///Create a shader
IShader shader = new DeferredNormalShader();
///Create a Material
IMaterial mat = new DeferredMaterial(shader);
///Create a an Object that englobs everything and add it to the world
IObject obj4 = new IObject(mat, sm,pi);
this.World.AddObject(obj4);
///Create the Physic Objects
{
for (int i = 0; i < 15; i++)
{
CreateThrash(new Vector3(-70 + i * 5, 50, 10));
}
for (int i = 0; i < 15; i++)
{
CreateBox(new Vector3(-70 + i * 7, 100, 50));
}
for (int i = 0; i < 15; i++)
{
CreateThrash(new Vector3(-70 + i * 5, 80, 50));
}
for (int i = 0; i < 15; i++)
{
CreateBall(new Vector3(-70 + i * 5, 50, 30));
}
for (int i = 0; i < 15; i++)
{
CreateBox(new Vector3(-70 + i * 7, 130, -20));
}
for (int i = 0; i < 15; i++)
{
CreateBox(new Vector3(-70 + i * 7, 60, -50));
}
///Create A Ghost Object (Do Not Collide)
{
///Create a Simple Model
SimpleModel model = new SimpleModel(factory, "..\\Content\\Model\\ball");
model.SetTexture(factory.CreateTexture2DColor(1,1,Color.Purple), TextureType.DIFFUSE);
///Create a Physic Object
IPhysicObject pobj = new GhostObject(new Vector3(50, 13f, 50), Matrix.Identity, Vector3.One * 5);
pobj.isMotionLess = true;
///Create a shader
IShader nd = new DeferredNormalShader();
///Create a Material
IMaterial material = new DeferredMaterial(shader);
///Create a an Object that englobs everything and add it to the world
IObject obj = new IObject(material, model, pobj);
this.World.AddObject(obj);
}
}
///Call the function releaseObjects when Space key is pressed
InputPlayableKeyBoard ip1 = new SimpleConcreteKeyboardInputPlayable(StateKey.PRESS, Microsoft.Xna.Framework.Input.Keys.Space, releaseObjects);
///Using the Global Method, need to release when screen is cleaned
///Check the KeyboardInputScreen for how to use it locally
mm = new BindKeyCommand(ip1, BindAction.ADD);
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(mm);
///Create a FirstPerson Camera
///This is a special camera, used in the development
///You can move around using wasd / qz / and the mouse
CameraFirstPerson cam = new CameraFirstPerson(GraphicInfo);
this.World.CameraManager.AddCamera(cam);
///Create some directionals lights and add to the world
DirectionalLightPE ld = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Down, Color.White);
ld.LightIntensity = 0.5f;
ld2.LightIntensity = 0.5f;
ld3.LightIntensity = 0.5f;
this.World.AddLight(ld);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
lightThrow = new LightThrowBepu(this.World,factory);
this.RenderTechnic.AddPostEffect(new AntiAliasingPostEffect());
}
示例6: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
#region Models
///Cria um modelo Controlavel pelo teclado
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1,Color.Blue),TextureType.DIFFUSE);
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
CharacterControllerInput character = new CharacterControllerInput(this, new Vector3(100, 150, 1), 1, 1, 50, Vector3.One * 10, 0.5f);
character.AheadKey = Keys.G;
character.BackKey = Keys.T;
character.LeftKey = Keys.F;
character.RightKey = Keys.H;
character.JumpKey = Keys.R;
character.Characterobj.CharacterController.MaxSpeed = 35f;
character.Characterobj.CharacterController.JumpSpeed = 15f;
player = new IObject(mat, sm, character.Characterobj);
this.World.AddObject(player);
}
///Cria o cenario padrao de sempre ;)
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cenario");
IPhysicObject pi = new TriangleMeshObject(sm,Vector3.Zero, Matrix.Identity,Vector3.One,MaterialDescription.DefaultBepuMaterial());
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
this.World.AddObject(obj3);
}
#endregion
#region Cameras
cam0 = new CameraFollowObject(player);
///Dando um nome a ela (para poder recupera-la depois)
cam0.Name = "follow";
cam0.FarPlane = 3000;
///Adiciona ao Manager (NAO ESTA SENDO ATIVADA, APENAS ADICIONADA)
this.World.CameraManager.AddCamera(cam0, cam0.Name);
///Ativa a camera atual (AO ADICIONAR UMA CAMERA AO WORLD USANDO mundo.AddCamera(cam) A CAMERA EH AUTOMATICAMENTE ATIVADA )
this.World.CameraManager.SetActiveCamera(cam0.Name);
///Adiciona na lista circular
camerasNames.Value = cam0.Name;
camerasNames.Next();
cam1 = new CameraFirstPerson(GraphicInfo);
///Dando um nome a ela (para poder recupera-la depois)
cam1.Name = "first person";
cam1.FarPlane = 3000;
///Adiciona ao Manager (NAO ESTA SENDO ATIVADA, APENAS ADICIONADA)
this.World.CameraManager.AddCamera(cam1, cam1.Name);
///Ativa a camera atual (AO ADICIONAR UMA CAMERA AO WORLD USANDO mundo.AddCamera(cam) A CAMERA EH AUTOMATICAMENTE ATIVADA )
this.World.CameraManager.SetActiveCamera(cam1.Name);
///Adiciona na lista circular
camerasNames.Value = cam1.Name;
//camerasNames.Next();
#endregion
///Objeto que permite atirar bolas de luzes na cena
lt = new LightThrowBepu(this.World, factory);
#region NormalLight
///Conjunto de luzes direcionais
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.4f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
{
SimpleConcreteKeyboardInputPlayable ik = new SimpleConcreteKeyboardInputPlayable(StateKey.PRESS, Keys.Space, ChangeCamera);
BindKeyCommand bk = new BindKeyCommand(ik, BindAction.ADD);
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(bk);
}
}
示例7: LoadContent
/// <summary>
/// Load content for the screen.
/// </summary>
/// <param name="GraphicInfo"></param>
/// <param name="factory"></param>
/// <param name="contentManager"></param>
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
///must be called before all
base.LoadContent(GraphicInfo, factory, contentManager);
///Uncoment to Add an object
/////Create a simple object
/////Geomtric Info and textures (this model automaticaly loads the texture)
//SimpleModel simpleModel = new SimpleModel(factory, "Model FILEPATH GOES HERE", "Diffuse Texture FILEPATH GOES HERE -- Use only if it is not embeded in the Model file");
/////Physic info (position, rotation and scale are set here)
//TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
/////Shader info (must be a deferred type)
//DeferredNormalShader shader = new DeferredNormalShader();
/////Material info (must be a deferred type also)
//DeferredMaterial fmaterial = new DeferredMaterial(shader);
/////The object itself
//IObject obj = new IObject(fmaterial, simpleModel, tmesh);
/////Add to the world
//this.World.AddObject(obj);
{
SimpleModel simpleModel = new SimpleModel(factory, "Model//block");
simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE);
BoxObject tmesh = new BoxObject(Vector3.Zero, 1, 1, 1, 10, new Vector3(500, 5, 500), Matrix.Identity, MaterialDescription.DefaultBepuMaterial());
tmesh.isMotionLess = true;
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject obj = new IObject(fmaterial, simpleModel, tmesh);
this.World.AddObject(obj);
}
{
SimpleModel simpleModel = new SimpleModel(factory, "Model//block");
simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Yellow), TextureType.DIFFUSE);
GhostObject go = new GhostObject(Vector3.Zero, Matrix.Identity, new Vector3(1, 100, 1));
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
BaseObject obj = new BaseObject(fmaterial, simpleModel, go);
obj.Name = "TORRE1";
this.World.AddObject(obj);
//entityFactory.CreateShooterTower(obj, 3, 2, 100);
}
{
Texture2D tex = factory.GetTexture2D("Textures//spriteteste");
SpriteAnimated SpriteAnimated = new PloobsEngine.Modelo2D.SpriteAnimated(tex, 9, 8);
SpriteAnimated.PlayCurrentAnimation();
CharacterObject Characterobj = new CharacterObject(new Vector3(25, 15, 25), Matrix.Identity, 10, 5, 10, 1f, Vector3.One, 5);
Sprite3DShader Sprite3DShader = new Sprite3DShader(Vector2.One);
ForwardMaterial fmaterial = new ForwardMaterial(Sprite3DShader);
ISpriteObject obj = new ISpriteObject(fmaterial, SpriteAnimated, Characterobj);
obj.Name = "Enemy";
this.World.AddObject(obj);
obj.OnUpdate += new OnUpdate(obj_OnUpdate);
}
///Add some directional lights to completely iluminate the world
#region Lights
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.4f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
///Add a AA post effect
this.RenderTechnic.AddPostEffect(new AntiAliasingPostEffect());
///add a camera
this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo));
}
示例8: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
#region Models
///Paralelepipelo (cubo com scale ) enviara mensagens quando colidir com objetos
///Object that will send messages when something collides with it
{
SimpleModel sm = new SimpleModel(factory, "..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1, Color.White), TextureType.DIFFUSE);
BoxObject pi = new BoxObject(new Vector3(100, 40, 0), 1,1,1, 25,new Vector3(100, 10, 100),Matrix.Identity,MaterialDescription.DefaultBepuMaterial());
///Adiciona um handler que sera chamada quando uma colisao acontecer
///Add a handler that will handle the colision =P
pi.Entity.CollisionInformation.Events.InitialCollisionDetected += new BEPUphysics.Collidables.Events.InitialCollisionDetectedEventHandler<BEPUphysics.Collidables.MobileCollidables.EntityCollidable>(Events_InitialCollisionDetected);
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
this.World.AddObject(obj3);
}
////CUBO Q VAI MUDAR DE COR
///Object that will recieve the message (collision message send from the above object) and will change color.
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1, Color.Yellow), TextureType.DIFFUSE);
BoxObject pi = new BoxObject(new Vector3(50, 50, 50), 1,1,1, 5, new Vector3(15),Matrix.Identity,MaterialDescription.DefaultBepuMaterial());
pi.isMotionLess = true;
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
///Adiciona um handler para tratar das mensagens (existe outra maneira mais robusta de fazer isto, conforme citado no exemplo sobre Triggers)
///hanlde incomming messages
obj3.OnRecieveMessage += new OnRecieveMessage(obj3_OnRecieveMessage);
///Forcando um ID, normalmente ele eh setado automaticamente ao adicionar o objeto no mundo
///Set the Id, forcing it (you can only force ids less than 1000)
obj3.SetId(77);
this.World.AddObject(obj3);
long id = obj3.GetId();
///Testa se o Id atribuido eh o forcado
///Internamente a Engine atribui Ids acima de 1000 (valores abaixo funcionarao, a menos que alguem ja tenha forcado este Id antes)
///Como neste caso nao forcamos o id de ninguem para 77, entao o obj3 tera id 77
///Soh pra garantir ;)
///Just check
Debug.Assert(id == 77);
}
////cubo que escuta um canal de mensagens
///Cube that listen a channel
{
SimpleModel sm = new SimpleModel(factory, "..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1,Color.Red), TextureType.DIFFUSE);
BoxObject pi = new BoxObject(new Vector3(100, 50, 50), 1,1,1, 50, new Vector3(15),Matrix.Identity,MaterialDescription.DefaultBepuMaterial());
pi.isMotionLess = true;
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
///Adiciona um handler para tratar das mensagens (existe outra maneira mais robusta de fazer isto, conforme citado no exemplo sobre Triggers)
///OBSERVAR QUE FOI USADO O MESMO HANDLER QUE O OBJETO ANTERIOR (JA QUE DESEJA-SE TER O MESMO EFEITO)
///hanle messages
obj3.OnRecieveMessage += new OnRecieveMessage(obj3_OnRecieveMessage);
this.World.AddObject(obj3);
///Adiciona este objeto ao canal de comunicao chamado "cubo" (recebera mensagens deste grupo tb)
///REGISTER IN THIS MESSAGE CHANNEL
EntityMapper.getInstance().AddgrouptagRecieveEntity("cubo", obj3);
}
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cenario");
IPhysicObject pi = new TriangleMeshObject(sm, Vector3.Zero,Matrix.Identity,Vector3.One,MaterialDescription.DefaultBepuMaterial());
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
this.World.AddObject(obj3);
}
#endregion
cam = new CameraFirstPerson(GraphicInfo);
cam.FarPlane = 3000;
lt = new LightThrowBepu(this.World, factory);
#region NormalLight
///Conjunto de luzes direcionais
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.4f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
//.........这里部分代码省略.........
示例9: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
#region Models
createobjs();
///Some Physic World Parameters
///No accuracy (speed up the simulation) and no gravity
BepuPhysicWorld physicWorld = this.World.PhysicWorld as BepuPhysicWorld;
physicWorld.Space.Solver.IterationLimit = 1; //Essentially no sustained contacts, so don't need to worry about accuracy.
{
SimpleModel sm = new SimpleModel(factory, "..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Blue), TextureType.DIFFUSE);
MaterialDescription md = MaterialDescription.DefaultBepuMaterial();
md.Bounciness = 1;
BoxObject pi = new BoxObject(new Vector3(0,-30,0), 1, 1, 1, 1, new Vector3(50,1,50), Matrix.Identity, md);
pi.isMotionLess = true;
pi.Entity.AngularDamping = 0f;
ForwardXNABasicShader shader = new ForwardXNABasicShader();
IMaterial mat = new ForwardMaterial(shader);
IObject obj5 = new IObject(mat, sm, pi);
this.World.AddObject(obj5);
shader.BasicEffect.EnableDefaultLighting();
}
#endregion
cam = new RotatingCamera(this);
this.World.CameraManager.AddCamera(cam);
}
示例10: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
{
tile = factory.GetTexture2D("Textures/tile");
FarseerWorld fworld = this.World.PhysicWorld as FarseerWorld;
///border
border = new Border(fworld, factory, GraphicInfo, factory.CreateTexture2DColor(1, 1, Color.Red));
///from texture
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, tex);
I2DObject o = new I2DObject(fs, mat, model);
o.OnHasMoved += new PloobsEngine.SceneControl._2DScene.OnHasMoved(o_OnHasMoved);
this.World.AddObject(o);
}
///from texture, scale usage sample
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
tex = factory.GetScaledTexture(tex, new Vector2(2));
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, tex);
I2DObject o = new I2DObject(fs, mat, model);
this.World.AddObject(o);
}
///rectangle
Vertices verts = PolygonTools.CreateRectangle(5, 5);
{
IModelo2D model = new SpriteFarseer(factory, verts, Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, verts);
I2DObject o = new I2DObject(fs, mat, model);
this.World.AddObject(o);
}
///circle
CircleShape circle = new CircleShape(5, 1);
{
IModelo2D model = new SpriteFarseer(factory, circle, Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, circle);
I2DObject o = new I2DObject(fs, mat, model);
this.World.AddObject(o);
}
///camera
this.World.Camera2D = new Camera2D(GraphicInfo);
DPFSParticleSystem ps = new DPFSParticleSystem("TESTE", new SpriteParticleSystem(null));
this.World.ParticleManager.AddAndInitializeParticleSystem(ps);
///add a post effect =P
//this.RenderTechnic.AddPostEffect(new WigglePostEffect());
///updateable
JointUpdateable ju = new JointUpdateable(this, fworld, this.World.Camera2D);
base.LoadContent(GraphicInfo, factory, contentManager);
}
示例11: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, PloobsEngine.SceneControl.IContentManager contentManager)
{
tile = factory.GetTexture2D("Textures/tile");
FarseerWorld fworld = this.World.PhysicWorld as FarseerWorld;
///border
border = new Border(fworld, factory, GraphicInfo, factory.CreateTexture2DColor(1, 1, Color.Red));
///from texture
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(200, 0);
this.World.AddObject(o);
}
///from texture, scale usage sample
{
Texture2D tex = factory.GetTexture2D("Textures//goo");
tex = factory.GetScaledTexture(tex, new Vector2(2));
IModelo2D model = new SpriteFarseer(tex);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.OnHasMoved += new PloobsEngine.SceneControl._2DScene.OnHasMoved(o_OnHasMoved);
this.World.AddObject(o);
}
///rectangle
Vertices verts = PolygonTools.CreateRectangle(50, 50);
{
IModelo2D model = new SpriteFarseer(factory, verts, Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(-200, 0);
this.World.AddObject(o);
}
///circle
CircleShape circle = new CircleShape(50, 1);
{
IModelo2D model = new SpriteFarseer(factory, circle , Color.Orange);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
FarseerObject fs = new FarseerObject(fworld, model);
I2DObject o = new I2DObject(fs, mat, model);
o.PhysicObject.Position = new Vector2(200, -100);
this.World.AddObject(o);
}
///animated sprite
{
Texture2D tex = factory.GetTexture2D("Textures//DudeSheet");
SpriteAnimated sa = new SpriteAnimated(tex, 8, 2);
sa.AddAnimation("ANIM1", 1, 8,0);
sa.AddAnimation("ANIM2", 2, 4, MathHelper.PiOver2);
Basic2DTextureMaterial mat = new Basic2DTextureMaterial();
Texture2D frame = factory.GetTexturePart(tex,sa.GetFrameRectangle("ANIM1",0));
FarseerObject fs = new FarseerObject(fworld, frame);
//GhostObject fs = new GhostObject(Vector2.Zero);
sheet = new I2DObject(fs, mat, sa);
sheet.PhysicObject.Position = new Vector2(500, 0);
this.World.AddObject(sheet);
}
{
PointLight2D l = new PointLight2D(new Vector2(-GraphicInfo.BackBufferWidth / 4, -GraphicInfo.BackBufferWidth / 4), Color.Red, 1);
this.World.AddLight(l);
}
{
SpotLight2D l = new SpotLight2D(new Vector2(+GraphicInfo.BackBufferWidth / 4, -GraphicInfo.BackBufferWidth / 4), Color.Blue, new Vector2(0, 1), MathHelper.ToRadians(45));
this.World.AddLight(l);
}
{
SimpleConcreteKeyboardInputPlayable sc = new SimpleConcreteKeyboardInputPlayable(StateKey.PRESS,Keys.Space);
sc.KeyStateChange+=new KeyStateChange(sc_KeyStateChange);
this.BindInput(sc);
}
///camera
this.World.Camera2D = new Camera2D(GraphicInfo);
DPFSParticleSystem ps = new DPFSParticleSystem("TESTE", new SpriteParticleSystem(null));
this.World.ParticleManager.AddAndInitializeParticleSystem(ps);
///add a post effect =P
//this.RenderTechnic.AddPostEffect(new WigglePostEffect());
///updateable
JointUpdateable ju = new JointUpdateable(this, fworld, this.World.Camera2D);
base.LoadContent(GraphicInfo, factory, contentManager);
//.........这里部分代码省略.........
示例12: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
#region Models
///Some Physic World Parameters
///No accuracy (speed up the simulation) and no gravity
BepuPhysicWorld physicWorld = this.World.PhysicWorld as BepuPhysicWorld;
System.Diagnostics.Debug.Assert(physicWorld != null);
physicWorld.Space.Solver.IterationLimit = 1; //Essentially no sustained contacts, so don't need to worry about accuracy.
int numColumns = 10;
int numRows = 10;
int numHigh = 15;
///1500 box
///1500 luzes
///CREATE LOOOOTS OF OBJECTS AND LIGHTS
float separation = 3;
for (int i = 0; i < numRows; i++)
for (int j = 0; j < numColumns; j++)
for (int k = 0; k < numHigh; k++)
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1, StaticRandom.RandomColor()), TextureType.DIFFUSE);
MaterialDescription md = MaterialDescription.DefaultBepuMaterial();
md.Bounciness = 1;
BoxObject pi = new BoxObject(new Vector3(separation * i, k * separation, separation * j), 1,1,1, 1,new Vector3(1),Matrix.Identity,md);
pi.Entity.AngularDamping = 0f; //It looks cooler if boxes don't slowly stop spinning!
IShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj5 = new IObject(mat, sm, pi);
this.World.AddObject(obj5);
///Light is atached to the blocks
MoveablePointLight pl = new MoveablePointLight(pi, StaticRandom.RandomColor(), 5, 1);
this.World.AddLight(pl);
}
#endregion
cam = new CameraFirstPerson(GraphicInfo);
cam.FarPlane = 3000;
this.World.CameraManager.AddCamera(cam);
///THROW THE BALLS IN THE BLOCKS !!!!!!
lt = new LightThrowBepu(this.World, factory);
#region NormalLight
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.4f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
}
示例13: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
Picking picking = new Picking(this);
this.AddScreenUpdateable(picking);
#region Models
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cenario");
IPhysicObject pi = new TriangleMeshObject(sm, Vector3.Zero,Matrix.Identity,Vector3.One,MaterialDescription.DefaultBepuMaterial());
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
obj3.Name = "cenario";
this.World.AddObject(obj3);
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1, Color.White), TextureType.DIFFUSE);
BoxObject pi = new BoxObject(new Vector3(i * 10, 100, j * 10),1,1,1,1,new Vector3(5),Matrix.Identity,MaterialDescription.DefaultBepuMaterial());
pi.isMotionLess = true;
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj4 = new IObject(mat, sm, pi);
obj4.Name = "Block " + i + " : " + j;
this.World.AddObject(obj4);
}
}
#endregion
cam = new CameraFirstPerson(GraphicInfo);
cam.FarPlane = 3000;
#region NormalLight
///Conjunto de luzes direcionais
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.2f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
this.World.CameraManager.AddCamera(cam);
picking.OnPickedNoneButton += new OnPicked(onPick);
sp1 = new SpotLightPE(new Vector3(0, 150, 0), new Vector3(0, -1, 0), Color.PapayaWhip, 1, 200, (float)Math.Cos(Math.PI / 12), 2f);
this.World.AddLight(sp1);
}
示例14: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
Picking picking = new Picking(this);
this.AddScreenUpdateable(picking);
#region Models
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cenario");
IPhysicObject pi = new TriangleMeshObject(sm, Vector3.Zero,Matrix.Identity,Vector3.One,MaterialDescription.DefaultBepuMaterial());
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
obj3.Name = "cenario";
this.World.AddObject(obj3);
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
SimpleModel sm = new SimpleModel(factory,"..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1,1, Color.White), TextureType.DIFFUSE);
BoxObject pi = new BoxObject(new Vector3(i * 10, 100, j * 10),1,1,1,1,new Vector3(5),Matrix.Identity,MaterialDescription.DefaultBepuMaterial());
pi.isMotionLess = true;
DeferredNormalShader shader = new DeferredNormalShader();
IMaterial mat = new DeferredMaterial(shader);
IObject obj4 = new IObject(mat, sm, pi);
obj4.Name = "Block " + i + " : " + j;
this.World.AddObject(obj4);
}
}
#endregion
cam = new CameraFirstPerson(GraphicInfo);
cam.FarPlane = 3000;
#region NormalLight
///Conjunto de luzes direcionais
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.4f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
this.World.CameraManager.AddCamera(cam);
///O PICKING FUNCIONA APENAS COM OBJETOS QUE TENHAM CORPO FISICO REAL !!!
///OS GHOST E OS DUMMY NUNCA SERAO SELECIONADOS
///Para ser informado a todo frame sobre as colisoes do raio, basta utilizar o outro construtor
picking.OnPickedLeftButton += new OnPicked(onPick);
}
示例15: LoadContent
protected override void LoadContent(PloobsEngine.Engine.GraphicInfo GraphicInfo, PloobsEngine.Engine.GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
{
SimpleModel sm = new SimpleModel(factory, "..\\Content\\Model\\ball");
sm.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Blue), TextureType.DIFFUSE);
IPhysicObject pi = new SphereObject(new Vector3(0, 0, 0), 1, 10, 30, MaterialDescription.DefaultBepuMaterial());
pi.isMotionLess = true;
ForwardXNABasicShader shader = new ForwardXNABasicShader();
IMaterial mat = new ForwardMaterial(shader);
IObject obj3 = new IObject(mat, sm, pi);
this.World.AddObject(obj3);
shader.BasicEffect.EnableDefaultLighting();
BepuPhysicWorld physicWorld;
physicWorld = this.World.PhysicWorld as BepuPhysicWorld;
System.Diagnostics.Debug.Assert(physicWorld != null);
var field = new GravitationalFieldObject(new InfiniteForceFieldShape(), obj3.PhysicObject.Position, 66730 / 2f, 10000, physicWorld);
///This Method is from BepuPhysicWorld not from th IPhysicObject
///You can use everithing from Bepu using this object instead of the interface
///but take care, the engine dont know about THIS !!! it does not manage these things
physicWorld.Space.Add(field);
}
int numColumns = 7;
int numRows = 7;
int numHigh = 7;
float separation = 3;
{
///reuse instances that does not change
SimpleModel sm = new SimpleModel(factory, "..\\Content\\Model\\cubo");
sm.SetTexture(factory.CreateTexture2DColor(1, 1, Color.White), TextureType.DIFFUSE);
ForwardXNABasicShader shader = new ForwardXNABasicShader();
IMaterial mat = new ForwardMaterial(shader);
for (int i = 0; i < numRows; i++)
{
for (int j = 0; j < numColumns; j++)
{
for (int k = 0; k < numHigh; k++)
{
BoxObject pi = new BoxObject(new Vector3(separation * i - numRows * separation / 2, 40 + k * separation, separation * j - numColumns * separation / 2), 1, 1, 1, 5, new Vector3(1), Matrix.Identity, MaterialDescription.DefaultBepuMaterial());
pi.Entity.LinearDamping = 0;
pi.Entity.AngularDamping = 0;
IObject obj3 = new IObject(mat, sm, pi);
this.World.AddObject(obj3);
pi.Entity.LinearVelocity = new Vector3(30, 0, 0);
}
}
}
shader.BasicEffect.EnableDefaultLighting();
}
//cam = new CameraFirstPerson(GraphicInfo);
//cam.FarPlane = 3000;
#region NormalLight
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.4f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
RotatingCamera cam = new RotatingCamera(this,new Vector3(0,0,-300));
this.World.CameraManager.AddCamera(cam);
}