본문 바로가기

엔트리20

엔트리 액션 RPG 만들기11.5 버그 수정(제작모드와 연계 추가 코딩) 몬스터 애니메이션을 추가한 뒤로 버그를 일부 수정이 필요하여 추가 포스팅을 합니다. 아마 유튜브 영상으로는 빠져 있는 내용입니다. 이 프로젝트에서는 게임 내에서 몬스터와 맵 타일을 배치하는 기능을 가지고 있습니다. 여기서 몬스터 애니메이션과 몬스터 배치와의 연계를 빠져버렸는데... 유튜브에서 이걸 고친다고 영상을 찍으면 시간이 걸릴게 분명하기에... 왜냐면 처음 해보는 것이라서 과연 잘 고쳐질지 이것저것 건들여야 하는거라 영상찍으면서 말을 하면서 하면 입도 아프고 시간도 더 걸리거든요 ㅠㅠ 그래서 고친 다음에 고친 내용을 따로 블로그에 정리해서 올립니다. 주요 고치는 곳은 '몬스터배치' 오브젝트입니다. 기존에는 몬스터를 배치한 만큼만 복제를 하였는데, 로딩바가 추가됨으로써 그냥 모든 맵에 배치를 하기로 .. 2020. 5. 13.
엔트리 액션 RPG 만들기11.몬스터 애니메이션 드디어 몬스터 애니메이션을 추가합니다. 몬스터가 지금까지 간단한 상자로 표시되어있었다면 이제부터는 몬스터를 모양을 넣어줍니다. 먼저 몬스터 애니메이션 오브젝트를 하나 만듭니다. 모양을 보시면 몬스터 애니메이션에 해당되는 그림이 4방향 4개씩 총 16개가 있습니다. 몬스터 스프라이트들은 직접 제작하시는것도 좋지만 아무래도 시간도 많이 걸리는 부분도 있어서... rpg maker의 소스들을 조금 활용하시면 구하기도 쉽고 편안합니다. 복제를 해줍니다. 153개를 복제를 해서 화면에 전부 깔아줍니다. 먼저 몬스터 애니메이션은 몬스터 위치에 계속 이동하도록 만들어 줍니다. 체력이나 상태에 따라서 보이게 하거나 숨기도록 합니다. 복제가 되면 모양을 바꿔줍니다. 0.1초마다 번호를 바구게 되어 있습니다. 여기서 '#.. 2020. 5. 13.
엔트리 액션 RPG 만들기 10. 로딩바 추가 이번에는 로딩창을 만들어 보겠습니다. 엔트리에서는 어쩔 수 없는 로딩이 필요할 수 있습니다. 리스트의 복제라던지, 오브젝트의 복제를 할 때 약간의 시간이 소요되기 때문입니다. 따라서 변수를 2개 만들어서 로딩값 변수가 완료값에 도달할때가지 로딩화면을 띄우고 기다리게 만들 것입니다. 로딩값은 유닛의 복제라던가 리스트 복제등을 수행하는 모든 값들입니다. 이런식으로 복제하기가 수십~수백번을 반복해야 하는 곳에 1씩 더하도록 만들고, 최종적으로 복제가 완료되었을 때의 값을 입력하는 것입니다. 저의 경우 변수값을 모두 더해보니 477이 되네요. 로딩바 오브젝트를 하나 추가합니다. 코딩은 간단합니다. 적당한 위치에서 로딩바를 그려주고, 로딩이 끝나면 지운 다음에 더이상 기다리지 않는 것입니다. 여기서 만약에 새로운.. 2020. 5. 12.
초간단 오목 만들기 (2차원 배열 데이터 활용) 안녕하세요. 승승이입니다. 이번에는 오목 게임을 정말 간단하고 최소한? 의 코드로 만들어 봅니다. 2차원 배열을 활용하여 더욱 쉽고 간단한 오목게임을 만드는 방법을 소개합니다. 사용하는 오브젝트는 2개입니다. 하나는 현재 상태를 알려주는 문자이고, 두번째는 오목판과 돌을 나타내는 오브젝트입니다. 먼저 문자열을 코딩해봅니다. 상태와 턴에 따라서 차례와 기다림을 만든 상태입니다. 여기서 변수 하나로 통일해도 되는데 그냥 이해하기 쉽게 '상태'와 '턴'으로 2개로 했습니다. 상태가 0이면 바둑판을 만들고 있으며, 1이면 돌을 넣을 수 있는 ㅅ아태, 2이면 점수 계산중입니다. 3와 4가 되면 승리를 확인합니다. 다음은 바둑판과 바둑돌이 되는 오브젝트를 코딩합니다. 여기서 2차원 배열을 만들어 주어야 하는데요, .. 2020. 5. 9.
데이터 분석 기능을 이용한 2차원 배열 활용 (3x3 도트매트릭스) 안녕하세요. 승승이입니다. 이번에는 엔트리에서 근래에 업데이트 하였던 데이터 분석 기능을 활용하여 2차원 배열을 제어해봅니다. 스크래치나 엔트리에서는 '리스트'라는 것으로 1차원의 행 요소만 있는 배열만 사용할 수 있었습니다. 그러나 올해(2020) 초였던가... 데이터 분석이라는 새로운 기능이 엔트리에 도입되었습니다. 원래의 목적은 이름대로 '데이터 분석'으로써 그래프 그리기에 활용하기 위한 수단이나... 스크래치나 엔터리 유저들의 요구사항들 중 하나였던 2차원 배열을 사실상 사용 가능하게 되었습니다. 물론 2차원 배열을 쉽게 사용하는 수준이고, 이것의 연산까지는 구현이 되어 있지 않으므로 반쪽짜리이긴 하지만... 보통 사용하는데는 행렬연산을 사용하지 않기 때문에 배열만 사용가능하다면 여러가지로 활용할.. 2020. 5. 7.
엔트리 모델 학습하기 사용하는 방법 안녕하세요. 승승이입니다. 엔트리에서 최근 업데이트 하였던 모델 학습하기 사용하는 방법에 대해서 간단히 설명합니다. 엔트리에서 새로운 블록을 확인할 수 있습니다. 인공지능 탭에서 모델학습하기를 누릅니다. 현재는 이미지만 학습하기를 할 수 있습니다. 차후 업데이트에서는 텍스트나 음성을 사용할 수 있을거 같네요... 그러나 게임에서는 사용하기에는 어려울거 같습니다 ㅋ 이미지로 학습을 시켜봅니다. 여기서 막히시는 분들이 계시는데... 여기서부터는 이미지를 넣어서 학습시키는 것입니다. 1. 모델 이름: 학습시킨 인공지능의 이름을 넣어줍니다. 아무거나 상관 없습니다. 다른 프로젝트에서 사용할때 구분할 수 있습니다. 2. 클래스 추가하기: 클래스를 추가합니다. 클래스는 학습시키고자 하는 대상 하나가 됩니다. 3. .. 2020. 5. 5.
엔트리 경사 물리 구현하기 안녕하세요. 승승이입니다. 이번에는 엔트리 경사 물리 구현하는 코드를 간단? 하게 설명하겠습니다. 일단 제가 테스트용으로 만든 예제 프로젝트에서 구현하는 방법에 대한 간단 설명을 드리겠습니다. 오브젝트는 먼저 장애물이란 오브젝트가 있는데, 이것은 그냥 지형일 뿐입니다. 모양은 보다시피 경사로를 테스트할 수 있는 그림으로 되어 있습니다. 코딩도 단순하게 화면에 따라 움직이게 되어 있는데, 현재 스크롤 테스트중이었으니.. 이 코드는 무시하셔도 좋습니다. 다음은 센서입니다. 센서는 작은 조각으로 되어 있습니다. 시작하면 8번 복제를 합니다. 복제를 한 녀석은 본체에 약간 바깥에 위치하면서 경사로를 인식하도록 되어 있습니다. 12시 방향부터 센서 번호는 1, 2, 3... 7, 8번으로 되어 있습니다. 이 프로.. 2020. 4. 29.
엔트리 간단한 중력 물리엔진 구현하기 안녕하세요. 승승이입니다. 물리엔진에서 간단한 물리엔진을 구현해 봅니다. 먼저 코딩하기 전에 앞서서 2가지를 만들어 봅니다. 플레이어는 반드시 '사각형'의 모양으로 그려주세요. 다음은 지형입니다. 장애물로 인식할 부분을 선으로 그려주시고, 나머지 캐릭터가 지나갈 자리는 투명색으로 해줍니다. 이제 플레이어에 코딩을 해줍니다. 이렇게 해주면 됩니다. 위의 코드를 부분으로 나눠보겠습니다. 키보드를 누르면 키보드 값에 따라서 속도를 변합니다. 단, 점프의 경우 1회로 제한하기 위해 점프 변수의 조건이 있습니다. 그 아래에는 '중력'이 있습니다. y속도를 -1씩 더하게 되는데, -20까지를 제한을 둔 상태입니다. 너무 빨리 떨어지면 지형을 뚫어버릴 수 있기 때문에 적당한 선에서 제한을 해줘야 합니다. 마지막으로 .. 2020. 4. 28.
엔트리 액션 RPG 만들기 7.체력바 만들기 안녕하세요. 승승이입니다. 이번에는 체력바를 추가합니다. 엔트리에서 흔히 체력바를 만드는 방법으로는 '그리기'를 사용하는 방법이 있습니다. 붓으로 그리는 방법으로 체력바를 만드는 것은 스크래치에서는 힘든 일입니다. 왜냐하면 스크래치에서 그리기 레이어는 항상 맨 아래에 있기 때문에 체력바가 오브젝트에 의해 가려지기 때문입니다. 그러나 엔트리는 그리기를 하면 해당 오브젝트와 동일한 레이어에서 그리며, 그리는 것을 지우는 것도 오브젝트마다 제어가 되므로 체력바를 그리는데 어려운 일이 아닙니다. 그러나 저는 그리기 대신 '이미지'를 바꾸는 방법으로 만들기로 합니다. 먼저 체력바 오브젝트를 추가합니다. 살짝 귀찮은 일이지만 체력바에 해당되는 이미지를 하나하나 넣어줍니다. 약간의 옵션? 으로 체력바에 그라데이션을 .. 2020. 4. 27.
엔트리 액션 RPG 만들기 6.몬스터 복제 만들기 안녕하세요. 승승이입니다. 이번에는 몬스터 복제를 해봅니다. 지난 시간까지는 몬스터를 배치하였는데 이번에는 배치된 자리에 몬스터를 놓는 것입니다. 배치와 몬스터를 구분해서 하나 더 추가하는 것입니다. 게임모드에서는 몬스터가 살아 움직이게 하는 것이 앞으로의 계획입니다. 몬스터 배치 오브젝트를 하나 추가합니다. 시작을 하면 153번을 복제합니다. 이것으로 메인 루프는 간단히 끝나고, 복제본에 대한 코딩을 따로 해줍니다. 복제본은 위와 같이 행동합니다. 일단 번호에 따라서 자신의 위치로 이동합니다. 공식은 위와 같이 되는데 참고하여 주세요 ^^;; 모드값이 1이면 몬스터는 숨어있다가 나타납니다. 현재는 아무 인공지능이 없고, 단지 리스트값에 따라서 몬스터의 종류만 정해지도록 되어 있습니다. 추후에 hp를 추.. 2020. 4. 25.