Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Armdroid/마법의디지바이스: Difference between revisions

From ZeroWiki
imported>chokh1443
No edit summary
(Repair batch-0001 pages from live compare)
 
(51 intermediate revisions by 3 users not shown)
Line 1: Line 1:
마법의 디지바이스란, 본래 구글 안드로이드 Udacity 스터디의 해커톤 참여를 위해서 기획한 프로젝트로 
마법의 MD5 배틀 + 디지바이스(다마고치) + 포켓몬의 전투 UI(희망사항) + 살아남아라개복치!의 메인UI
를 합친 게임이라고 생각하면 된다.
git> https://github.com/ZeroPage/magical-digivice 
__TOC__
__TOC__
 
= 기획 =
= 캐릭터 =
== 캐릭터 ==
* 현장에서 생성
* 현장에서 생성
** 연속 촬영등을 활용해서 사람들 얼굴을 사진으로 담는다.
** 연속 촬영등을 활용해서 사람들 얼굴을 사진으로 담는다.
   이 사진을 캐릭터의 이미지로 활용하여 충분한 숫자의 캐릭터를 만든다.
   이 사진을 캐릭터의 이미지로 활용하여 충분한 숫자의 캐릭터를 만든다.
== 생성 ==
=== 생성 ===
* 마법의 md5
* 마법의 md5
  이름을 넣으면 md5화 시켜서 임의로 캐릭터를 생성.
  이름을 넣으면 md5화 시켜서 임의로 캐릭터를 생성.
  md5로 부터 나오는 수치는 7가지 스탯의 초기값, 캐릭터 이미지
  md5로 부터 나오는 수치는 7가지 스탯의 초기값, 캐릭터 이미지
== 스탯 ==
=== 스탯 ===
  *비전투 관련 스탯
  *비전투 관련 스탯 ( 최대값 char )
** 배부름
  치킨을 먹으면 배부름 수치가 올라간다.
   외주를 하면 감소한다.
   외주를 하면 감소한다.
   시간이 지나면 감소한다.
   시간이 지나면 감소한다.
   0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
   0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
  최대값보다 커질 경우 더 이상 할 수 없다.
** 배부름
  치킨을 먹으면 배부름 수치가 올라간다.
** 맨탈
** 맨탈
   맥주를 마시면 맨탈 수치가 올라간다.
   맥주를 마시면 맨탈 수치가 올라간다.
  외주를 하면 감소한다.
  시간이 지나면 감소한다.
  0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.


* 전투 관련 스텟
* 전투 관련 스텟 ( 최대값은 unsigned int )
** 칰력--칰앙심--  
** 칰력--칰앙심--  
   치킨을 먹으면 스탯이 올라갈 가능성이 있다.
   치킨을 먹으면 스탯이 올라갈 가능성이 있다.
Line 30: Line 33:
   외주를 하면 스탯이 올라갈 가능성이 있다.   
   외주를 하면 스탯이 올라갈 가능성이 있다.   


* 전투+비전투 관련 스탯
* 전투+비전투 관련 스탯 ( 최대값은 unsigned int )
** 재력
** 재력
   외주를 하면 증가한다.
   외주를 하면 증가한다.
Line 36: Line 39:
   0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
   0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
   전투에서 지면 감소한다.
   전투에서 지면 감소한다.
== 육성 ==
=== 육성 ===
* 치킨먹기 :  
* 치킨먹기(30분당) :  
  재력--, 칰력++, 배부름++
  재력-=5, 칰력+=rand()%1, 배부름+=10+rand()%20
* 맥주마시기 :  
* 맥주마시기(30분당) :  
  재력--, 주량++, 멘탈++
  재력-=5, 주량+=rand()%1, 멘탈+=10+rand()%20
* 외주하기 :  
* 외주하기(30분당) :  
  재력++, 멘탈--, 배고픔--, 코딩++
  재력+=10 + rand()%10, 멘탈-=rand()%5, 배고픔-=rand()%5, 코딩+=rand()%1
= 전투 =  
* 기본(30분당) :
== NFC ==
배부름-=rand()%5 , 멘탈-=rand()%5
* 전투(1회당) :
배부름-=10, 멘탈-=10, 제력-=결과에따라
== 전투 ==
=== NFC ===
* 데이터 교환
* 데이터 교환
  주량, 칰력, 코딩, 재력, rand()
  주량, 칰력, 코딩, 재력, rand()


* 전투는 ( rand() + rand() ) % 3 으로 다음 3가지중 하나로 전투한다.
* 전투는 ( rand() + rand() ) % 3 으로 다음 3가지중 하나로 전투한다.
** 다이다이
** 다이다이
   주량으로 전투를 한다.  
   주량으로 전투를 한다.  
Line 56: Line 62:
** 코드잼
** 코드잼
   코딩으로 전투를 한다.
   코딩으로 전투를 한다.
 
* 전투 알고리즘
  double TotalMyDmg=0, TotalUrDmg=0;
** 매턴
  int tmp = rand();
  int myDmg = tmp % myStat;
  int urDmg = tmp % urStat;
  TotalMyDmg += myDmg;
  TotalUrDmg += urDmg;
** 승패
  compare(TotalMyDmg,TotalUrDmg);
* 전투 결과
* 전투 결과
  전투를 통해 진쪽의 재력이 감소한다.
  배부름-=10
== 출력 ==
멘탈-=10
제력-= 결과에 따라 달라진다.
=== 출력 ===
* 다이다이
* 다이다이


Line 65: Line 82:


* 코드잼
* 코드잼
= 엔딩 =
== 엔딩 ==
* $0.99 달러에 부활 가능
* $0.99 달러에 부활 가능


== 결제 ==
* 정식버전(WIFI, 전투로그 지원)
  본 버전은 Lite 버전입니다.
  정식 버전을 사용하려면 결제해주세요.
  계좌번호 (우리) 1002-XXX-XXXXXX $0.99
* 부활
  계좌번호 (우리) 1002-XXX-XXXXXX $0.99
= 개발 =
== 화면 구성 ==
http://pds21.egloos.com/pds/201411/07/63/d0045863_545ba5daaeb44.jpeg
* 위쪽에는 스탯 6개를 보여줌
* 아래 버튼 4개
* 치킨먹기, 맥주마시기, 외주하기 : 다이얼로그
* 전투하기 : NFC , WIFI(결제창으로 이동)
== BGM ==
* http://www.youtube.com/watch?v=woktSuBWR3U - 디지몬 butterfly
* http://www.youtube.com/watch?v=8oWthp4_nsU - 디지몬 진화 브금
* http://www.youtube.com/watch?v=9pYO0aHmez4 - 포켓몬 전투 브금
== 마법의 md5 ==
*스탯과 캐릭터id(이미지)는 preference 에 저장
== 전투애니메이션 ==
* Activity 1개로 해결
== NFC사용법 ==
* 파일 전송 가능 (용량 제한 x)
* Android Beam(TM)이라는 기술을 쓴다.
** http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#p2p (레퍼런스)
** 레퍼런스에 있는 예제코드를 복붙, 하고  Intent-filter를 붙이는 정도로 사용 가능하다.
** 단, 단방향 전송만 가능한데다가, '송신'을 위해 사람이 손으로 터치해서 허가 해줘야 한다;
** 이 때문에 문제가 생겼다.
*** 본래 양방향 통신을 기대하고 만들었는데 단방향만 된다.
*** '송신' 허가를 위해 터치를 해야 한다. '수신' 허가도 아니다. 수신 허가였으면 서로 턴을 교환 하는 식으로 만들 수 있었을 텐데.
*** 게다가, 송신 허가 시점을 캐치할 수 없다. 전송 시도할때는 캐치 할수 있다. 근데 이 시점을 잡아봐야 게임 진행에 쓸모가 없다.
*** Beam 말고 Tag 상태로 작동 할 수 있는지 시도 해봤는데, 방법이 없다.
** 기획 수정이 필요하다.
** NFC의 이런 특징을 감수하고도 할만한 진행방식을 생각하던가
** 아니면, 다른 근거리 통신 기술을 이용해야 한다.
----
상위: [[Armdroid]]

Latest revision as of 23:56, 26 March 2026

마법의 디지바이스란, 본래 구글 안드로이드 Udacity 스터디의 해커톤 참여를 위해서 기획한 프로젝트로

마법의 MD5 배틀 + 디지바이스(다마고치) + 포켓몬의 전투 UI(희망사항) + 살아남아라개복치!의 메인UI

를 합친 게임이라고 생각하면 된다. git> https://github.com/ZeroPage/magical-digivice

기획

캐릭터

  • 현장에서 생성
    • 연속 촬영등을 활용해서 사람들 얼굴을 사진으로 담는다.
 이 사진을 캐릭터의 이미지로 활용하여 충분한 숫자의 캐릭터를 만든다.

생성

  • 마법의 md5
이름을 넣으면 md5화 시켜서 임의로 캐릭터를 생성.
md5로 부터 나오는 수치는 7가지 스탯의 초기값, 캐릭터 이미지

스탯

*비전투 관련 스탯 ( 최대값 char )
 외주를 하면 감소한다.
 시간이 지나면 감소한다.
 0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
 최대값보다 커질 경우 더 이상 할 수 없다.
    • 배부름
 치킨을 먹으면 배부름 수치가 올라간다.
    • 맨탈
 맥주를 마시면 맨탈 수치가 올라간다.
  • 전투 관련 스텟 ( 최대값은 unsigned int )
    • 칰력--칰앙심--
 치킨을 먹으면 스탯이 올라갈 가능성이 있다.
    • 주량
 맥주를 마시면 스탯이 올라갈 가능성이 있다.
    • 코딩
 외주를 하면 스탯이 올라갈 가능성이 있다.  
  • 전투+비전투 관련 스탯 ( 최대값은 unsigned int )
    • 재력
  외주를 하면 증가한다.
  치킨을 먹거나 맥주를 마시면 감소한다.
  0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
  전투에서 지면 감소한다.

육성

  • 치킨먹기(30분당) :
재력-=5, 칰력+=rand()%1, 배부름+=10+rand()%20
  • 맥주마시기(30분당) :
재력-=5, 주량+=rand()%1, 멘탈+=10+rand()%20
  • 외주하기(30분당) :
재력+=10 + rand()%10, 멘탈-=rand()%5, 배고픔-=rand()%5, 코딩+=rand()%1
  • 기본(30분당) :
배부름-=rand()%5 , 멘탈-=rand()%5
  • 전투(1회당) :
배부름-=10, 멘탈-=10, 제력-=결과에따라

전투

NFC

  • 데이터 교환
주량, 칰력, 코딩, 재력, rand()
  • 전투는 ( rand() + rand() ) % 3 으로 다음 3가지중 하나로 전투한다.
    • 다이다이
 주량으로 전투를 한다. 
    • 칰세권
 칰력으로 전투를 한다.
    • 코드잼
 코딩으로 전투를 한다.
  • 전투 알고리즘
  double TotalMyDmg=0, TotalUrDmg=0;
    • 매턴
  int tmp = rand();
  int myDmg = tmp % myStat;
  int urDmg = tmp % urStat;
  TotalMyDmg += myDmg;
  TotalUrDmg += urDmg;
    • 승패
  compare(TotalMyDmg,TotalUrDmg);
  • 전투 결과
배부름-=10
멘탈-=10
제력-= 결과에 따라 달라진다.

출력

  • 다이다이
  • 칰세권
  • 코드잼

엔딩

  • $0.99 달러에 부활 가능

결제

  • 정식버전(WIFI, 전투로그 지원)
 본 버전은 Lite 버전입니다.
 정식 버전을 사용하려면 결제해주세요.
 계좌번호 (우리) 1002-XXX-XXXXXX $0.99
  • 부활
 계좌번호 (우리) 1002-XXX-XXXXXX $0.99

개발

화면 구성

http://pds21.egloos.com/pds/201411/07/63/d0045863_545ba5daaeb44.jpeg

  • 위쪽에는 스탯 6개를 보여줌
  • 아래 버튼 4개
  • 치킨먹기, 맥주마시기, 외주하기 : 다이얼로그
  • 전투하기 : NFC , WIFI(결제창으로 이동)

BGM

마법의 md5

*스탯과 캐릭터id(이미지)는 preference 에 저장

전투애니메이션

  • Activity 1개로 해결

NFC사용법

  • 파일 전송 가능 (용량 제한 x)
  • Android Beam(TM)이라는 기술을 쓴다.
    • http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#p2p (레퍼런스)
    • 레퍼런스에 있는 예제코드를 복붙, 하고 Intent-filter를 붙이는 정도로 사용 가능하다.
    • 단, 단방향 전송만 가능한데다가, '송신'을 위해 사람이 손으로 터치해서 허가 해줘야 한다;
    • 이 때문에 문제가 생겼다.
      • 본래 양방향 통신을 기대하고 만들었는데 단방향만 된다.
      • '송신' 허가를 위해 터치를 해야 한다. '수신' 허가도 아니다. 수신 허가였으면 서로 턴을 교환 하는 식으로 만들 수 있었을 텐데.
      • 게다가, 송신 허가 시점을 캐치할 수 없다. 전송 시도할때는 캐치 할수 있다. 근데 이 시점을 잡아봐야 게임 진행에 쓸모가 없다.
      • Beam 말고 Tag 상태로 작동 할 수 있는지 시도 해봤는데, 방법이 없다.
    • 기획 수정이 필요하다.
    • NFC의 이런 특징을 감수하고도 할만한 진행방식을 생각하던가
    • 아니면, 다른 근거리 통신 기술을 이용해야 한다.

상위: Armdroid