• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(5)>
        2024년 05월 20일
        • Song hyun
        • 작성자
        • 2024.05.20.:02
        728x90
        반응형

        팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 

        팩맨(PacMan) 게임 구현하기(5)>

         

        1. 현황 및 구현한 기능들

        2. 리팩토링 및 미완성 기능 보완하기


        1. 현황 및 구현한 기능들

        main game 클래스 외에도 여러 패널이 추가되고, enemy(적 캐릭터)의 수와 메커니즘도 조금씩 바뀌면서 여러 오류들이 발생했다. 그래도 여러 우여곡절 끝에 우리는 팩맨의 전체적인 기능들을 구현할 수 있었다. 그간 제작한 기능들은 아래와 같다.

        메인 화면 플레이어 에너미
        메인 화면, 플레이어, 에너미 클래스의 자잘한 오류들 수정
        반전 아이템(과일) 구현  플레이어의 점수 및 라이프(목숨) 구현 에너미 중앙에서 생성
        전 판의 최고 점수 출력 플레이어 정지 지 중 데미지 구현 에너미 스크림 이미지 추가

         

         마감 기한이 촉박하기도 했고, 전체적인 기능이 구현&오류들을 수정했기 때문에 리팩토링 및 미완성된 기능들에 집중하기로 했다!


        2. 리팩토링 및 미완성 기능 보완하기

        (1) 게임 재시작 시, 초기 화면이 반복되며 게임 플레이 화면(mainGame)으로 넘어가지 않음

         첫번째 오류는 게임 재시작 시,게임 시작 화면이 반복되고, 플레이 화면으로 넘어가지 않는 오류였다. 해당 오류를 로깅을 통해 해결했던 기억이 난다.

         

         처음에는 시간이 문제인지, 다른 조건들이 문제인지 알 수 없었기 때문에, 초와 로깅 메세지가 함께 출력되게끔 작성해 오류의 원인을 찾아냈다. (아래의 코드를 보면 시간의 길고 짧음이 아닌 다른 조건이 오류의 원인임을 알 수 있다.) 팀장님과 함께 로깅하며 오류를 찾았던 기억이 난다.

        당시에 작성했던 로깅 코드. 시간이 문제인지, 다른 조건이 문제인지 궁금했기 때문에 시간을 함께 출력했다.

         

         

        (2) Player가 과일 아이템을 중복해서 먹을 시, 게임 점수가 오르지 않음

         두 번째로 기억에 남았던 오류는, Player가 과일 아이템을 중복해서 먹을 때 점수가 오르지 않는 것이었다. 이는 동시에 과일 먹음-> Strong state로 변환(적을 먹을 수 있는 상태) <-과도 연관이 있었다. 그 때문인지, 이 때 과일을 중복해서 먹을 때 멀티 스레딩 오류가 발생하기도 했다. 

         

        그래서 Strong이라는 변수를 만들어, 과일 아이템 섭취 및 Strong 상태를 제어할 수 있게끔, 아래와 같은 코드를 작성하게 되었다.

         

        (3) 리팩터링

         아직 리팩터링을 깊게 배우지 않았기 때문에, 코드 컨벤션(함수명 맞추기, 대소문자 체크 등)을 맞추고, 불필요한 코드들을 걷어낸 뒤, 쓰지 않는 Getter/Setter 메서드들을 삭제하는 방식으로 리팩터링을 진행했다.

         

         

         

        728x90
        반응형

        '💡My project > 팩맨 : Java Swing 게임 제작 프로젝트' 카테고리의 다른 글

        팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(6)>  (0) 2024.05.21
        팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(4)>  (0) 2024.05.10
        팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(3)>  (0) 2024.05.09
        팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(2)>  (0) 2024.05.08
        팀 프로젝트(1) <Java Swing을 활용한 멀티 쓰레딩 프로그래밍 프로젝트: 팩맨(PacMan) 게임 구현하기(1)>  (0) 2024.05.08
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바