예제 #1
0
    void OnItemClicked(PictruePage_Item item)
    {
        AudioManager.PlaySe("button");
        // 如果是图片分类,则开始新游戏
        //if(!isUncomplete)
        //{
        if (item.data.status != PicturePage_ItemStatus.Locked)
        {
            //UIEngine.Forward<LevelCompletePage>();
            var picId = item.data.picRow.Get <int>("id");
            // GameController.EnterCore(picId);
            var admin = new Admission_PopupNewPage();
            UIEngine.Forward <LevelSettingsPage>(picId.ToString(), admin);
        }
        RadioStation.Brodcast("SELECT_PIC");
        //}

        // 如果是未完成的拼图, 则继续游戏
        // if(isUncomplete)
        // {
        //     var picId = item.data.picRow.Get<int>("id");
        //     var info = PlayerStatus.uncompletePuzzle[picId.ToString()];
        //     GameController.EnterWithInfo(info);
        //     // GameController.EnterCore(picId);
        //     // var admin = new Admission_PopupNewPage();
        //     // UIEngine.Forward<LevelSettingsPage>(picId.ToString(), admin);
        // }
    }
예제 #2
0
    public static void EnterCore(int picId, int sliceId)
    {
        // save status
        lastPicId   = picId;
        lastSliceId = sliceId;

        // hide bg and show core page
        UIEngine.HideFlaoting <BackgroundFloating>();

        UIEngineHelper.WateAdmissionComplete(() => {
            UIEngine.Forward <CorePage>();
        });

        // load picture which player select
        var picFile       = StaticDataLite.GetCell <string>("pic", picId.ToString(), "file");
        var contentSprite = PicLibrary.LoadContentSprite(picFile);

        // load slice info
        var piceSize = StaticDataLite.GetCell <int>("pice_slice", sliceId.ToString(), "cell_size");

        // test code
        // piceSize = 400;

        // start core game
        Puzzle.Instance.StartPuzzle(contentSprite, piceSize);

        // when compelte
        Puzzle.Instance.Complete += OnCoreGameCompelte;

        //LocalNotification.SendNotification(1, 5000, "Title", "Long message text", new Color32(0xff, 0x44, 0x44, 255));
    }
예제 #3
0
 public void OnButton(string msg)
 {
     if (msg == "shot")
     {
         Shot();
     }
     else if (msg == "close")
     {
         UIEngine.BackTo <ImitateMainPage>();
     }
     else if (msg == "change_device")
     {
         ChangeDevice(this.RawImage_moniter);
     }
     else if (msg == "use_album")
     {
         UseAlbumAsync();
     }
     else if (msg == "cheat")
     {
         var input = ImitateManager.origin;
         ImitateManager.input = input;
         var page = UIEngine.Forward <ImitateResultPage>();
         page.SetImage(input);
         page.PlayFlash();
     }
 }
예제 #4
0
파일: Game.cs 프로젝트: Peng-Zhiyuan/puzzle
    void Start()
    {
        Application.logMessageReceived += OnUnityLog;
        UnityEngine.Random.InitState(DateTime.UtcNow.Second);
        StaticDataLite.Init();
        UIEngine.Init();
        PlayerStatus.Read();
        UIEngine.Forward("LoadingPage", null, new Admission_None());
        //UIEngine.Forward<LevelCompletePage>();
        if (GameInfo.ForceDeveloper)
        {
            var commandline = UIEngine.ShowFloating <CommandLineFloating>(null, UIDepth.Top);
        }
        if (GameInfo.ForceRemoveAd)
        {
            PlayerStatus.removeAd = true;
        }
        PushManager.ResetNotification();

        // 摄像机渲染区域默认根据高去调整宽
        // 但是这里需要根据宽调整高
        // 因此需要手动设置摄像机的渲染高度,达到宽度固定 1080 效果

        heightScale = CameraUtil.SetCameraSizeByDecisionRevelutionAndFixAtWidth(1080, 1920);

        var silence = GameManifestFinal.Get("silence", "false");

        if (silence == "true")
        {
            AudioManager.Volume = 0;
        }
    }
예제 #5
0
    void Update()
    {
        if (m_over_time > 0.0f)
        {
            m_over_time -= Time.deltaTime;
            if (m_over_time <= 0.0f)
            {
                m_over_time = -1.0f;
                UIEngine.Forward <HotSharePage>();
            }
        }
        else
        {
            if (m_ready_time > 0.0f)
            {
                m_ready_time -= Time.deltaTime;
                if (m_ready_time <= 0.0f)
                {
                    ReadyDown();
                }
            }
            else
            {
                m_time -= Time.deltaTime;
                if (m_time < 0.0f)
                {
                    m_time = 0.0f;
                    Over();
                }
                TimeLabel.text   = ((int)m_time).ToString();
                m_bar.fillAmount = (m_time / 15.0f);

                m_indev_tick -= Time.deltaTime;
                if (m_indev_tick <= 0.0f)
                {
                    m_indev_tick = HotDotData.ShotIndev;
                    if (Application.isEditor)
                    {
                        if (UnityEngine.Random.value < 0.1f)
                        {
                            m_eat_num++;
                        }
                        //Debug.Log(Time.time+"Editor EatNum ++" + m_eat_num);
                    }
                    else
                    {
                        //Debug.Log("hereA");
                        CheckFace();
                    }
                }

                if (m_eat_num > 0)
                {
                    Eat();

                    // Debug.Log(Time.time + "EatNum --" + m_eat_num);
                }
            }
        }
    }
예제 #6
0
    private void StartShot()
    {
        var origin = RawImage_origin.texture as Texture2D;

        ImitateManager.origin = origin;
        UIEngine.Forward <ImitateShotPage>();
    }
예제 #7
0
    public void OnStartButton()
    {
        if (first)
        {
            return;
        }
        // 检查这个 picId 是否已经有存档,如果有则提示
        var picId = int.Parse(this.param as string);

        var info = PlayerStatus.TryGetUncompleteOfPicId(picId);

        if (info != null)
        {
            var param = new DialogParam();
            param.des    = "会覆盖已存在的游戏,是否继续?";
            param.button = "确定";
            var admin  = new Admission_PopupNewPage();
            var dialog = UIEngine.Forward <DialogPage>(param, admin);
            dialog.Complete = result => {
                if (result == DialogResult.Conform)
                {
                    GameController.EnterCore(picId, selectItem.dataRow.Get <int>("id"));
                }
            };
        }
        else
        {
            GameController.EnterCore(picId, selectItem.dataRow.Get <int>("id"));
        }
        AudioManager.PlaySe("button");
        RadioStation.Brodcast("NEW_GAME");
    }
예제 #8
0
    private static void OnCoreGameCompelte()
    {
        var sliceRow = StaticDataLite.GetRow("pice_slice", lastSliceId.ToString());
        var gold     = sliceRow.Get <int>("gold");
        var exp      = sliceRow.Get <int>("exp");

        HeadBarFloating.instance.AutoRefresh = false;
        PlayerStatus.exp  += 10;
        PlayerStatus.gold += 10;
        PlayerStatus.completeCount++;
        // 更新记录
        var record = PlayerStatus.GetCompleteInfoOfPicId(lastPicId);

        if (record == null || record.sliceId < lastSliceId)
        {
            var info = new CompleteInfo();
            info.pid     = lastPicId;
            info.sliceId = lastSliceId;
            PlayerStatus.completeDic[lastPicId.ToString()] = info;
        }
        // 如果这张图有中途存档,则删除存档
        PlayerStatus.RemoveUncompleteInfoOfPicId(lastPicId);

        PlayerStatus.Save();

        LevelCompletePage.goldParam = gold;
        LevelCompletePage.expParam  = exp;

        var admin = new Admission_FadeInNewPage();

        UIEngine.Forward <LevelCompletePage>(null, admin);
    }
예제 #9
0
    public IEnumerator WaitAndShowSign()
    {
        yield return(new WaitForSeconds(0.5f));

        var admin = new Admission_PopupNewPage();

        UIEngine.Forward <SignPage>(null, admin);
    }
예제 #10
0
    public void OnGiftButton()
    {
        AudioManager.PlaySe("sign-and-shop");
        var addmision = new Admission_PopupNewPage();

        AdPage.sources = AdPageOpenSources.Shop;
        UIEngine.Forward <AdPage>(null, addmision);
    }
예제 #11
0
    public void OnSignClicked()
    {
        var admin = new Admission_PopupNewPage();

        UIEngine.Forward <SignPage>(null, admin);
        AudioManager.PlaySe("button");
        AudioManager.PlaySe("sign-and-shop");
    }
예제 #12
0
    public void OnShopButton()
    {
        AudioManager.PlaySe("sign-and-shop");
        var admission = new Admission_OldDownNewUp();

        UIEngine.Forward <ShopPage>(null, admission);
        HeadBarFloating.admission = new Admission_OldDownNewUp();
    }
예제 #13
0
 void Start()
 {
     Application.targetFrameRate = 60;
     StaticData.Init();
     ImitateDecoImageManager.Init();
     ImitateRankManager.Init();
     UIEngine.Init();
     UIEngine.Forward <ImitateMainPage>();
     AudioManager.PlayBgm("main");
 }
예제 #14
0
    public void OnGiftButton()
    {
        AdPage.sources = AdPageOpenSources.LevelComplete;
        AudioManager.PlaySe("sign-and-shop");
        var addmision = new Admission_PopupNewPage();
        var adPage    = UIEngine.Forward <AdPage>(null, addmision);

        adPage.Compelte = () => {
            button_gift.gameObject.SetActive(false);
        };
    }
예제 #15
0
    private async void UseAlbumAsync()
    {
        var base64 = await Photo.SelectAsync();

        var texture = ImitateUtil.Base64ToTexture(base64);

        ImitateManager.input = texture;
        var page = UIEngine.Forward <ImitateResultPage>();

        page.SetImage(texture);
        page.PlayFlash();
    }
예제 #16
0
    // Start is called before the first frame update

    //public Texture2D tex;
    public void ContinueB()
    {
        //Shot();
        //return;
        HotDogRoot.GetSingle().PlaySe("dianji");
        if (m_texture != null)
        {
            m_texture.Stop();
        }
        m_texture = null;
        UIEngine.Forward <HotFightPage>();
        HotDotData.NeedAdjust = false;
    }
예제 #17
0
    public void OnGetButton()
    {
        if (SDKManager.IsAdLoaded)
        {
            SDKManager.ShowInterAd(clicked => {
                if (clicked)
                {
                    Helper.AddGold(40);
                    if (sources == AdPageOpenSources.Shop)
                    {
                        PlayerStatus.lastUseAtGiftTime = TimestampUtil.Now;
                    }
                    PlayerStatus.Save();

                    Log.Scrren("AdPage: clicked: " + clicked);
                    var admission = new Admission_PopdownOldPage();
                    UIEngine.Back(null, admission);
                    Compelte?.Invoke();
                    Compelte = null;
                }
                else
                {
                    var param       = new DialogParam();
                    param.des       = "您没有点击广告,需要点击广告才能获得金币";
                    param.button    = "确认";
                    var popup       = new Admission_PopupNewPage();
                    var dialog      = UIEngine.Forward <DialogPage>(param, popup);
                    dialog.Complete = result => {
                        Log.Scrren("AdPage: clicked: " + clicked);
                        UIEngineHelper.WateAdmissionComplete(() => {
                            var admission = new Admission_PopdownOldPage();
                            UIEngine.Back(null, admission);
                            Compelte?.Invoke();
                            Compelte = null;
                        });
                    };
                }
            });
        }
        else
        {
            var admission = new Admission_PopdownOldPage();
            UIEngine.Back(null, admission);
            Compelte?.Invoke();
            Compelte = null;
        }

        AudioManager.PlaySe("button");
    }
예제 #18
0
    private void Share()
    {
        // get image on result page
        var resultPage = UIEngine.FindInStack <ImitateResultPage>();

        if (resultPage == null)
        {
            return;
        }
        var texture = resultPage.GetImage();
        // navigate to display page
        var page = UIEngine.Forward <ImitateShareDisplayPage>();

        page.SetImage(texture);
    }
예제 #19
0
    public void StartB()
    {
        // HotDotData.ShotIndev = float.Parse(m_input_field.text);
        HotDogRoot.GetSingle().PlaySe("dianji");
        if (HotDotData.NeedAdjust)
        {
            UIEngine.Forward <HotAdjustPage>();
        }
        else
        {
            UIEngine.Forward <HotFightPage>();
        }

        //UIEngine.Forward<HotFightPage>();
    }
예제 #20
0
    private IEnumerator Task()
    {
        AudioManager.PlaySe("pre-gain-gold");
        StartCoroutine(TaskExp());
        yield return(new WaitForSeconds(0.2f));

        AudioManager.PlaySe("pre-gain-gold");
        StartCoroutine(TaskGold());
        yield return(new WaitForSeconds(0.5f));

        HeadBarFloating.instance.AutoRefresh = true;
        //UIEngine.BackTo<MainPage>();

        var pid = GameController.lastPicId;

        UIEngine.Forward <DisplayPage>(pid);
    }
예제 #21
0
    public void OnGoldClicked()
    {
        var top = UIEngine.Top;

        if (top is CorePage)
        {
            return;
        }
        if (top is ShopPage)
        {
            this.OnBackButton();
            return;
        }
        UIEngine.ShowFlaoting("BackgroundFloating");
        var admission = new Admission_OldDownNewUp();

        UIEngine.Forward <ShopPage>(null, admission);
        AudioManager.PlaySe("button");
        AudioManager.PlaySe("sign-and-shop");
    }
예제 #22
0
    public void OnBackButton()
    {
        var completeCount = PlayerStatus.completeCount;

        if (completeCount == 2 || completeCount == 3)
        {
            var text  = MsgList.Get("comment");
            var param = new DialogParam();
            param.des    = text;
            param.button = "确定";
            var admin  = new Admission_PopupNewPage();
            var dialog = UIEngine.Forward <DialogPage>(param, admin);
            dialog.Complete = result => {
                if (result == DialogResult.Conform)
                {
                    SDKManager.Comment();
                }
                DoBack();
            };
        }
        else if (completeCount >= 4)
        {
            if (SDKManager.IsAdLoaded)
            {
                AdPage.sources = AdPageOpenSources.LevelComplete;
                var admin  = new Admission_PopupNewPage();
                var adPage = UIEngine.Forward <AdPage>(null, admin);
                adPage.Compelte = () => {
                    DoBack();
                };
            }
            else
            {
                DoBack();
            }
        }
        else
        {
            DoBack();
        }
    }
예제 #23
0
    void OnItemUnlockButton(PictruePage_Item item)
    {
        var data = item.data;
        var cost = data.picRow.Get <int>("cost");
        var gold = PlayerStatus.gold;

        if (gold >= cost)
        {
            Debug.Log("can unlock");
            gold -= cost;
            PlayerStatus.gold = gold;
            var pictureId = data.picRow.Get <string>("id");
            LevelStorage.SetPictureUnlocked(pictureId);
            PlayerStatus.Save();

            // 单独处理需要修改显示状态的 item
            data.status = PicturePage_ItemStatus.Unlocked;
            SetItem(item, data);
            item.Flash();
            AudioManager.PlaySe("button");
            AudioManager.PlaySe("unlock-pic");
        }
        else
        {
            var param = new DialogParam();
            param.des    = MsgList.Get("lack_of_gold");
            param.button = "商城";
            var popup  = new Admission_PopupNewPage();
            var dialog = UIEngine.Forward <DialogPage>(param, popup);
            dialog.Complete = result => {
                if (result == DialogResult.Conform)
                {
                    UIEngineHelper.WateAdmissionComplete(() => {
                        UIEngine.Forward <ShopPage>();
                    });
                }
            };
            AudioManager.PlaySe("lack-of-gold");
        }
    }
예제 #24
0
 // 由 Item 的 sendMessage 调用
 public void ItemClicked(ShopPage_Item item)
 {
     AudioManager.PlaySe("button");
     if (item is ShopPage_IapItem)
     {
         var iapItem = item as ShopPage_IapItem;
         var row     = iapItem.row;
         var id      = row.Get <int>("id");
         SDKManager.Pay(id, buyed => {
             if (buyed)
             {
                 Refresh();
             }
         });
     }
     else if (item is ShopPage_AdItem)
     {
         AdPage.sources = AdPageOpenSources.Shop;
         var popup = new Admission_PopupNewPage();
         UIEngine.Forward <AdPage>(null, popup);
     }
 }
예제 #25
0
 public void OnButton(string msg)
 {
     if (msg == "play_with_friend")
     {
         var page = UIEngine.Forward <ImitateReadyPage>();
         page.Title = "好友同玩";
     }
     else if (msg == "rank")
     {
         UIEngine.Forward <ImitateRankPage>();
     }
     else if (msg == "link")
     {
         var link = GameManifestManager.Get("link");
         Application.OpenURL(link);
     }
     else if (msg == "play")
     {
         var page = UIEngine.Forward <ImitateReadyPage>();
         page.Title = "闯关模式";
     }
 }
예제 #26
0
    public void OnItemClick(MainPage_Item item)
    {
        AudioManager.PlaySe("button");

        var param = new PicturePageParam();

        param.pageType = item.data.pageType;
        if (item.data.pageType == PicturePageType.Pictype)
        {
            param.picTypeId = item.data.row.Get <string>("id");
        }

        var rt   = item.GetComponent <RectTransform>();
        var rect = RectTransformUtil.GetWorldRect(rt);

        var admission = new Admission_ScaleUpNewPage(rect);

        UIEngine.Forward <PicturePage>(param, admission);

        HeadBarFloating.admission = new Admission_ScaleDownOldPage(rect);

        RadioStation.Brodcast("SELECT_PIC_TYPE");
    }
예제 #27
0
    private void Shot()
    {
        Texture2D input;

        if (Application.platform != RuntimePlatform.OSXEditor)
        {
            var t       = this.RawImage_moniter.texture as WebCamTexture;
            var texture = ImitateUtil.Orient(t, t.videoRotationAngle, this.isFronCamera);
            // 预览修正后的贴图
            RawImage_fixed.texture = texture;
            input = texture;
        }
        else
        {
            // 如果是测试模式,使用源图片作为输入图片
            input = ImitateManager.origin;
        }
        ImitateManager.input = input;
        var page = UIEngine.Forward <ImitateResultPage>();

        page.SetImage(input);
        page.PlayFlash();
    }
예제 #28
0
 public void RankB()
 {
     HotDogRoot.GetSingle().PlaySe("dianji");
     UIEngine.Forward <HotRankPage>();
 }
예제 #29
0
    private void Share()
    {
        var page = UIEngine.Forward <ImitateSharePage>();

        page.PlayFadeIn();
    }
예제 #30
0
 public void OnGameStart()
 {
     UIEngine.Forward <ScanPage>();
 }