Example #1
0
        public bool Update()
        {
            if (CurScene == null)
            {
                return(false);
            }

            if (CurScene.Update())
            {
                return(true);
            }

            CurScene.Clear();
            CurScene = _NextScene;

            if (_NextScene == null)
            {
                return(false);
            }

            _NextScene = null;
            CurScene.Create();
            CurScene.Enter();
            return(true);
        }
Example #2
0
    public void ChangeScene(eScene a_eScene)
    {
        m_refScene = null;

        ResetPopup();

        Transition.LoadLevel(a_eScene.ToDesc(), 0.5f, Color.black);
    }
Example #3
0
    public void SetScene(CScene a_refScene)
    {
        m_refScene = a_refScene;

        if (m_refScene.m_eScene == eScene.Town)
        {
            GameMng.Ins.EnterTown();
        }
    }
Example #4
0
 public static void Switch <T>()
     where T : CScene, new()
 {
     if (s_cCurrentScene != null)
     {
         s_cCurrentScene.OnExit();
     }
     s_cCurrentScene = new T();
     s_cCurrentScene.OnEnter();
 }
Example #5
0
        public TempScene Initialize(MScene mScene, string path, CScene controller)
        {
            var sO = Create(path);

            sO.mScene = mScene;
            sO.path   = path;
            sO.currentSceneController = controller;

            return(sO);
        }
Example #6
0
        private void btnModel_Click(object sender, EventArgs e)
        {
            string fileName = @"D:\gisData\xlsx\middleLine.xlsx";

            CScene.loadMiddleLineFromDB(fileName);
            CTEProject.LoadTEProFromDB();
            CTEPier.LoadPiersFromDB();
            SaveTEProList();
            SaveTEPier();
            MessageBox.Show("导出成功!");
        }
Example #7
0
        public void Clear()
        {
            if (_NextScene != null)
            {
                _NextScene = null;
            }

            if (CurScene != null)
            {
                CurScene.Exit();
            }
        }
Example #8
0
        public void SetNextForce(CScene Scene_)
        {
            _NextScene = null;

            if (CurScene != null)
            {
                CurScene.Clear();
            }

            CurScene = Scene_;
            CurScene.Create();
            CurScene.Enter();
        }
Example #9
0
 public void SetNext(CScene Scene_)
 {
     if (CurScene != null)
     {
         _NextScene = Scene_; // don't care _NextScene is valid or not
         CurScene.Exit();
     }
     else
     {
         CurScene = Scene_;
         CurScene.Create();
         CurScene.Enter();
     }
 }
Example #10
0
 // inicializa el modo juego ppdicho (una vez que el jugador selecciono el wav
 public void InitGame()
 {
     // esta en un thread aparte , aviso cuando termina
     // cargo el WAV
     sound.Create(wav_files[curr_file]);
     // genero la escena a partir del WAV
     ESCENA = new CScene(MediaDir, sound.PCMBuffer, sound._cant_samples);
     // el resto de la carga
     ESCENA.player    = SHIP = new CShip(MediaDir, ESCENA, "nave\\Swoop+Bike-TgcScene.xml");
     SHIP.pos_en_ruta = 10;
     // termino pongo el status en 2
     m_state     = 2;
     timer_intro = 5;        // 5 segundos de intro antes de que arranque
 }
Example #11
0
        public CShip(string MediaDir, CScene pscene, String fname)
        {
            S = pscene;
            var loader = new TgcSceneLoader();

            mesh = loader.loadSceneFromFile(MediaDir + fname).Meshes[0];
            mesh.AutoTransform = false;
            mesh.Technique     = "DefaultTechnique";

            box = TGCBox.fromExtremes(new TGCVector3(0, 0, 0), new TGCVector3(100, 40, 40),
                                      TgcTexture.createTexture(MediaDir + "texturas\\plasma.png"));
            box.AutoTransform = false;
            box.Technique     = "Fire";

            bb = TGCBox.fromExtremes(new TGCVector3(0, 0, 0), new TGCVector3(1, 1, 1),
                                     TgcTexture.createTexture(MediaDir + "texturas\\plasma.png"));
            bb.AutoTransform = false;
            bb.Technique     = "DefaultTechnique";

            dr = S.ancho_ruta / 2 - 27;
        }
Example #12
0
        public void Update(TgcD3dInput Input, CScene S, float ElapsedTime)
        {
            // tiempo total
            time += ElapsedTime;

            // computo e integro las fuerza
            computeForces(Input, ElapsedTime);
            integrateForces(ElapsedTime);


            pos_en_ruta = S.que_pos(time, vel_lineal, out pos_t);

            // colisiones con los sound tracks de la escena
            colisiona = false;
            if (pos_en_ruta % S.pt_x_track == 0)
            {
                int index     = pos_en_ruta / S.pt_x_track;
                int freq_wav  = S.sound_tracks[index];
                int freq_ship = que_frecuencia();
                if (Math.Abs(freq_ship - freq_wav) < 60)
                {
                    // colision
                    colisiona = true;
                    score++;
                }
                score_total++;
            }

            // interpolo segun pos_t
            posC     = TGCVector3.Lerp(S.pt_ruta[pos_en_ruta], S.pt_ruta[pos_en_ruta + 1], pos_t);
            dir      = TGCVector3.Lerp(S.Tangent[pos_en_ruta], S.Tangent[pos_en_ruta + 1], pos_t);
            normal   = TGCVector3.Lerp(S.Normal[pos_en_ruta], S.Normal[pos_en_ruta + 1], pos_t);
            binormal = TGCVector3.Lerp(S.Binormal[pos_en_ruta], S.Binormal[pos_en_ruta + 1], pos_t);
            // elevo un poco la nave
            posC += normal * desfH;
            pos   = posC + binormal * X;

            // actualizo la posicion de la nave
            mesh.Transform = CalcularMatriz(pos, car_Scale, -dir, normal);
        }
Example #13
0
        public void render(Effect effect, CScene T, CShip S)
        {
            var        device      = D3DDevice.Instance.Device;
            int        pos_en_ruta = S.pos_en_ruta;
            float      dr          = T.ancho_ruta;
            TGCVector3 Normal      = T.Normal[pos_en_ruta];
            TGCVector3 Binormal    = T.Binormal[pos_en_ruta];
            TGCVector3 Tangent     = T.Tangent[pos_en_ruta];
            int        cant_tri    = 0;
            int        dataIdx     = 0;
            int        cant_bandas = 200;
            float      M           = 1000000.0f;

            for (int j = 0; j < cant_bandas; j++)
            {
                float ei = fft.coef(2 * j) / M;
                float y  = 40 + ei * 1230;
                float x0 = 2 * dr * (float)j / (float)cant_bandas - dr - 5;
                float x1 = 2 * dr * (float)(j + 1) / (float)cant_bandas - dr + 5;

                TGCVector3 p0, p1, p2, p3;
                float      dt = -20;
                p0 = S.posC - Binormal * x0 - Normal * 5 + Tangent * dt;
                p1 = S.posC - Binormal * x1 - Normal * 5 + Tangent * dt;
                p2 = p0 + Tangent * y;
                p3 = p1 + Tangent * y;

                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p0, Normal, 0, 0);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p1, Normal, 1, 0);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p2, Normal, 0, 1);

                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p1, Normal, 1, 0);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p2, Normal, 0, 1);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p3, Normal, 1, 1);

                cant_tri += 2;


                x0 = 2 * dr * (float)j / (float)cant_bandas - dr;
                x1 = 2 * dr * (float)(j + 1) / (float)cant_bandas - dr;

                p0 = S.posC - Binormal * x0 - Normal * 5 + Tangent * dt;
                p1 = S.posC - Binormal * x1 - Normal * 5 + Tangent * dt;
                p2 = p0 + Tangent * y;
                p3 = p1 + Tangent * y;

                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p0, Normal, 0, 0);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p1, Normal, 1, 0);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p2, Normal, 0, 1);

                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p1, Normal, 1, 0);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p2, Normal, 0, 1);
                vb_data[dataIdx++] = new CustomVertex.PositionNormalTextured(p3, Normal, 1, 1);

                cant_tri += 2;
            }



            vb.SetData(vb_data, 0, LockFlags.None);

            device.SetStreamSource(0, vb, 0);
            device.VertexFormat = CustomVertex.PositionNormalTextured.Format;
            effect.Technique    = "GlowBar";
            effect.SetValue("cube_color", TGCVector3.Vector3ToFloat4Array(new TGCVector3(1, 0.3f, 0.3f)));
            device.RenderState.AlphaBlendEnable = true;
            device.RenderState.ZBufferEnable    = false;


            int numPasses = effect.Begin(0);

            for (var n = 0; n < numPasses; n++)
            {
                effect.BeginPass(n);
                device.DrawPrimitives(PrimitiveType.TriangleList, 0, cant_tri);
                effect.EndPass();
            }
            effect.End();
            device.RenderState.ZBufferEnable = true;
        }
 public BimDataComponent(CScene controller) : base(controller)
 {
 }
Example #15
0
        public IEnumerator Init(MVersion versions)
        {
            CScene             scene = SceneManager.CurrentScene;
            SUser              sUser = Global.SUser;
            List <IEnumerator> list  = new List <IEnumerator>();

            list.Add(sUser.Download(PromptMessageAsset.Url, versions.prompt_message, (AssetBundle assetbundle) => {
                Debug.Log("CLogo assetbundle=" + assetbundle);
                PromptMessageAsset.assetbundle = assetbundle;
            }));
            list.Add(sUser.Download(LanguageAsset.WORD_URL, versions.word, (AssetBundle assetbundle) => {
                LanguageAsset.assetbundle = assetbundle;
                Language.Reset(LanguageAsset.Data.words);
                LanguageAsset.Clear();
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.horseUrl, versions.horse_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle = assetbundle;
                ImageAssetBundleManager.horse = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.headUrl, versions.head_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle = assetbundle;
                ImageAssetBundleManager.head  = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.clothesUrl, versions.clothes_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle   = assetbundle;
                ImageAssetBundleManager.clothes = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.weaponUrl, versions.weapon_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle  = assetbundle;
                ImageAssetBundleManager.weapon = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(WorldAsset.Url, versions.world, (AssetBundle assetbundle) => {
                WorldAsset.assetbundle = assetbundle;
                Global.worlds          = WorldAsset.Data.worlds;
            }));
            list.Add(sUser.Download(ConstantAsset.Url, versions.constant, (AssetBundle assetbundle) => {
                ConstantAsset.assetbundle = assetbundle;
                Global.Constant           = ConstantAsset.Data.constant;
            }));
            list.Add(sUser.Download(NpcAsset.Url, versions.npc, (AssetBundle assetbundle) => {
                NpcAsset.assetbundle = assetbundle;
                NpcCacher.Instance.Reset(NpcAsset.Data.npcs);
                NpcAsset.Clear();
            }));
            list.Add(sUser.Download(NpcEquipmentAsset.Url, versions.npc_equipment, (AssetBundle assetbundle) => {
                NpcEquipmentAsset.assetbundle = assetbundle;
                NpcEquipmentCacher.Instance.Reset(NpcEquipmentAsset.Data.npc_equipments);
                NpcEquipmentAsset.Clear();
            }));
            list.Add(sUser.Download(CharacterStarAsset.Url, versions.characterstar, (AssetBundle assetbundle) => {
                CharacterStarAsset.assetbundle = assetbundle;
                CharacterStarCacher.Instance.Reset(CharacterStarAsset.Data.characterStars);
                CharacterStarAsset.Clear();
            }));

            /*list.Add(sUser.Download(AreaAsset.Url, versions.area, (AssetBundle assetbundle)=>{
             *  AreaAsset.assetbundle = assetbundle;
             *  AreaCacher.Instance.Reset(AreaAsset.Data.areas);
             *  AreaAsset.Clear();
             * }));*/
            list.Add(sUser.Download(ItemAsset.Url, versions.item, (AssetBundle assetbundle) => {
                ItemAsset.assetbundle = assetbundle;
                ItemCacher.Instance.Reset(ItemAsset.Data.items);
                ItemAsset.Clear();
            }));

            /*list.Add(sUser.Download(MissionAsset.Url, versions.mission, (AssetBundle assetbundle)=>{
             *  MissionAsset.assetbundle = assetbundle;
             *  MissionCacher.Instance.Reset(MissionAsset.Data.missions);
             *  MissionAsset.Clear();
             * }));*/
            list.Add(sUser.Download(SkillAsset.Url, versions.skill, (AssetBundle assetbundle) => {
                SkillAsset.assetbundle = assetbundle;
                SkillCacher.Instance.Reset(SkillAsset.Data.skills);
                SkillAsset.Clear();
            }));
            list.Add(sUser.Download(StrategyAsset.Url, versions.strategy, (AssetBundle assetbundle) => {
                StrategyAsset.assetbundle = assetbundle;
                StrategyCacher.Instance.Reset(StrategyAsset.Data.strategys);
                StrategyAsset.Clear();
            }));
            list.Add(sUser.Download(ExpAsset.Url, versions.exp, (AssetBundle assetbundle) => {
                ExpAsset.assetbundle = assetbundle;
                ExpCacher.Instance.Reset(ExpAsset.Data.exps);
                ExpAsset.Clear();
            }));
            list.Add(sUser.Download(BattlefieldAsset.Url, versions.battlefield, (AssetBundle assetbundle) => {
                BattlefieldAsset.assetbundle = assetbundle;
                BattlefieldCacher.Instance.Reset(BattlefieldAsset.Data.battlefields);
                BattlefieldAsset.Clear();
            }));
            list.Add(sUser.Download(BuildingAsset.Url, versions.building, (AssetBundle assetbundle) => {
                BuildingAsset.assetbundle = assetbundle;
                BuildingCacher.Instance.Reset(BuildingAsset.Data.buildings);
                BuildingAsset.Clear();
            }));
            list.Add(sUser.Download(BaseMapAsset.Url, versions.top_map, (AssetBundle assetbundle) => {
                BaseMapAsset.assetbundle = assetbundle;
                BaseMapCacher.Instance.Reset(BaseMapAsset.Data.baseMaps);
                BaseMapAsset.Clear();
            }));
            list.Add(sUser.Download(CharacterAsset.Url, versions.character, (AssetBundle assetbundle) => {
                CharacterAsset.assetbundle = assetbundle;
                CharacterCacher.Instance.Reset(CharacterAsset.Data.characters);
                CharacterAsset.Clear();
            }));
            list.Add(sUser.Download(TileAsset.Url, versions.tile, (AssetBundle assetbundle) => {
                TileAsset.assetbundle = assetbundle;
                TileCacher.Instance.Reset(TileAsset.Data.tiles);
                TileAsset.Clear();
            }));
            list.Add(sUser.Download(LoginBonusAsset.Url, versions.loginbonus, (AssetBundle assetbundle) => {
                LoginBonusAsset.assetbundle = assetbundle;
                LoginBonusCacher.Instance.Reset(LoginBonusAsset.Data.loginbonuses);
                LoginBonusAsset.Clear();
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.mapUrl, versions.map, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.map = assetbundle;
            }, false));
            list.Add(sUser.Download(ImageAssetBundleManager.equipmentIconUrl, versions.equipmenticon_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.equipmentIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(ImageAssetBundleManager.itemIconUrl, versions.item_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.itemIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(ImageAssetBundleManager.skillIconUrl, versions.skill_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.skillIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(HorseAsset.Url, versions.horse, (AssetBundle assetbundle) => {
                HorseAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetHorse(HorseAsset.Data.equipments);
                HorseAsset.Clear();
            }));
            list.Add(sUser.Download(WeaponAsset.Url, versions.weapon, (AssetBundle assetbundle) => {
                WeaponAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetWeapon(WeaponAsset.Data.equipments);
                WeaponAsset.Clear();
            }));
            list.Add(sUser.Download(ClothesAsset.Url, versions.clothes, (AssetBundle assetbundle) => {
                ClothesAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetClothes(ClothesAsset.Data.equipments);
                ClothesAsset.Clear();
            }));
            list.Add(sUser.Download(StoryProgressAsset.Url, versions.character, (AssetBundle assetbundle) => {
                StoryProgressAsset.assetbundle = assetbundle;
                foreach (string key in StoryProgressAsset.Data.keys)
                {
                    App.Util.LSharp.LSharpVarlable.SetVarlable(key, "0");
                }
                StoryProgressAsset.Clear();
            }));
            if (App.Util.Global.SUser.self != null)
            {
                list.Add(sUser.RequestGet());
            }
            float step = 100f / list.Count;

            for (int i = 0; i < list.Count; i++)
            {
                CLoadingDialog.SetNextProgress((i + 1) * step);
                yield return(scene.StartCoroutine(list[i]));
            }
            yield return(0);
        }
Example #16
0
    public override void OnInspectorGUI()
    {
        CScene scene = (CScene)target;

        //===========>>>>>>Player
        GUILayout.Label("BP Setting(Self)");

        //search existed bp in this scene
        List <GameObject> _bplist = scene.GetBPList(BattleRoleType.Self);

        //draw editor
        for (int i = 0; i < _bplist.Count; i++)
        {
            GUILayout.Label(_bplist[i].name + ":");
            EditorGUILayout.BeginHorizontal();
            _bplist[i].transform.localPosition = EditorGUILayout.Vector3Field("", _bplist[i].transform.localPosition);
            if (GUILayout.Button("Remove"))
            {
                scene.RemoveBpObj(_bplist[i], BattleRoleType.Self);
                Repaint();
            }
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.Space();
        if (GUILayout.Button("Add"))
        {
            scene.AddBPObj(_bplist.Count, BattleRoleType.Self);
            Repaint();
        }

        //=========>>>>>>>Monster
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        GUILayout.Label("BP Setting(Monster)");

        List <GameObject> _bplist_monster = scene.GetBPList(BattleRoleType.Monster);

        for (int i = 0; i < _bplist_monster.Count; i++)
        {
            GUILayout.Label(_bplist_monster[i].name + ":");
            EditorGUILayout.BeginHorizontal();
            _bplist_monster[i].transform.localPosition = EditorGUILayout.Vector3Field("", _bplist_monster[i].transform.localPosition);
            if (GUILayout.Button("Remove"))
            {
                scene.RemoveBpObj(_bplist_monster[i], BattleRoleType.Monster);
                Repaint();
            }
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.Space();
        if (GUILayout.Button("Add"))
        {
            scene.AddBPObj(_bplist_monster.Count, BattleRoleType.Monster);
            Repaint();
        }

        //=========>>>>>>>Boss
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        GUILayout.Label("BP Setting(Boss)");

        List <GameObject> _bplist_boss = scene.GetBPList(BattleRoleType.Boss);

        for (int i = 0; i < _bplist_boss.Count; i++)
        {
            GUILayout.Label(_bplist_boss[i].name + ":");
            EditorGUILayout.BeginHorizontal();
            _bplist_boss[i].transform.localPosition = EditorGUILayout.Vector3Field("", _bplist_boss[i].transform.localPosition);
            if (GUILayout.Button("Remove"))
            {
                scene.RemoveBpObj(_bplist_boss[i], BattleRoleType.Boss);
                Repaint();
            }
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.Space();
        if (GUILayout.Button("Add"))
        {
            scene.AddBPObj(_bplist_boss.Count, BattleRoleType.Boss);
            Repaint();
        }
    }
Example #17
0
    /**
     *  进入某场景
     *  \param nSceneID
     *      场景ID/玩家城市id
     *  \param nResID
     *      场景的客户端资源ID
     *
     *  \param nCityLevel
     *      玩家城市等级,如果小于0,表示是普通场景!
     */
    public bool EnterScene(int nSceneID, int nResID, int nCityLevel)
    {
        //LogManager.Log("EnterScene(): int WorldManager");
        //必须在进入场景流程中
        if (GameProcedure.GetActiveProcedure() != GameProcedure.s_ProcEnter)
        {
            LogManager.Log("Must enter scene at ENTER procedure");
            return(false);
        }

        _DBC_SCENE_DEFINE pSceneDef = null;

        //如果是玩家城市
        bool bUserCity = (nCityLevel >= 0);

        if (bUserCity)
        {
            //查找城市场景
            for (int i = 0; i < (int)DBC.COMMON_DBC <_DBC_SCENE_DEFINE> .DataNum; i++)
            {
                _DBC_SCENE_DEFINE pTempSceneDef = SceneDBC.Search_Index_EQU(i);

                //Id和等级相同
                if (pTempSceneDef.nSceneResID == nResID && pTempSceneDef.nCityLevel == nCityLevel)
                {
                    pSceneDef = pTempSceneDef;
                    break;
                }
            }
        }
        else
        {
            //查找场景定义
            pSceneDef = SceneDBC.Search_Index_EQU(nResID);
        }

        if (pSceneDef == null)
        {
            LogManager.LogError("(CWorldManager::EnterScene) Invalid scene ID:" + nResID);
            return(false);
        }

        //首先离开现有的场景
        if (ActiveScene != null)
        {
            //相同的场景
            if (GetActiveSceneID() == nSceneID)
            {
                //LogManager.Log("Enter The Same Scene");
                return(false);
            }

            // 移除寻路轨迹 [9/21/2011 Sun]
            //ClearAllFreeProjTex();

            //删除当前场景
            m_pActiveScene.LeaveScene();

            m_pActiveScene = null;
        }

        m_nActiveSceneID = (short)nSceneID;
        //创建新的场景
        m_pActiveScene = new CScene(pSceneDef, mLoadSceneBehaviour);

        //加载新的场景, 加载静态物体定义
        m_pActiveScene.Initial();

        ////进入场景
        m_pActiveScene.EnterScene();

        m_Station = WORLD_STATION.WS_ENTER;
        ////产生进入场景的事件
        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_SCENE_TRANSED, ActiveScene.GetSceneDefine().szSceneMap);

        return(true);
    }