Example #1
0
 public TankSinTur(string name, GameObjInfo objInfo, string texPath, GameObjData skinData,
                   float raderLength, float raderAng, Color raderColor, float raderAzi,
                   float maxForwardSpeed, float maxBackwardSpeed, float maxRotaSpeed,
                   float maxTurretRotaSpeed, float maxRaderRotaSpeed, float fireCDTime,
                   Vector2 pos, float baseRota, float turretRota)
 {
     this.name    = name;
     this.objInfo = objInfo;
     this.skin    = new TankSkinSinTur(new TankSkinSinTurData(texPath, skinData));
     skin.Initial(pos, baseRota, turretRota);
     controller            = new TankContrSinTur(objInfo, new Sprite[] { skin.Sprites[0] }, pos, baseRota, maxForwardSpeed, maxBackwardSpeed, maxRotaSpeed, maxTurretRotaSpeed, maxRaderRotaSpeed, Math.Max(0, fireCDTime));
     colChecker            = controller;
     phisicalUpdater       = controller;
     controller.onShoot   += new EventHandler(controller_onShoot);
     controller.OnCollied += new OnCollidedEventHandler(controller_OnCollied);
     controller.OnOverlap += new OnCollidedEventHandler(controller_OnOverlap);
     rader = new Rader(raderAng, raderLength, pos, raderAzi + baseRota, raderColor);
 }
Example #2
0
        private static ObjVisiBorder CalNonShelterVisiBorder(IHasBorderObj obj, Rader rader)
        {
            CircleListNode <BorderPoint> curNode = obj.BorderData.First;
            CircleList <BordPoint>       points  = new CircleList <BordPoint>();

            for (int i = 0; i < obj.BorderData.Length; i++)
            {
                if (rader.PointInRader(Vector2.Transform(ConvertHelper.PointToVector2(curNode.value.p), obj.WorldTrans)))
                {
                    points.AddLast(new BordPoint(i, curNode.value.p));
                }
                curNode = curNode.next;
            }
            if (points.Length != 0)
            {
                return(new ObjVisiBorder(obj, points));
            }
            else
            {
                return(null);
            }
        }
Example #3
0
    public override void setCool()
    {
        com = enemy.GetComponent<Enemy_Move>();
        user = com._player.GetComponent<Player_Move>();
        rader = (GameObject)Instantiate(defaultRader, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);
        rad = rader.GetComponent<Rader>();

        skillWaitTime[0] = 300;
        skillWaitTime[1] = 500;
        skillWaitTime[2] = 1200;
        skillWaitTime[3] = 100000;
        skillWaitTime[4] = 100000;
        skillWaitTime[5] = 1200;

        for (int i = 0; i < 6; ++i)
            com.skillWaitTime[i] = skillWaitTime[i];

        for (int i = 0; i < 5; ++i)
            com.skillCool[i] = Random.Range(0, skillWaitTime[i]);
        com.skillCool[5] = skillWaitTime[5];

        com.defaultMaxSpeed = 0.175f;
        com.defaultAccel = 0.008f;
        com.drfaultFricForce = 0.001f;
        if (com._level == 0)
        {
            com.defaultMaxSpeed *= 0.8f;
            com.defaultAccel *= 0.8f;
            com.drfaultFricForce *= 0.8f;
        }
        else if (com._level == 2)
        {
            com.defaultMaxSpeed *= 1.3f;
            com.defaultAccel *= 1.3f;
            com.drfaultFricForce *= 1.3f;
        }
        com.maxSpeed = com.defaultMaxSpeed;
        com.accel = com.defaultAccel;
        com.fricForce = com.drfaultFricForce;

        this.transform.position = new Vector3(0, 5, 0);
    }
Example #4
0
 // Use this for initialization
 void Start()
 {
     Rader.RegisterRaderObject(this.gameObject, image);
 }
Example #5
0
 void OnDestroy()
 {
     Rader.RemoveRaderObject(this.gameObject);
 }