示例#1
0
    // Update is called once per frame
    void Update()
    {
        bool correctAnswer = false;

        if (memSpace1.occupied && memSpace2.occupied && !ResultMemSpace.occupied && !ResultMemSpace.locked)
        {
            if (memSpace1.block.GetComponent <Block>().value <= maxBlockSize && memSpace2.block.GetComponent <Block>().value <= maxBlockSize)
            {
                int result = memSpace1.UnOccupySpace() + memSpace2.UnOccupySpace();
                ResultMemSpace.OccupySpace(result);
                Instantiate(poofParticles, new Vector3(1.5f, 1.5f, -1.5f), Quaternion.identity);
            }
        }

        if (ResultMemSpace.occupied && ResultMemSpace.block.GetComponent <Block>().value == answer)
        {
            correctAnswer = true;
            gameManager.RegisterScore();
            GenerateNewAnswer();
            ResultMemSpace.UnOccupySpace();
            GetComponent <AudioSource>().Play();
            // play poof animation
        }
        animator.SetBool("correctAnswer", correctAnswer);
    }
示例#2
0
    private void PickupBlock()
    {
        RaycastHit2D hit = Physics2D.Raycast(transform.position + target, target, 0, layerMask);

        if (hit)
        {
            MemorySpace memSpace = hit.transform.GetComponent <MemorySpace>();
            currentSpace = memSpace;
            if (memSpace)
            {
                int value = memSpace.UnOccupySpace();
                if (value > 0)
                {
                    block = Instantiate(blockPrefab, transform.position + (height * Vector3.up), Quaternion.identity, gameObject.transform);
                    block.GetComponent <Block>().setValue(value);
                    carryingBlock = true;
                }
            }
        }
    }