项目实训(二)

首先先进行游戏地图、卡牌、阳光等基本功能的完成。

首先选择草地图片为基本图层,然后在上面创建image放置植物卡槽,主要为对图形显示的调整,添加图片和阳光数值,达到下图效果,然后就行对阳光的相关代码编写。

阳光的主要逻辑是设置随机阳光从天空中初始化的方法以及下落目标点,鼠标点击阳光时增加游戏管理器中阳光数量,并且销毁阳光自身,在实现过程中需要增加飞行动画和鼠标点击或超时后自动销毁的代码。

//鼠标点击阳光
private void OnMouseDown()
    {
        PlayerManager.Instance.SunNum += 25;
        Vector3 sunNum =  Camera.main.ScreenToWorldPoint(UIManager.Instance.GetSunNumTextPos());
        sunNum = new Vector3(sunNum.x, sunNum.y, 0);
        FlyAnimation(sunNum);
        AudioManager.Instance.PlayEFAudio(GameManager.Instance.GameConf.SunClick);
    }
//阳光从天空初始化
 public void InitForSky(float downTargetPosY, float creatPosX, float CreatPosY)
    {
        this.downTargetPosY = downTargetPosY;
        transform.position = new Vector2(creatPosX, CreatPosY);
        isFormSky = true;
    }

//阳光飞行
private void FlyAnimation(Vector3 pos)
    {
        StartCoroutine(DoFly(pos));
    }

    private IEnumerator DoFly(Vector3 pos)
    {
        Vector3 direction = (pos - transform.position).normalized;
        while (Vector3.Distance(pos,transform.position)>0.5f)
        {
            yield return new WaitForSeconds(0.01f);
            transform.Translate(direction);
        }
        DestroySun();
    }
//阳光销毁
private void DestroySun()
    {
        // 取消自身全部携程和延迟调用
        StopAllCoroutines();
        CancelInvoke();

        // 放进缓存池 不做真实销毁
        PoolManager.Instance.PushObj(GameManager.Instance.GameConf.Sun, gameObject);
    }

本次则完成了对游戏展示画面的基本设置以及来自天空阳光逻辑的完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值