디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

간단한 요시츠네 vs타이라 백잔왜노 전투 게임 소스코드앱에서 작성

책사풍후갤로그로 이동합니다. 2024.06.28 09:36:39
조회 43 추천 0 댓글 0
														

간단한 요시츠네 vs타이라 백잔왜노 전투 게임 소스코드

1ebec223e0dc2bae61abe9e74683706d2ca344f1d3dfcbbbb6c7e5750915919955defb7d4252e6ef9e56bde9

1ebec223e0dc2bae61abe9e74683706d2ca344f1d3dec9b6b2c9e575091591999e90061de4402078b2e0fbe7

1ebec223e0dc2bae61abe9e74683706d2ca344f1d3dec9b7b5c5e5740915919923200233552d4870df3c7e

1ebec223e0dc2bae61abe9e74683706d2ca344f1d3dec9b7b5c5e5750915919993844cc8b716a2c28ccdccca

7aec8377b7ed3aa76db4c8e758db343a1724384f37affd999035

7d82836eb28071e864afd3b236ef203ed3c32f311c974240

7d82816eb38771e864afd3b236ef203e41736900b12b90b9

a14b0cac30066ae864afd19528d52703535165be0bee

0490f719b48a6df720b5c6b236ef203e7a5bb13deb74db56

2ebcd521f6d328b360b8dea029d01b30615cd7d1d143d9c8b7288f1fc7a321772a0de1b9a087aadfd8109aeb72e91aff93dad6b4e93f4e67ab8452378f788c0406daca53b0ccd6e732533fc85fa4fbc48bb0ba47865c50f2ee5cece433a17f5e93a8b7e1895ac2629b9cb34f28f5611c499b5888db

7d82826eb18a71e864afd3b236ef203e0d7a92ebef3d9455

7d82836eb08271e864afd3b236ef203e662535a96bdd16ca

물론이죠! 올려주신 C 소스 코드를 Unity C# 스타일로 변환해 드릴게요. 아래는 변환된 코드입니다:

```csharp
using UnityEngine;

public class BattleSystem : MonoBehaviour
{
    // 캐릭터 정보
    public class CharacterInfo
    {
        public string name;   // 이름
        public int level;     // 레벨
        public int hp;        // 체력
        public int mp;        // 마법력
        public int attack;    // 공격력
        public int defense;   // 방어력
        public ItemType items; // 아이템
    }

    // 아이템 종류
    [System.Flags]
    public enum ItemType
    {
        None = 0,
        Weapon = 1,
        Armor = 2,
        Accessory1 = 4,
        Accessory2 = 8
    }

    // 턴 종류
    public enum Turn
    {
        Player,
        Enemy
    }

    private CharacterInfo player;
    private CharacterInfo enemy;
    private Turn currentTurn;

    void Start()
    {
        // 랜덤 시드 설정
        Random.InitState(System.DateTime.Now.Millisecond);

        player = new CharacterInfo
        {
            name = "Player",
            level = 1,
            hp = 100,
            mp = 20,
            attack = 10,
            defense = 7,
            items = ItemType.Weapon | ItemType.Armor | ItemType.Accessory1 | ItemType.Accessory2
        };

        enemy = new CharacterInfo();
        ResetEnemyInfo(enemy);

        currentTurn = Turn.Player;
    }

    void Update()
    {
        if (currentTurn == Turn.Player)
        {
            PlayerTurnProcess();
            currentTurn = Turn.Enemy;
        }
        else if (currentTurn == Turn.Enemy)
        {
            EnemyTurnProcess();
            currentTurn = Turn.Player;
        }
    }

    void ClearScreen()
    {
        // Unity에서는 콘솔을 직접 지울 수 없지만, 디버그 로그를 사용할 수 있습니다.
        Debug.ClearDeveloperConsole();
    }

    void PrintCharInfo(CharacterInfo info)
    {
        if (info == null) return;

        Debug.Log($">>> {info.name} <<<");
        Debug.Log($"* Lv : {info.level}");
        Debug.Log($"* HP : {info.hp}");
        Debug.Log($"* MP : {info.mp}");
        Debug.Log($"* ATK : {info.attack}");
        Debug.Log($"* DEF : {info.defense}");

        PrintItem(info.items);
    }

    void ResetEnemyInfo(CharacterInfo info)
    {
        if (info == null) return;

        string[] enemyNames = { "Mario", "Ryu", "Luigi", "Sonic", "King-Kong" };
        info.name = enemyNames[Random.Range(0, enemyNames.Length)];
        info.level = Random.Range(1, 100);
        info.hp = info.level + Random.Range(0, 100) + 10;
        info.mp = info.level + Random.Range(0, 10) + 2;
        info.attack = (info.level * 2) + Random.Range(0, 30);
        info.defense = (info.level * 2) + Random.Range(0, 30);
        info.items = SetupEquipWithPercent(30);
    }

    void PrintPlayerControlInfo()
    {
        Debug.Log("-*- Select Action -*-");
        Debug.Log("1.Attack 2.Defense 3.Magic 4.Run");
    }

    int InputProcess()
    {
        // Unity에서는 키보드 입력을 처리하는 방법이 다릅니다.
        // Input.GetKeyDown을 사용하는 방법 중 하나를 예시로 들었습니다.
        if (Input.GetKeyDown(KeyCode.Alpha1)) return 1;
        if (Input.GetKeyDown(KeyCode.Alpha2)) return 2;
        if (Input.GetKeyDown(KeyCode.Alpha3)) return 3;
        if (Input.GetKeyDown(KeyCode.Alpha4)) return 4;
        return 0;
    }

    void InputAttackProcess(CharacterInfo actor, CharacterInfo target)
    {
        Debug.Log("Input Attack Process Call!");

        target.hp -= actor.attack * 2;
        if (target.hp < 0)
        {
            target.hp = 0;
        }
    }

    void InputDefenseProcess()
    {
        Debug.Log("Input Defense Process Call!");
    }

    void InputMagicProcess()
    {
        Debug.Log("Input Magic Process Call!");
    }

    void InputRunProcess()
    {
        Debug.Log("Input Run Process Call!");
    }

    void InputMainProcess(int input, CharacterInfo player, CharacterInfo enemy)
    {
        switch (input)
        {
            case 1:
                InputAttackProcess(player, enemy);
                if (enemy.hp <= 0) ResetEnemyInfo(enemy);
                break;
            case 2:
                InputDefenseProcess();
                break;
            case 3:
                InputMagicProcess();
                break;
            case 4:
                InputRunProcess();
                break;
        }
    }

    void Waiting()
    {
        // Unity에서는 Console 입력을 기다리지 않습니다.
        // 대신 Update 루프에서 매 프레임을 처리합니다.
    }

    ItemType SetupEquipWithPercent(int percent)
    {
        percent -= 1;
        ItemType item = ItemType.None;
        if (Random.Range(0, 100) < percent) item |= ItemType.Weapon;
        if (Random.Range(0, 100) < percent) item |= ItemType.Armor;
        if (Random.Range(0, 100) < percent) item |= ItemType.Accessory1;
        if (Random.Range(0, 100) < percent) item |= ItemType.Accessory2;
        return item;
    }

    void PrintItem(ItemType items)
    {
        Debug.Log("**== Inventory ==**");
        if (items == ItemType.None) Debug.Log("-- Empty --");
        if ((items & ItemType.Weapon) != 0) Debug.Log("/ Weapon");
        if ((items & ItemType.Armor) != 0) Debug.Log("/ Armor");
        if ((items & ItemType.Accessory1) != 0) Debug.Log("/ Accessory1");
        if ((items & ItemType.Accessory2) != 0) Debug.Log("/ Accessory2");
        Debug.Log("**===============**");
    }

    void PlayerTurnProcess()
    {
        Debug.Log("\n+|+|+| Player Turn |+|+|+\n");

        PrintPlayerControlInfo();

        int input = InputProcess();
        InputMainProcess(input, player, enemy);
    }

    void EnemyTurnProcess()
    {
        Debug.Log("\n+|+|+| Enemy Turn |+|+|+\n");

        EnemyAI();
    }

    void EnemyAI()
    {
        int action = Random.Range(1, 7);

        switch (action)
        {
            case 1:
                Debug.Log("~ Enemy Attack!!");
                InputAttackProcess(enemy, player);
                if (player.hp <= 0) Debug.Log(".....You Died!.....");
                break;
            case 2:
                Debug.Log("~ Enemy Defense!!");
                InputDefenseProcess();
                break;
            case 3:
                Debug.Log("~ Enemy Magic!!");
                InputMagicProcess();
                break;
            case 4:
                Debug.Log("~ Enemy Run!!");
                ResetEnemyInfo(enemy);
                break;
            default:
                Debug.Log("~ Enemy Idle..");
                break;
        }
    }
}
```

이 코드는 Unity에서 사용할 수 있도록 최적화되었습니다. `MonoBehaviour`를 상속받는 `BattleSystem` 클래스는 Unity의 컴포넌트 시스템에 맞게 설계되었으며, `Update` 메서드를 사용하여 매 프레임마다 게임 로직을 처리합니다. 키보드 입력은 `Input.GetKeyDown` 메서드를 사용하여 처리하고, `Debug.Log`를 사용하여 콘솔 출력을 제공합니다. `Start` 메서드는 게임 시작 시 한 번 실행되며, 캐릭터와 적의 초기화를 처리합니다.

- dc official App
자동등록방지

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 사회생활 대처와 처세술이 '만렙'일 것 같은 스타는? 운영자 25/03/31 - -
이슈 [디시人터뷰] LPBA의 차세대 스타, 당구선수 정수빈 운영자 25/04/02 - -
3323862 야나미를 패배시킨 년.jpg [1] ㅇㅇ(125.141) 24.08.19 184 3
3323861 우솝은 엘바프에서 죽을것이고 웃지않는 니카가 완성될거임 [2] ㅇㅇ(203.239) 24.08.19 79 1
3323860 비행기타고 놀러나가고싶다 ㅜㅜ [4] 갸갹갤로그로 이동합니다. 24.08.19 37 0
3323859 군대에서 제주도 선임 있었음. [3] 만갤러(124.50) 24.08.19 75 0
3323858 꼬리달린 여자의 여름나기 [4] ㅇㅇ(14.49) 24.08.19 77 1
3323857 만화는 합법으로 보면 좋아 [6] 알록달록갤로그로 이동합니다. 24.08.19 73 0
3323856 실내건조새제 <~ 걍 개쩌는데요 ㅋㅋ [5] 지니.갤로그로 이동합니다. 24.08.19 69 0
3323854 만갤 왜 1위임 [3] ㅇㅇ갤로그로 이동합니다. 24.08.19 58 0
3323853 패로인 << 출판사가 이거 안밀어주면 망함.. [1] 오죰이갤로그로 이동합니다. 24.08.19 83 0
3323852 "김만붕, 너 나 도촬했지?" [2] 시체갤로그로 이동합니다. 24.08.19 112 0
3323851 "내 인생의 반을 줄테니 네 인생의 반을 줘!!" 만갤러(1.231) 24.08.19 153 1
3323850 만붕이들이 처녀만 찾는이유를 히토미에서 깨달음 만갤러(106.101) 24.08.19 42 0
3323848 만붕이집 멍멍이임 [5] (づ ̄³ ̄)づ갤로그로 이동합니다. 24.08.19 51 0
3323847 사람젖< 누우면 퍼지더라... [1] PQRSTAED갤로그로 이동합니다. 24.08.19 57 0
3323846 케로리라도 푹 빠져있는 패배히로인 [1] ㅇㅇ(220.82) 24.08.19 87 0
3323844 니지카랑 만나지못한 세계의 봇치.jpg [2] 1244(122.46) 24.08.19 101 0
3323843 애드가드는 있어도 만붕남가드는 없네 ㅇㅇ(223.39) 24.08.19 41 0
3323842 일본 목욕탕들 락커없이 바구니에 그냥 옷 담던데 [5] ㅇㅇ(101.235) 24.08.19 78 1
3323840 서코 가고싶다 [11] 갸갹갤로그로 이동합니다. 24.08.19 81 0
3323839 패배히로인 그렇게 재밌냐 [3] 만갤러(112.171) 24.08.19 109 0
3323837 고닉들에게 궁금한 점 있음 [8] ㅇㅇ(1.243) 24.08.19 53 0
3323836 옆집 아줌마 알몸 봤는데.. [2] ㅇㅇ(211.234) 24.08.19 91 0
3323835 윤석열은 퇴임직전 문재인 지지율 한번을 못 넘네ㅋㅋ [4] ㅇㅇ(118.235) 24.08.19 67 0
3323834 E컵 야나미.jpg [4] ㅇㅇ(125.141) 24.08.19 200 0
3323833 챗지피티 갑자기 말 ㅈㄴ 못알아듣는데 뭐냐? ㅇㅇ(122.36) 24.08.19 46 0
3323832 30대는 만갤에서 나가라고 주장하던 시절이 있었는데 [5] ㅇㅇ갤로그로 이동합니다. 24.08.19 80 2
3323831 스케일링 하러갈건데 치석많으면 [11] 1244(122.46) 24.08.19 102 0
3323830 봇치 최신화ㅋㅋㅋ [1] ㅇㅇ(221.153) 24.08.19 124 0
3323829 패배 히로인 이 ㅈ같은 라노벨 뭐임? [2] ㅇㅇ(121.171) 24.08.19 114 0
3323828 호불호없이 꼴리는 여캐.jpg 만갤러(115.93) 24.08.19 80 0
3323827 만부이 레이트기상.. [12] 뭬빜갤로그로 이동합니다. 24.08.19 58 0
3323826 재밋는 쯔꾸르겜 없나?? [9] ㅇㅇ(222.96) 24.08.19 86 0
3323825 어릴때 친구들이랑 서코도 가고 그랬는데 [3] (づ ̄³ ̄)づ갤로그로 이동합니다. 24.08.19 65 0
3323824 울아빠랑 난 ㅈㄴ 자주 싸우는데 뒷끝은 없어서 좋노 [2] ㅇㅇ(118.235) 24.08.19 58 0
3323822 씹덕축제갈때마다 다른 “공간”에 있는 기분이ㅡ진함 [1] 지니.갤로그로 이동합니다. 24.08.19 69 0
3323821 메스가키 호시노.jpg [1] ㅇㅇ(118.235) 24.08.19 148 1
3323820 목욕탕 < 도대체 어떻게 사람이 깔끔해진단건지... [9] PQRSTAED갤로그로 이동합니다. 24.08.19 81 0
3323819 존못들은 왜사는거냐? [2] ㅇㅇ(59.2) 24.08.19 42 0
3323818 중국남자들이 한국에서 인기 많은 이유가 머야? 만갤러(1.222) 24.08.19 43 0
3323817 살면서 대놓고 디시하는 사람 젤 많이 본 곳 [10] 만갤러(124.50) 24.08.19 136 0
3323816 학교인데 화남... [4] 야옹야옹갤로그로 이동합니다. 24.08.19 70 0
3323815 난 가상현실에서 디씨중임 [1] 사리나(59.10) 24.08.19 37 0
3323814 "분명 이 부근까진 있었는데..." [3] ㅇㅇ(116.36) 24.08.19 98 0
3323813 이거 진짜임? [3] 개돼지인생갤로그로 이동합니다. 24.08.19 54 0
3323812 딸 혼자 키우는 지적장애 아빠 다큐 조금 봤는데 [7] ㅇㅇ갤로그로 이동합니다. 24.08.19 110 0
3323811 패로인 늦게 나오는 년.jpg [2] ㅇㅇ(125.141) 24.08.19 131 0
3323810 만갤 5년째 하는 사람 있음? [2] 만갤러(58.120) 24.08.19 48 0
3323809 사랑니 뽑느거 많이 이픈가 [6] KOH갤로그로 이동합니다. 24.08.19 72 0
3323808 "진짜" 아리스.jpg ㅇㅇ(118.235) 24.08.19 83 0
3323807 난 온라인에서 디시하는사람이 젤 비호감 [1] ㅇㅇ(1.243) 24.08.19 56 0
뉴스 “독창적인 랭귀지”… 곽재선문화재단, 청년작가 4人 전시회 ‘더 모멘텀’ 개최 디시트렌드 04.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2