public static void Create(ECS.Scene scene, ECS.ComponentList <Components.Transform> transforms, ECS.ComponentList <Components.Body> bodies, ECS.ComponentList <Components.Behavior> behaviors, ECS.ComponentList <Components.Avatar> avatars) { ushort pos; ECS.Entity e = scene.NewEntity(); pos = scene.AttachComponent <Components.Transform>(e, transforms); transforms.data[pos].position.X = 400; transforms.data[pos].position.Y = 400; pos = scene.AttachComponent <Components.Body>(e, bodies); bodies.data[pos].velocity.X = 0; bodies.data[pos].velocity.Y = 0; pos = scene.AttachComponent <Components.Behavior>(e, behaviors); behaviors.data[pos].isPlayerControlled = true; pos = scene.AttachComponent <Components.Avatar>(e, avatars); avatars.data[pos].animations = new Dictionary <string, Components.Animation>(); Components.Animation parado = new Components.Animation(scene, "vivo_idle", 32, 32, new int[] { 140, 140 }, true); Components.Animation andando = new Components.Animation(scene, "vivo_walk", 32, 32, new int[] { 140, 140 }, true); avatars.data[pos].animations.Add("parado", parado); avatars.data[pos].animations.Add("andando", andando); avatars.data[pos].currentAnimation = parado; }
public static void Create(ECS.Scene scene, ECS.ComponentList <Components.Transform> transforms, ECS.ComponentList <Components.Body> bodies, ECS.ComponentList <Components.Behavior> behaviors, ECS.ComponentList <Components.Avatar> avatars, Random random, int W, int H) { ushort pos; ECS.Entity e = scene.NewEntity(); pos = scene.AttachComponent <Components.Transform>(e, transforms); transforms.data[pos].position.X = (float)random.NextDouble() * W; transforms.data[pos].position.Y = (float)random.NextDouble() * H; pos = scene.AttachComponent <Components.Body>(e, bodies); bodies.data[pos].velocity.X = 0; bodies.data[pos].velocity.Y = 0; pos = scene.AttachComponent <Components.Behavior>(e, behaviors); behaviors.data[pos].isPlayerControlled = false; pos = scene.AttachComponent <Components.Avatar>(e, avatars); avatars.data[pos].animations = new Dictionary <string, Components.Animation>(); Components.Animation andando = new Components.Animation(scene, "bolinha", 32, 32, new int[] { 500, 300, 200, 100, 100, 100, 100, 100, 100, 100, 100, 200, 300 }, true); Components.Animation parada = new Components.Animation(scene, "bolinha", 32, 32, new int[] { 1 }, false); avatars.data[pos].animations.Add("parada", parada); avatars.data[pos].animations.Add("andando", andando); avatars.data[pos].currentAnimation = andando; }
public TestScene(TopLevel.Game1 g, SpriteBatch sb) : base(g, sb) { transforms = RegisterComponentList <Components.Transform>(); bodies = RegisterComponentList <Components.Body>(); behaviors = RegisterComponentList <Components.Behavior>(); avatars = RegisterComponentList <Components.Avatar>(); behavior = new Systems.Behavior( behaviors, bodies, componentListIndices[typeof(Components.Body)], avatars, componentListIndices[typeof(Components.Avatar)]); physics = new Systems.Physics( transforms, componentListIndices[typeof(Components.Transform)], bodies, componentListIndices[typeof(Components.Body)]); renderer = new Systems.Renderer( avatars, transforms, componentListIndices[typeof(Components.Transform)]); Prefabs.Vivo.Create(this, transforms, bodies, behaviors, avatars); Random random = new Random(); for (ushort i = 0; i < 500; i++) { if (random.NextDouble() > 0.5) { Prefabs.Kirk.Create(this, transforms, bodies, behaviors, avatars, random, W, H); } else { Prefabs.Bolinha.Create(this, transforms, bodies, behaviors, avatars, random, W, H); } } }
public Renderer(ECS.ComponentList <Components.Avatar> a, ECS.ComponentList <Components.Transform> t, int tPos) { transforms = t; avatars = a; transformsPos = tPos; }
public Physics(ECS.ComponentList <Components.Transform> t, int tPos, ECS.ComponentList <Components.Body> b, int bPos) { transforms = t; bodies = b; transformsPos = tPos; bodiesPos = bPos; }
public ECS.ComponentList <T> RegisterComponentList <T>() { ECS.ComponentList <T> list = new ECS.ComponentList <T>(); componentListIndices.Add(typeof(T), numComponents); numComponents++; return(list); }
public Behavior(ECS.ComponentList <Components.Behavior> beh, ECS.ComponentList <Components.Body> bod, int bPos, ECS.ComponentList <Components.Avatar> ava, int aPos) { behaviors = beh; bodies = bod; avatars = ava; bodiesPos = bPos; avatarsPos = aPos; }