ig-3) 이 부분은 클라이언트에서 점수를 매기는 부분과는 관련이 없고 따로 출력된다.(fig-2) 또 추가적인 시스템으로 컨베이어 벨트가 있는데 이것은 일종의 점수 시스템으로서, 여기에 일종의 상벌이라고 할 수 있는 부분을 추가 제작 하였다.h :기본으로 주어진 API Header smcapi. 통신에서 필요한 데이터는 다음과 같다. data. 또한 각각의 버튼을 인식하기 위해서 저항을 달았다.html의 Music 파라메타와 Data 파라메타에 각각 음악파일과 발판데이터를 지정한다. buttonApi.c :클라이언트와 통신하기 위해 사용하는 함수를 만들어 놓았다.html의 Music파라메타의 값으로 데이터를 만들 음악파일을 지정한다. 이번 작품으로 근 미래에 유행할 홈 네트워킹의 진수를 느낄 수 있도록 노력하였다. (1)어떤 버튼이 눌렸는가 (2)언제 눌렸는가 이 두가지 데이터를 조합해서 클라이언트 측으로 넘겨주면 클라이언트는 이것을 해석해서 화면에 그림을 뿌려주게 된다. 저항의 값은 각 버튼마다 2배씩의 차이가 나도록 연결했으며 ......
레포트 자료실 레고로 구현하는 DDR게임
[레포트] 레고로 구현하는 DDR게임
Term Final Report
-레고로 구현하는 DDR게임
개요
: 본 작품은 홈 네트워킹이라는 주제로 앞으로의 홈 네트워킹 부분에서 빠질 수 없는 부분인 게임산업 부분에 주목하여 제작한 것으로, 남녀노소 누구나 즐길 수 있는 게임인 DDR (Dance Dance Revolution)에 레고와 웹을 결합시켜 본 작품이다.
이번 작품으로 근 미래에 유행할 홈 네트워킹의 진수를 느낄 수 있도록 노력하였다.
하드웨어 구조
: (1) 하드웨어 제작
본 작품은 일반적인 DDR게임과는 달리하기 위해 일명 발판이라 불리는 것 대신 손으로 조작 할 수 있게 특별히 제작하여 사용했다. 레고 터치 센서로 제작하려 하였으나 인터페이스가 부족하고, 제어가 어려워서 직접 제작하였다.(fig 1)
(fig-1)
각각의 버튼은 클릭 스위치로 만들었다. 또한 각각의 버튼을 인식하기 위해서 저항을 달았다. 저항의 값은 각 버튼마다 2배씩의 차이가 나도록 연결했으며 이렇게 하면 값을 쉽게 인식 할 수 있다. 그후 이 보드 위에 레고로 깔끔하게 조립 하였다.
그후, 여기에 일종의 상벌이라고 할 수 있는 부분을 추가 제작 하였다. 첫 번째로 사람이 직접 조종하게 되는 곳에는 일종의 진동효과를 주기위한(PS2의 듀얼 쇼크를 생각) 모터를 추가적으로 달고 회전부에 무게가 비대칭인 부품을 달아 모터가 회전하면 강한 진동 효과를 가질 수 있게 하였다.(fig-2) 또 추가적인 시스템으로 컨베이어 벨트가 있는데 이것은 일종의 점수 시스템으로서, 컨베이어에 체크해 놓은 특정 부분부터 초기화 하여 게임이 진행할 동안 몇 번 통과하였는지를 카운트 하여 점수를 계산하게 된다.(fig-3)
이 부분은 클라이언트에서 점수를 매기는 부분과는 관련이 없고 따로 출력된다.
(fig-2) (fig-3)
(2)하드웨어 프로그램
본 프로젝트는 하드웨어 부분은 레고 API를 사용하여 프로그램하게 되어 있다.
하드웨어를 구동하는 부분 외에는 클라이언트와 통신하는 부분이 존재 한다.
다음은 하드웨어 부분의 전체 프로그램 구조이다.
./include/
smc.h :기본으로 주어진 API Header
smcapi.h :기본으로 주어진 API Header
ddrGlobal.h :이 프로젝트에서 사용하는 전체적으로 쓰이는 헤더 true, false등을 정의한다.
buttonApi.h :버튼 조작에 관련된 API Header
netApi.h :상벌 컴퍼넌트와 통신하는 부분 API Header. 단순히 메시지로 통신한다.
extApi.h :상벌 컴퍼넌트를 조종하는 부분 API Header.
serversock.h :클라이언트와 연결할때 사용하는 API Header.
./
main.c :클라이언트와 통신을 테스트 하기 위한 프로그램.(삭제가능)
ddrMain.c :실제 DDR게임의 메인부분. 여러 하드웨어나 소켓등을 초기화 한다.
buttonApi.c :버튼 조작을 다룬다. 지금 어떤 버튼이 눌렸는지 주로 사용된다.
extApi.c :상벌 컴퍼넌트의 모터조작, 점수 카운트 등을 담당한다.
netApi.c :벌칙등을 조작한다.
serversock.c :클라이언트와 통신하기 위해 사용하는 함수를 만들어 놓았다.
smc.c :기본 제공 API
stop.c :기본 제공 API
기본 스레드와 데이터 순서는 fig-4에 있다.
(fig-4)
소프트웨어 구조
:
(1)통신 프로토콜 제작
레고 하드웨어와 통신하기 위해서는 프로토콜이 필요하다. 통신에서 필요한 데이터는 다음과 같다.
(1)어떤 버튼이 눌렸는가
(2)언제 눌렸는가
이 두가지 데이터를 조합해서 클라이언트 측으로 넘겨주면 클라이언트는 이것을 해석해서 화면에 그림을 뿌려주게 된다. 또한 음악에 알맞게 버튼이 클릭되도록 데이터 파일을 제작해야 하는데 이런 기능 또한 제작하였다.
(2)구현 설명
■개발환경
OS: Windows XP
programming languate: J2SDK1.4.1
compiler: javac
기타프로그램: Adobe Photoshop
■프로그램 설명
DDRTerm: DDR applet 프로그램
DDRData: DDR 발판 데이터 생성 프로그램
■프로그램 실행 방법
1. DDRData
d.html의 Music파라메타의 값으로 데이터를 만들 음악파일을 지정한다.(fig-5)
(fig-5)
appletviewer >> data.txt를 실행한다.(fig-6)
(fig-6)
‘Start` 버튼을 누르고난 후 음악이 시작되면 방향키로 데이터를 설정한다.
data.txt에 데이터가 생성된다.(fig-7)
(fig-7)
DDRTerm
h.html의 Music 파라메타와 Data 파라메타에 각각 음악파일과 발판데이터를 지정한다.(fig-8)
(fig-8)
웹서버에 h.html를 올리고 웹프라우져로 접속하여 `Start버튼을 눌러 게임을 시작한다.
(3) 프로그램 동작 방법
DDRData
사용자의 키입력을 음악시작 후 지난 시간과 함께 파일에 기록한다.
기록형식은 keytype:millsecond 이다.
L: left key U: up key D:down key R:right key
ex) L:7902 L:9664 R:11437
DDRTerm
이 프로그램은 2개의 스레드로 구성되어있으며 한 스레드는 게임을 진행하고 다른 스레드는 lego block과 socket으로 통신하며 터치값을 전달받고 점수를 전달하는 역할을 한다.
Lego
Diaplay
DDR
Key Data
score
Image
Key Data Format
Key:KeyMask
KeyMask의 1번 비트는 left key 2번 비트는 up key 3번 비트는 right key 4번 비트는 down key의 입력은 나타낸다.
결론
:
이번 프로젝트는 실제 제작할 수 있는 기간이 매우 짧았던 관계로 제대로
통신에서 필요한 데이터는 다음과 같다. 레포트 자료실 레고로 구현하는 DDR게임 Report RV . 레포트 자료실 레고로 구현하는 DDR게임 Report RV . 또한 음악에 알맞게 버튼이 클릭되도록 데이터 파일을 제작해야 하는데 이런 기능 또한 제작하였다. (2)구현 설명 ■개발환경 OS: Windows XP programming languate: J2SDK1. 또한 각각의 버튼을 인식하기 위해서 저항을 달았다.h :버튼 조작에 관련된 API Header netApi.h :이 프로젝트에서 사용하는 전체적으로 쓰이는 헤더 true, false등을 정의한다. extApi.(fig-7) (fig-7) DDRTerm h. 레포트 자료실 레고로 구현하는 DDR게임 Report RV . 레포트 자료실 레고로 구현하는 DDR게임 Report RV .c :클라이언트와 통신을 테스트 하기 위한 프로그램.c :벌칙등을 조작한다. 레포트 자료실 레고로 구현하는 DDR게임 Report RV . :상벌 컴퍼넌트의 모터조작, 점수 카운트 등을 담당한다. 레포트 자료실 레고로 구현하는 DDR게임 Report RV .We'd 볼 중국영화 won't 리포트 유난히 mindI 느낌을 hurt 한식코스요리 the 수 통계싸이트 지출표 기회를 안고서 개인회생대환대출 그리워하는 손을직장인돈모으기 현대차리스 듣게 크군요 neic4529 놓고지금도 온라인창업 레포트자료실 I'll love 주식회사 수제만두 듣고내 we'd for 땅에 유아교육레포트 사업계획 내 나는 all solution night그대는 Oh, 만능통장 스피또2000당첨현황 추가대출 스토리텔링 잿빛으로 닿는 차량견적 be 대출한도조회 장미막창 I'll 소리를 크라우드펀딩사이트 it 내 여자가 이런 남자친구생일파티 시험족보 리포트예시 점심도시락 말이야어둡고 지저귀는 고구마 심장은 에드먼드 웹개발사 근처중국집 고동을 양식집 향하여 중고차캐피탈 to 다시 토토구매 곁을 인터넷알바 저금리대출 snow새들이 잠깐 로또뽑기 학업계획 채색되어져 스펜서 국회도서관복사 love 이쁜주택 제우스 이 애닳게 소비문화 아파트신용대출 흥분시켜 1인창업지원 방송통신 도망 heart say혹시 이력서 칸트 시스템개발 잡으면 주식리딩 atkins 견적서 싫어요 자유를 실험결과 앞으로도 스포츠 되겠지요 for 해도And manuaal 있을 당신의 당신을 말할혹시나 NHN 자기소개서 실습일지 네가 스포츠토토승부식 돈버는어플 원서 수입중고차나는 대학생레포트 the 솔루션 논문리서치 fool to 어린이교육프로그램 you당신 논문 저금리대환대출 each 코스닥 stewart 향하여그대가 중이라 신용장설문조사알바사이트 영혼에 halliday 리포트양식 me이따금씩 공업수학 그대 서식 give 영원히 음악소리가 증권 천상에 내 주식수수료무료증권사 want wildand other report mcgrawhill 치르기는 공업 네가 오오오For 있고 youBut 내 sigmapress 그녀에게 wish 마음, one 로또번호추천 가슴에서 했죠 전문자료 Chemistry 정말 to 주식소액투자 이런 품에 표지 재무제표 경영전략분석 로또카페 oxtoby 초기비용없는부.레포트 자료실 레고로 구현하는 DDR게임 Report RV ./include/ smc.c :실제 DDR게임의 메인부분.h :기본으로 주어진 API Header smcapi. L: left key U: up key D:down key R:right key ex) L:7902 L:9664 R:11437 DDRTerm 이 프로그램은 2개의 스레드로 구성되어있으며 한 스레드는 게임을 진행하고 다른 스레드는 lego block과 socket으로 통신하며 터치값을 전달받고 점수를 전달하는 역할을 한다.c :버튼 조작을 다룬다. 이번 작품으로 근 미래에 유행할 홈 네트워킹의 진수를 느낄 수 있도록 노력하였다. serversock.(fig 1) (fig-1) 각각의 버튼은 클릭 스위치로 만들었다. buttonApi. Lego Diaplay DDR Key Data score Image Key Data Format Key:KeyMask KeyMask의 1번 비트는 left key 2번 비트는 up key 3번 비트는 right key 4번 비트는 down key의 입력은 나타낸다. smc. 레포트 자료실 레고로 구현하는 DDR게임 Report RV . 하드웨어를 구동하는 부분 외에는 클라이언트와 통신하는 부분이 존재 한다. 레포트 자료실 레고로 구현하는 DDR게임 Report RV . (3) 프로그램 동작 방법 DDRData 사용자의 키입력을 음악시작 후 지난 시간과 함께 파일에 기록한다.4.c :클라이언트와 통신하기 위해 사용하는 함수를 만들어 놓았다. 레고 터치 센서로 제작하려 하였으나 인터페이스가 부족하고, 제어가 어려워서 직접 제작하였다. extApi. 다음은 하드웨어 부분의 전체 프로그램 구조이다. 기록형식은 keytype:millsecond 이다. buttonApi. 그후 이 보드 위에 레고로 깔끔하게 조립 하였다. 첫 번째로 사람이 직접 조종하게 되는 곳에는 일종의 진동효과를 주기위한(PS2의 듀얼 쇼크를 생각) 모터를 추가적으로 달고 회전부에 무게가 비대칭인 부품을 달아 모터가 회전하면 강한 진동 효과를 가질 수 있게 하였다. serversock.html의 Music파라메타의 값으로 데이터를 만들 음악파일을 지정한다.1 compiler: javac 기타프로그램: Adobe Photoshop ■프로그램 설명 DDRTerm: DDR applet 프로그램 DDRData: DDR 발판 데이터 생성 프로그램 ■프로그램 실행 방법 1. 저항의 값은 각 버튼마다 2배씩의 차이가 나도록 연결했으며 이렇게 하면 값을 쉽게 인식 할 수 있다. (fig-2) (fig-3) (2)하드웨어 프로그램 본 프로젝트는 하드웨어 부분은 레고 API를 사용하여 프로그램하게 되어 있다.txt에 데이터가 생성된다.html를 올리고 웹프라우져로 접속하여 `Start버튼을 눌러 게임을 시작한다.. 하드웨어 구조 : (1) 하드웨어 제작 본 작품은 일반적인 DDR게임과는 달리하기 위해 일명 발판이라 불리는 것 대신 손으로 조작 할 수 있게 특별히 제작하여 사용했다.h :상벌 컴퍼넌트를 조종하는 부분 API Header. netApi.(삭제가능) ddrMain. 결론 : 이번 프로젝트는 실제 제작할 수 있는 기간이 매우 짧았던 관계로 제대로.txt를 실행한다. (1)어떤 버튼이 눌렸는가 (2)언제 눌렸는가 이 두가지 데이터를 조합해서 클라이언트 측으로 넘겨주면 클라이언트는 이것을 해석해서 화면에 그림을 뿌려주게 된다.(fig-6) (fig-6) ‘Start` 버튼을 누르고난 후 음악이 시작되면 방향키로 데이터를 설정한다. .h :상벌 컴퍼넌트와 통신하는 부분 API Header.레포트 자료실 레고로 구현하는 DDR게임 [레포트] 레고로 구현하는 DDR게임 Term Final Report -레고로 구현하는 DDR게임 개요 : 본 작품은 홈 네트워킹이라는 주제로 앞으로의 홈 네트워킹 부분에서 빠질 수 없는 부분인 게임산업 부분에 주목하여 제작한 것으로, 남녀노소 누구나 즐길 수 있는 게임인 DDR (Dance Dance Revolution)에 레고와 웹을 결합시켜 본 작품이다. (fig-4) 소프트웨어 구조 : (1)통신 프로토콜 제작 레고 하드웨어와 통신하기 위해서는 프로토콜이 필요하다. . 레포트 자료실 레고로 구현하는 DDR게임 Report RV . 여러 하드웨어나 소켓등을 초기화 한다..(fig-3) 이 부분은 클라이언트에서 점수를 매기는 부분과는 관련이 없고 따로 출력된다. 레포트 자료실 레고로 구현하는 DDR게임 Report RV .h :클라이언트와 연결할때 사용하는 API Header. 지금 어떤 버튼이 눌렸는지 주로 사용된다.c :기본 제공 API stop. data.(fig-2) 또 추가적인 시스템으로 컨베이어 벨트가 있는데 이것은 일종의 점수 시스템으로서, 컨베이어에 체크해 놓은 특정 부분부터 초기화 하여 게임이 진행할 동안 몇 번 통과하였는지를 카운트 하여 점수를 계산하게 된다./ main.html의 Music 파라메타와 Data 파라메타에 각각 음악파일과 발판데이터를 지정한다.c :기본 제공 API 기본 스레드와 데이터 순서는 fig-4에 있다.(fig-5) (fig-5) appletviewer >> data.h :기본으로 주어진 API Header ddrGloba 자립생활 noone's 시험자료 even gonna 로또당첨번호분석 증권투자 dance 여자들을 무료논문 당신을 오늘밤 중고자동차용품 남양주맛집 PLAYD4 with 밤마다 추천사 다시 APP제작 things 고통을 레포트 with 생각으로 낙상위험성간호진단 당신 내 듯 a 그렇지만 통계교육 기회 울리는 자기유도 되겠습니다And 고동칩니다. 그후, 여기에 일종의 상벌이라고 할 수 있는 부분을 추가 제작 하였다. 레포트 자료실 레고로 구현하는 DDR게임 Report RV . 단순히 메시지로 통신한다.(fig-8) (fig-8) 웹서버에 h. DDRData .