전체 글(17)
-
Firebase같은 Nosql 기반 데이터베이스 사용시 필드 내림차순 정렬방법
Mysql 같은 DB에선 OrderBY 라는 좋은 정렬기능이있다(desc,asc)등.. Firebase 기반 리듬게임의 랭킹기능을 구현할려던 와중 일단 랭킹컬렉션을 따로 제작하기에 이르렀고. ranking 컬렉션 -> 곡명 document 안에 유저이름 : 점수 필드가 만들어져있다. 내가 필요한건 이 점수에대한 내림차순, 오름차순 정렬이기에 구현을 해보기로 한다. 일단 이러한 UserScore이란 데이터모델 객체를 하나 만들어준다. 이를 만들어주는 이유는 List의 Collections.sort 메소드를 사용하여 정렬하기 위함인데. 숫자만 정렬되는게 아닌 해당하는 숫자의 유저네임도 같이 정렬돼야하기 때문. 데이터 스냅샷으로 받아온 파이어베이스 데이터를 Map에 담고,Map데이터를 UserScore객..
2024.05.27 -
안드로이드 스튜디오 옆으로 넘겨보는 예쁜 3D갤러리 만들어보기
어느정도 리듬게임 프로젝트의 기능구현이 끝나서, 남는기간동안 앱프론트의 본질에 충실해져보기로 한다 특히 곡선택화면은 리듬게임의 심장과도 같은부분이기때문에 이런 구린UI는 사용하면 기능에비해 실례라고 볼수있겠다. https://www.youtube.com/watch?v=cpEeqACsF_Q 구글에서 입사제의를 받았다던 유튜버의 이 예쁜 포트폴리오를 보면서 이런 슬라이드식으로 넘어가는 예쁜 3D갤러리를 곡 선택화면으로 만든다면 확실한 차이점을 주고, 인터렉티브한 사용자경험을 선사해줄수 있겠다 싶었다. 먼저 이 포스팅을 보러온분들은 제 포스팅을 통해 어떤 결과물을 얻어갈수 있는게 젤 궁금한 요소일거기때문에 결과물을 먼저 보여드리고 시작하겠습니다. 각 이미지에 description(설명) 과 difficul..
2024.05.10 -
Firebase에서 Firebase RealtimeDB처럼 store에서 실시간 데이터 값 받아오기
Firebase에서는 Realtime Database에서 DatabaseReference라는 클래스를 사용하여 데이터를 참조하고. 그 def로 참조한 값을 onDataChange 메소드를 오버라이드해서 쓰면 값이 변했을때 실시간으로 데이터를 변경해준다. 근데 이번에 희망온도는 실시간 데이터베이스가 아닌 DB에서 저장하는게 낫지않겠냐는 조원의 의견이 있어서 Hope 희망값을 DB로 이전하는 작업을 진행했다. 이 과정에서 같은 FireStore라서 똑같지 않을까 생각했지만. 애초에 다른 DB라서 동작 방식이 다르다. 결론부터 말하자면 addSnapShotListener을 사용하면 된다. 이 리스너를 사용하면 문서나 컬렉션의 변화를 실시간으로 감지하고 콜백함수를 제공하기 때문에. 이를 이용하여 데이터를 실시..
2024.05.09 -
안드로이드 스튜디오 리듬게임 프로젝트 보스곡 LIMBO + 어이없었던 실수 중간정리
팀원형님께서 카카오 로그인을 구현해서 java랑 xml로 일단 카카오 인증기능이 도입됐다 추후에 db구성하고 유저시스템 구축하게되면 식별변호로 사용하리.. 버추얼에서 카톡깔기 귀찮아서 바로 메인으로 뛰는버튼을 일단 만들어놨다 만들다 보니 재밌어서 3곡이 현재 들어가있다. 유지보수 하기 쉽도록 구조를 짜놨으니 앞으로 몇곡 더 추가해도 문제는 없을거같다 본인은 지금 팀프로젝트에서 기능개발만 맡고있는지라 xml디자이닝이 끝나면 제대로 앱을 구성할 예정이라 xml ID값만 맞으면 바로 도입할 수 있도록 소스구조를 짜놨다. 일단 보이는 순서대로 곡선택, 배속조절 (1~3,5배속까지 0.5배속 단위로) , 타격음 ON/OFF , 오토모드설정을 구현해놨다 곡을 선택하면 이렇게 곡 썸네일과 이름, bpm , 난이도..
2024.05.07 -
안드로이드 스튜디오로 리듬게임을 제작시 레이턴시 관련 문제 해결방법
이제 꽤나 리듬게임 다워진 모습이다. 아직 구현해야할것도 많고 개선해야할것도 많지만. 나름 사람구실은 하고있는모습니다 이 리듬게임을 제작하면서 겪었던 문제와 해결방법에대해서 제작기간 중간에 한번 정리해볼려고한다. 1. 버튼을 눌렀을때 반응이 0.5초정도 느리다.원인은 일단 onClickedListener 제작기간내내 버튼을누르고 타격소리를 출력하고, 판정을 처리하고, 판정처리후 노트가 사라지는 작업이 0.5초정도 지연이 됐었다. 처음에는 게임엔진을 사용하지않은 순수자바 게임의 한계라고 생각했으나. 답은 리스너의 작동형태였다. onClickedListener은 눌렀다가 뗄때 메소드를 실행하기 떄문에. 사실상 누른시점에 처리를 바로해야하는 리듬게임에선 적합하지 않은 형태이다. 그에대한 대안으로 onTouc..
2024.05.04 -
안드로이드 스튜디오 OSU!maina기반 리듬게임 채보를 만들어보자.
요 몇주간 중간시험이다 자격증시험에 이래저래 치여서 개발공부를 못한지 좀 됐다 ㅜ 중간고사 끝나니 교수님께서 내주신 대ㅡ황 모바일프로젝트.. 지금 팀프로젝트만 3개이상에 개인과제도 많지만 해보고싶었던 모바일 프로젝트가 있었기에 나름 욕심을 좀 내보기로한다. 일단 안드로이드 스튜디오로 구현하는걸 베이스로 게임 + DB + 네트워킹 이 옵션으로 들어간 프로젝트를 하시란다. 근데 그저그런앱에 애매한 게임이 들어가있으면 그것만큼 꼴보기 싫은것도 없으랴. 가끔 개발하다 머리아플때 한두판하는 DJ MAX 를 모티브로한 안드로이드 리듬게임을 한번 진행 해보기로했다. 워낙 기간도 짧게준지라 2.5주차에 중간발표, 4.5주차에 최종발표 총 4.5주가 주어진 프로젝트인만큼 속도가 생명이다. 사실 리듬게임이라면 제일먼저 ..
2024.05.01