디시인사이드 갤러리

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

갤러리 본문 영역

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

책사풍후갤로그로 이동합니다. 2024.06.28 09:36:39
조회 30 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 논란보다 더 욕 많이 먹어서 억울할 것 같은 스타는? 운영자 24/09/23 - -
이슈 [디시人터뷰] '더 인플루언서' 표은지, 귀여움과 섹시함을 겸비한 모델 운영자 24/09/26 - -
3975808 예전부터 디디 파티 좋다고 한게 이유가 있었던거임ㅋㅋㅋㅋㅋㅋㅋ [1] ㅇㅇ(121.157) 21:49 38 0
3975807 라면은 대충 끓일수록 맛있음 [3] ㅇㅇ(1.218) 21:49 26 0
3975806 탈조선했다면서 꾸역꾸역 한국커뮤 들락날락 [6] 고등어춉갤로그로 이동합니다. 21:49 34 0
3975804 마인크래프트 애옹이 [6] ㅇㅇ갤로그로 이동합니다. 21:48 57 0
3975803 내일 쉬고 모레 출근 vs 내일 출근하고 모레 쉬기 [2] ㅇㅇ(121.124) 21:48 15 0
3975802 [1] 푸니르여초딩완장갤로그로 이동합니다. 21:48 15 0
3975801 마법소녀를 동경해서 이거, 마법소녀물 치고 흥한 거 같은데 [3] ㅇㅇ갤로그로 이동합니다. 21:48 84 9
3975800 좆커 예매햇음.... [14] 만븧갤로그로 이동합니다. 21:48 65 0
3975799 이거 작가 누군지 아는 사람 ㅇㅇ갤로그로 이동합니다. 21:48 35 0
3975798 릅신 콩코드 코스프레는 씨발ㅋㅋㅋ [1] ㅇㅇ(211.235) 21:48 102 0
3975797 "하일 히틀러-!!" [1] ㅇㅇ(14.36) 21:48 64 0
3975795 개센징이 일본리턴 9할은 일본문화 적응못함 ㅇㅇ(223.39) 21:48 37 1
3975794 와 히비키 짤 ㄹㅇ.. 오죰이갤로그로 이동합니다. 21:48 52 0
3975793 아니다 버거킹 하나만 먹을까 고민 [6] 극한오버갤로그로 이동합니다. 21:48 36 0
3975792 요즘 언급 없어진 그거 [8] 린다린다갤로그로 이동합니다. 21:48 51 0
3975790 1:39<--- 개인적으로 바라는점 ㅇㅇ(182.209) 21:48 35 0
3975789 좆릭컬<< 바이럴은 오지게 돌리는게 게임성은 좆박음 [1] ㅇㅇ(39.7) 21:47 19 0
3975787 주말 끝나기전에 보고가자 ㅇㅇㅇㅇ(222.105) 21:47 22 0
3975786 " hey! 넌 목화 따지 말고 room으로 오도록..♡ " [1] ㅇㅇ(211.235) 21:47 77 0
3975785 니어엉덩마타 애니 본 뇌를 삭제하고 싶다 [1] 가라에나갤로그로 이동합니다. 21:47 53 0
3975784 똥퍼) 알중천지 환상향.manhwa [2] 자제곧무갤로그로 이동합니다. 21:47 60 0
3975782 부녀자캐릭 <<<< 좋아하는사람 있긴함,??? [6] 개지랄갤로그로 이동합니다. 21:47 38 0
3975781 르브론제임스정도면 1000억은 핑계고 그냥 게이섹스 ㅇㅇ(39.112) 21:47 26 0
3975780 섹스 무료로 하는 방법 뭐임 [6] 소놋치갤로그로 이동합니다. 21:47 48 0
3975779 결론이 르브론도 두창이라는 거임? [1] ㅇㅇ(114.201) 21:47 31 0
3975778 본인 취향 육덕인데 요즘 취향 선넘을거같음 ㅇㄹㅇㅁ(125.143) 21:47 40 0
3975777 백인 주인들이 썼던 게이 흑인 육변기.JPG [2] ㅇㅇ(211.235) 21:47 95 1
3975776 이게 능지처참(거열형) <~ 보다 더 잔인하면 개추! ㅋㅋㅋㅋㅋㅋㅋ ㅇㅇ(113.59) 21:47 31 1
3975775 그랑블루는 무슨애니인가여 ㅇㅇ갤로그로 이동합니다. 21:47 10 0
3975774 일본 성인용 기저귀 광고.gif [1] ㅇㅇ(211.234) 21:46 82 0
3975773 나무위키 만갤 화제작 설명 개웃기네ㅋㅋㅋ [9] ㅇㅇ갤로그로 이동합니다. 21:46 92 0
3975772 야식 먹으면서 애니 보고 싶다 다람쥐의도토리갤로그로 이동합니다. 21:46 24 0
3975771 난 평생 바뀌지 못하고 찐따인가 [2] ㅇㅇ(106.101) 21:46 53 10
3975770 국회<<왜 제일 똑똑한 양반들이 모여서 제일 병신짓함 [4] ㅇㅇ갤로그로 이동합니다. 21:46 44 0
3975769 왜 여자들은 가슴 큰 여자보고 돼지같다하는거임? [5] ㅇㅇ(175.223) 21:46 51 0
3975768 이불덮고 방구 끼니까 하수구 냄새 지리네 ㅇㅇ(211.234) 21:46 10 0
3975767 섹스 하는 법 깨달음 [10] 치히로쨩갤로그로 이동합니다. 21:46 93 0
3975766 얘보니까 트릭컬 해보고싶음....ㄹㅇ [2] ㅇㅇ(58.77) 21:46 57 1
3975765 블리치 전시전 가면 피규어 주냐 [1] ㅇㅇ(223.38) 21:46 21 0
3975764 차은우vs서강준 누구승임 [3] 1244(49.175) 21:46 37 0
3975763 의외로 일본 환상가져서 틀딱 중에서도 애니 좋아하는 경우 있음 산츠네미쿠(218.158) 21:46 19 0
3975762 이거 과자 개에바네.. [2] ㅇㅇ(223.39) 21:46 43 0
3975761 프랑키 로빈 <- 슬슬 패기쓸때 안됏나 [4] 하나이치몬메갤로그로 이동합니다. 21:46 40 0
3975760 안드로이드 태블릿 성능 좋은건 갤탭말곤업슴?? [4] ㅇㅇ(106.102) 21:46 26 0
3975759 가키콘 < 처음에 꼬마메텔인 줄 알았음 ㅇㅇ(114.201) 21:45 10 0
3975758 자기 학교가 부끄러운 경대생 [1] ㅇㅇ(211.234) 21:45 73 0
3975757 르블론 이해는 감 [1] ㅇㅇ(211.234) 21:45 30 0
3975756 [정보] 편의점 상품권 5천원 받자 ㅇㅇ(223.38) 21:45 16 0
3975754 투팍 게이 포르노 유출.JPG [5] ㅇㅇ(211.235) 21:45 133 1
3975752 옌예인들 스폰서받을려고 몸파는거 있던데 ㅇㅇ(106.101) 21:45 19 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2