메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

알만툴 액알.
원리가 도저히 이해가 안 갑니다.
그림넣어서 설명해주세요.
그 뭐시기 그냥 근접공격만 일단.
나중가서 원거리를 합시다.
조회 수 :
2282
등록일 :
2008.03.26
02:07:59 (*.47.100.50)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=186690

똥똥배

2008.03.28
01:00:22
(*.239.144.2)
그림까지는 못 보여드리겠고 간단히 말로 설명할께요.

일단 주인공 캐릭터와 적 캐릭터가 있습니다.
그리고 투명이고 안 보이는(아니면 공격 효과 애니메이션) 캐릭터 하나가 있습니다.
공격 영역 캐릭터라고 합시다.
이 캐릭터는 일단 이동 불가한 지점같은 구석에 일단 박아두십시오.
보통 0,0을 이동 불가능한 지점으로 만들어 두고 거기에 두는게 가장 편합니다.
이동 가능한 곳에 둘 수도 있는데 그럼 조건식 복잡하니 일단 이동 불가능한 곳에.

이제 주인공의 키 입력을 받았을 때를 처리합니다.
병렬 처리로 하면 좋습니다.
키를 입력 받았을 때 주인공의 방향을 검사한 다음,
위를 보고 있으면 주인공 위에, 아래를 보고 있으면 주인공 아래에...
이런 식으로 방향에 따라서 공격영역 캐릭터의 위치를 설정해줍니다.
이벤트 중에서 캐릭터 위치 설정이란 게 있죠? 그걸로 하시면 됩니다.

이제 또 하나의 병렬 처리가 필요합니다.
적 캐릭터와 그 공격 영역의 좌표를 얻어와서 변수에 넣고
적과 그 공격 영역의 X, Y 좌표가 일치하면 적 캐릭터에게 대미지를 줍니다.
일단은 간단하게 그냥 일시 삭제되게 해버리세요.

그리고 공격한 영역에 계속 그것이 남아있으면 지뢰처럼 되어 버리니
어느 정도 시간이 지나면 다시 0,0으로 보내 줍시다.

일단 처음부터 완벽을 바라지 마시고 일단 적이 공격영역과 부딫쳐 죽어버리는 것 까지 연습해 보세요.

흑곰

2008.04.18
07:38:09
(*.146.136.211)

액알을 알려면 변수를 알아야합니다.

똥똥배님의 설명에 따르면, 변수란 어떤 정보를 넣어두는 공간이라고 보면됩니다.
방이라고 보시면 되요.

Room이요 룸. 방 아시죠?

만약에 'ENEMY_HP' 라는 변수가 있다고 칩시다.
ENEMY_HP 라는 문패가 걸린 방이 있는거라고 생각하세요.

ENEMY_HP, 대입 100  하면  그 방에  100 이라는 숫자가 들어가는 겁니다.

ENEMY_HP, 가산 10 하면 그 방의 숫자에 +10 하는거구요.
가산(加算)의 가는 加(더할 가)입니다.

방 안에 있는 숫자 + 10 이 되는거에요.

만약에 ENEMY_HP 에 30이 대입되어있었는데,
ENEMY_HP, 가산 5 하면 변수값이 35가 되는 거구요.

거기에 또 ENEMY_HP 가산 10 하면 45가 되겠죠.

대입은 =
가산은 +
감산은 -

이렇게 보시면 되고 나머지는 별로 안쓰입니다. 어쨋건 변수를 알면 액알 만들기는 제법 순탄하게 되지요.

기본원리는
주인공이 처음 필드에 나설 때 ENEMY_HP에 300을 대입하고,
ENEMY_HP값이 0보다 크면 적을 표시하게 해둡니다.

그리고 주인공이 적을 때릴 때 마다 30씩 감산시키게 해둡니다.

그럼 적은 10대 맞으면 ENEMY_HP 값이 0 이 되죠?

앞에서 ENEMY_HP 값이 0 보다  클 때 적을 표시하게 해뒀다고 했으니까
적은 화면에서 사라집니다.

흑곰

2008.04.18
07:45:37
(*.146.136.211)
액알을 만드는 법에 대해서는 똥똥배님이 설명해주셨으니
전 변수에 대해서만 설명하고 물러갑니다ㅋ

열심히 하세요
List of Articles
번호 제목 글쓴이 조회 수 추천 수sort 날짜 최근 수정일
125 이쁜 눈나가 유니티 개발 알려주는 재생목록 노루발 37   2020-11-12 2020-11-12 05:59
https://www.youtube.com/watch?v=Ur2jN6_si6c&list=PLi-ukGVOag_1lNphWV5S-xxWDe3XANpyE https://www.youtube.com/watch?v=sJClf9S7AMA&list=PLi-ukGVOag_0HR09oTs966Wt81IYYXlFH 유니티를 배우고 있는 건 아닌데 만들어진 라이브러리를 다루는게 아...  
124 love2d에서 안드로이드 터치 제스처 인식하기 노루발 20   2020-11-12 2020-11-12 00:38
-- 안드로이드/iOS 등등의 터치스크린 입력을 받는 기기에서는 총 3가지의 콜백 함수를 사용한다: -- love.touchpressed / love.touchmoved / love.touchreleased -- 다만 위 3가지 함수는 마우스 클릭으로는 발생하지 않으므로 추가적인 처리가 필요하다. -- ...  
123 특정좌표를 기준으로 zoom in/zoom out하기 노루발 59   2020-11-11 2020-11-11 01:22
-- x,y - 줌인/줌아웃시 기준점 (좌표 이동이나 scale에 영향받지 않는 순수한 화면 좌표) -- scale - 현재 scale(1:그대로 0.5:1/2 사이즈 2:2배 사이즈) -- scaleinc - 얼마나 scale을 변화시킬것인가 (I usually use 0.1 or -0.1) -- camx - 카메라의 x좌표...  
122 Lua 클래스 만들고 활용하기 노루발 24   2020-11-06 2020-11-06 22:43
------------------------ stairs.lua ------------------------ Stairs = {} function Stairs:new(x, y, floor, direction, locked) local newStairs = {x = x, y = y, floor = floor, direction = direction, locked = locked} self.__index = self retur...  
121 Lua 테이블 안에 함수 저장하기 노루발 28   2020-11-06 2020-11-06 21:07
테이블 안에 함수를 저장할 수 있다. function move(object, direction) print(object .. " moved to ".. direction) end scheduler = {} scheduler.queue = {} function scheduler.newentry(action, args) scheduler.queue[#scheduler.queue + 1] = {} schedu...  
120 Lua 인수로 nil값이 들어왔을 경우 처리하기 노루발 63   2020-11-06 2020-11-06 20:29
or 연산자를 사용한다. 예제 코드: function moveplayer(direction) direction = direction or "nowhere" print("player moved to ".. direction) end moveplayer() --> "player moved to nowhere" moveplayer("north") -- "player moved to north" 이런 코드...  
119 TinyXML의 한계 [2] 똥똥배 3764   2011-12-11 2013-11-23 06:30
내가 TinyXML을 쓴 것은 이름 그대로 tiny하기 때문이었다. 쓸데없는 기능없이 담백하게 읽고 쓰고 땡. 하지만 써 본 사람들은 잘 알겠지만 유니코드를 지원하지 않는다. 일단 유니코드를 지원하지 않더라도 유니코드(UTF-8)로 된 문서를 읽을 수는 있다. 한글...  
118 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 10657   2011-10-27 2013-09-13 07:29
cocos2d와 달리, 윈도우 환경에서 cocos2d-x 프로그램을 짜보면 상속을 받았음에도 update, ccTouchesBegan 등의 함수가 작동되지 않음을 알 수 있다. 터치 해결법: OnEnter와 OnExit를 추가하고, 다음 같이 적어준다. void HelloWorld::onEnter() { //단일 ...  
117 중력 처리할때 캐릭터가 낍니다. [2] ㅁㄴㅇㄹ 1395   2012-02-12 2012-02-13 00:59
플랫폼 게임에서 중력 처리시 발판과 캐릭터가 충돌하면 더 이상 캐릭터가 밑으로 떨어지지 않게 했습니다. 그런데 캐릭터와 발판이 정상적이지 않게 충돌할 경우(점프했을 때 머리와 발판이 충돌한다던가) 캐릭터가 발판에 낍니다. 어떻게 발판의 처리를 다르...  
116 cocos2d의 가비지 컬렉터 똥똥배 1963   2012-02-07 2013-09-13 07:29
오늘에서야 안 것인데, cocos2d에는 가비지 컬렉터가 존재한다. 스프라이트를 생성하고 Node에 연결하지 않으면, 얼마 후 가비지 컬렉터가 이를 지워 버린다. 스프라이트를 생성하면 바로 Node에 연결해줘야 한다는 것이다. 내 경우, 게임 중에 메모리 할당을...  
115 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 3452   2011-05-25 2011-05-25 23:34
이 문제의 해결에 4가지 방법이 나왔다. 물론 환경이나 상황에 따라 더 많은 해결방법이 나올 수 있고, 어떤 것이 답인지는 그때 그때 마다 다른다. 일단 상황부터 정리. 스프라이터를 처리하는 툴에서는 스프라이터 애니메이션을 숫자가 아닌 특정 코멘트를 ...  
114 2중 for문을 돌릴 때 [3] 똥똥배 2539   2011-04-06 2011-04-07 17:08
제 경우, 원래는 이렇게 해야 정석인 코드를 for(int j = 0; j < y_size; ++j) { for(int i = 0; i < x_size; ++i) { //내용 } } 보기가 싫다는 이유로 for(int j = 0; j < y_size; ++j) for(int i = 0; i < x_size; ++i) { //내용 } 이런 식으로 적곤 ...  
113 Windows To Go와 R-Studio를 이용한 손실된 데이터 복구하기 노루발 90   2020-01-30 2020-01-30 19:52
하기의 복구 방법으로 모든 자료를 100% 복구할 수는 없으므로 자료의 손실 이전에 신뢰성 있고 주기적인 백업이 선행되어야 한다. 준비물: - 부팅 USB 혹은 외장 HDD/SSD - 복구한 자료를 저장할 외부 저장장치 (옵션) - R-Studio https://www.r-studio.com/ ...  
112 DirectX 창모드에서 화면 지워지는 문제 [7] file 똥똥배 2790   2010-12-12 2010-12-19 03:36
 
111 조금씩 게임 소스가 완성 되어 가는데요. [2] 짜스터 2190   2010-11-16 2010-11-16 09:10
기획하고 연출 에서 직접 표현할려고 하는데 전투 시스템을 혹시 알만툴 XP 스크립트를 제작해주시는거는 안되시나요? 연출쪽까지 맡으셔서 하시면 무척 힘들어질듯 하는데, 구디스 씨라고 외국에서 만든 SRPG 스크립을 구하기는 해봤지만 창세기전 처럼 케릭...  
110 데이터 축소에 대하여 [2] 짜스터 2430   2010-10-13 2013-11-23 04:38
환상수호전 : 티어크라이스 라는 닌텐도 게임을 알게 됬는데 컴퓨터 확장자 nds로 용량이 240메가 정도 밖에 안되는데 영상이나 성우 음성이 거의 풀로 유지되더군요. 데이터 품질을 최하로 해서 어느정도 볼만한 그래픽만 유지해서 용량을 최대한 축소시킨것 ...  
109 SRPG을 구현하게 되면 ... [3] 짜스터 2709   2010-10-05 2013-11-23 04:38
지금 도트 제작단계로 넘어갈 예정인데 SRPG 시스템을 지원 해주실거면 무슨 툴로 하실건가요? 해상도에 따라서 도트 크기도 맞춰야 하는터라. 혹시나 생각하신것이 있으면 알려주세요.  
108 문D라이브로 만드는 더블드래곤.. 질문입니다 [4] 하와이안 5550   2009-01-15 2009-01-21 00:16
예전 다른 프로그래밍 언어는 조금 써본 적 있는데 C++은 거의 없어서 헤매고 있습니다. 문D라이브 더블드래곤 강좌에 나온 데로 VC++ 2005 express edition으로 깔고 링크되어 있는 directx sdk 깔고 VC디렉토리에 SDK 링크도 추가해서 moondlib 실행하고 빌...  
107 흥크립트 질문. 글자에 관해서 [1] 에리 3430   2009-03-21 2009-03-21 09:30
예를 들어 글자입력으로 ㅇㅇㅇㅊ ㄱㄴㄱㅇ ㅅㅌ ㅋㄴㅇ ㄴㄴㅇ 대충 이런 글자들을 입력했다 치고 분기 명령어로 분기를 만들 수 있나요?  
106 C++ 질문 2 [3] A.미스릴 3565   2008-12-22 2008-12-23 18:47
바이너리(2진수) 저장 아시죠? 그런데 포인터 변수를 만들어서 동적 할당을 했을때 그 포인터 변수도 포함되어 저장되면 정상적으로 저장이 안 되는 건가요? 왜 그러냐면 제가 저장 방식을 모든 데이터를 하나의 클래스 속에 넣어서 그 1개의 클래스 인스턴스...