public void ForceTest() { float mass = 1.5f; float g = 9.81f; ForceList forces = new ForceList(mass); Assert.IsTrue(Vector2.Zero == forces.Acceleration); forces.AddForce("Poids", new Vector2(0, mass * -g)); Assert.IsTrue(new Vector2(0, -g) == forces.Acceleration); forces.AddForce("JetPack", new Vector2(2, 12)); Assert.IsTrue(new Vector2(0, -g) != forces.Acceleration); forces.RemoveForce("poids"); Assert.IsTrue(new Vector2(2, 12) / mass == forces.Acceleration); forces.UpdateForce("jetpack", new Vector2(1, 1)); Assert.IsTrue(new Vector2(1, 1) / mass == forces.Acceleration); }
/// <summary> /// 初始化 找到前面背景各32张图 /// </summary> void InitMethod() { int count = Force.transform.childCount;//count==32; for (int i = 0; i < count / 8; i++) { //4row 4个list List <GameObject> list = new List <GameObject>(); //8列 column for (int k = 0; k < count / 4; k++) { //根据二维坐标计算,(0,0)(0,1)(r,c)(当前r*总列数+当前列数);总列数为:固定值; list.Add(Force.transform.GetChild(k + i * 8).gameObject); } ForceList.Add(list); } count = Back.transform.childCount; for (int i = 0; i < count / 8; i++) { List <GameObject> list = new List <GameObject>(); for (int k = 0; k < count / 4; k++) { list.Add(Back.transform.GetChild(k + i * 8).gameObject); } BackList.Add(list); } }
public ColliderPhysics(Transform transform, float mass, ForceList forces = null, float friction = 0.1f, bool collidable = true) : base(transform, collidable) { Mass = mass; Forces = forces ?? new ForceList(Mass); Friction = friction; Velocity = Vector2.Zero; }
public cCritterBoss(cGame pOwnerGame = null) : base(pOwnerGame) { MaxSpeed = 40; Health = 5; ForceList.RemoveAll(); ForceList.Add(new cForceBossMovement(150000.0f)); Sprite = new cSpriteQuake(ModelsMD2.Eva01); Radius = 3; moveTo(new cVector3(Game.Border.Midx, Game.Border.Loy, Game.Border.Midz)); Target = Game.Player; AimToAttitudeLock = false; //copyMotionMatrixToAttitudeMatrix(); AttitudeToMotionLock = false; BULLETRADIUS = 0.4f; setMoveBox(new cRealBox3(new cVector3(Game.Border.Lox, Game.Border.Loy, Game.Border.Loz + 3), new cVector3(Game.Border.Hix, Game.Border.Hiy, Game.Border.Hiz - 3))); //set upright rotateAttitude(new cSpin((float)Math.PI * 3f / 2f, new cVector3(1, 0, 0))); //set looking left rotateAttitude(new cSpin((float)Math.PI * 3f / 2f, new cVector3(0, 0, 1))); _dead = false; }
public cCritterMinion(cGame pOwnerGame) : base(pOwnerGame) { ForceList.Add(new cForceMinionMovement(pOwnerGame.Player)); Sprite = new cSpriteQuake(ModelsMD2.Hunter); Sprite.Radius = 1; }