ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java Web Game 개발 가이드(11)
    Java Web Game 개발 가이드 2010. 2. 3. 20:33

     

      구  현  

      디자이너가 html 화면에 디자인을 꾸미는 동안 개발자는 화면에 표현 되어질 내용들을 데이터 베이스에서 가져 와야 합니다. 사용자의 건물 리스트, 추가 할 수 있는 건물 리스트, 플레이어의 각종 자원, 플레이어의 경매장 내용, 레벨 등을 가져 와야 합니다. 이 정보를 가져오기 위해서는 최초 GAME START 버튼을 클릭 할 때 각 정보들을 조회 해서 넘어와야 합니다.

    처음 로그 인을 수행하는 화면의 input 태그를 form 으로 감싸고 로그 인을 수행하는 액션을 설정합니다.

    <div>

        <h2>아직도 영농 RPG 회원이 아니세요?</h2>

        <form method="post" action="<%=RequestUtils.getPageLink(request,"/ActCOM_LGN_001000.do")%>" >

        <input type="hidden" name="command" value="COM_LGN_001000" />

        <input type="hidden" name="member_id" value="test" />

        <input type="hidden" name="member_pw" value="1234" />

        <input type="submit" value="GAME START" />

        </form>

    </div>

    해당 액션을 struts-config 에 추가 합니다.

    로그인용 자바로 이동합니다.

    Act 클래스에 해당 정보를 얻기 위한 조회 메서드를 호출 합니다.

    다음은 위의 조회를 위한 Model 클래스의 메서드입니다.

       

        /**

         * 사용자 건물 조회

         * @param box

         * @return box

         * @throws Exception

         */

        public Box selTBL_USR_BUILDING_01(Box box, UserSession usersession) throws Exception {

              

            Connection    con         = null;

            DBWrapper     wrapper     = null;

            SQLStore     sql         = null;

            JResultSet     jrs         = null;

              

            try{

                con     = ConnectionManager.getConnection(box);

                wrapper = new DBWrapper(con);

                sql     = new SQLStore(box,this,"selTBL_USR_BUILDING_01");

                sql.setString(1, usersession.getMEMBER_ID());    

                jrs = wrapper.exeQuery(sql);

                  

                box.put("selTBL_USR_BUILDING_01", jrs);

                  

            }catch (Exception e){

                e.printStackTrace();

                log.error(e);

                throw e;

            }finally{

                if(con != null){

                    con.close();

                }

            }    

            return box;

        }

          

        /**

         * 사용자 건물 조회

         * @param box

         * @return box

         * @throws Exception

         */

        public Box selPOINT(Box box, UserSession usersession) throws Exception {

            int point    = 348726000;

            try{

                box.put("USER_POINT", point);

                  

            }catch (Exception e){

                e.printStackTrace();

                log.error(e);

                throw e;

            }    

            return box;

        }

    점수 조회 부는 예를 위해 그냥 점수를 넣었습니다. 다음은 화면에서 이 값들을 조회할 쿼리파일을 손 봅니다.

    이제 조회한 결과를 화면에서 가져옵니다. 화면의 상단 부에서 정보를 조회한 값을 받기 위한 변수를 선언하여 화면에 표현 합니다.

    화면의 최 상단에서

    위와 같이 조회한 ResultSet을 가져옵니다.

    가져온 데이터를 위와 같이 동적으로 표현해 줍니다.

    위와 같이 데이터 베이스에 입력된 사용자의 건물이 표현 된 것을 볼 수 있습니다.

      여기까지 웹 화면의 시안 작성, 퍼블리싱, 디자인, 개발까지의 과정을 차례대로 진행해 보았습니다. 여러분의 작품은 잘 진행이 되고 있나요? 이제 기본적인 개발에 관한 소양은 모두 쌓은 듯 합니다. 새로운 기능을 지속적으로 추가하는 것은 위의 작업들을 반복하는 일들 이니까요. 위의 샘플 페이지에 있는 다양한 메뉴들을 차례로 개발하다 보면 참 다양한 코딩 스킬이 필요해질 것입니다. 이 글도 이제 거의 마지막을 향해 다가서는 듯 한데 아직 게임의 완성을 위해서 개발보다 더 중요하다 생각 되는 몇 가지 들을 살펴 보려 합니다.

Designed by Tistory.