[학원 Unity]/[게임 알고리즘]

2일차 시즈탱크 / Delegate이용

롤링페이퍼 2024. 8. 14. 09:38

아직 응용하는데 시간이 걸리고 미숙함

 

 

 

 

App

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SizTank
{
    public class App
    {
        // 시즈탱크가 생성되었습니다.
        // 모드 : Tank
        // 공격력 : 30
        // 체력 : 70/70

        // 탱크가 (3,4)로 이동을 시작했습니다.
        // 이동중...
        // 이동중...
        // 이동중...
        // 탱크가 이동을 완료했습니다.

        // 시즈모드로 변경 했습니다.
        // 모드 : Siege
        // 공격력 : 30
        // 체력 : 70/70

        // 시즈모드일땐 움직일수없습니다.
            SizTank tank = new SizTank(30, 70); // 기본공격력, 기본체력
        public App() 
        {
            tank.Move(3, 4, this.MoveComplete);
            tank.onChangeMode = this.ChangeModeCompleteHandler;
            tank.ChangeMode();  // 시즈모드면 -> 탱크 모드로, 탱크모드면 -> 시즈모드로
        }    


        public void MoveComplete()
        {
            Console.WriteLine("MoveComplete");
        }

        public void ChangeModeCompleteHandler(bool isSiege)
        {
            if(isSiege)
            {
            Console.WriteLine("시즈 모드 변경");
            }
            else
            {
            Console.WriteLine("탱크 모드 변경");
            }

            Console.WriteLine(tank.tankMode);
            Console.WriteLine($"공격력:{tank.attack}");
            Console.WriteLine($"체력:{tank.hp}/{tank.maxHp}");

            Console.WriteLine("시즈모드일때는 움직일수 없습니다.");
            //tank.attack = ;
            //this.maxHp = sizTank_hp;
        }

    }
}

sizTank

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SizTank
{
    public class App
    {
        // 시즈탱크가 생성되었습니다.
        // 모드 : Tank
        // 공격력 : 30
        // 체력 : 70/70

        // 탱크가 (3,4)로 이동을 시작했습니다.
        // 이동중...
        // 이동중...
        // 이동중...
        // 탱크가 이동을 완료했습니다.

        // 시즈모드로 변경 했습니다.
        // 모드 : Siege
        // 공격력 : 30
        // 체력 : 70/70

        // 시즈모드일땐 움직일수없습니다.
            SizTank tank = new SizTank(30, 70); // 기본공격력, 기본체력
        public App() 
        {
            tank.Move(3, 4, this.MoveComplete);
            tank.onChangeMode = this.ChangeModeCompleteHandler;
            tank.ChangeMode();  // 시즈모드면 -> 탱크 모드로, 탱크모드면 -> 시즈모드로
        }    


        public void MoveComplete()
        {
            Console.WriteLine("MoveComplete");
        }

        public void ChangeModeCompleteHandler(bool isSiege)
        {
            if(isSiege)
            {
            Console.WriteLine("시즈 모드 변경");
            }
            else
            {
            Console.WriteLine("탱크 모드 변경");
            }

            Console.WriteLine(tank.tankMode);
            Console.WriteLine($"공격력:{tank.attack}");
            Console.WriteLine($"체력:{tank.hp}/{tank.maxHp}");

            Console.WriteLine("시즈모드일때는 움직일수 없습니다.");
            //tank.attack = ;
            //this.maxHp = sizTank_hp;
        }

    }
}

'[학원 Unity] > [게임 알고리즘]' 카테고리의 다른 글

json 사용 방법(데이터 테이블)  (0) 2024.08.14
Delegate (대리자)  (0) 2024.08.13
2일차 인벤토리 만들기  (0) 2024.08.13
1일차 과제(2)  (0) 2024.08.12
1일차 과제(1) 미완성  (0) 2024.08.12