본문 바로가기

분류 전체보기163

[버블버블게임만들기] 6. 스레드로 벽 감지해서 충돌방지하기(2) 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 지난 글에서 캐릭터기준점이 각종 색상에 닿았을때 콘솔에 출력이 되게 작성했었다. 그중에서 붉은 색부분이 벽으로 캐릭터가 더이상 진입을 하면 안되는 구간이였다. 사용자들에게 해당 화면이 보이면 안되기 때문에 BubbleFrame에서는 맵을 기존 맵으로 변경해준다. 캐릭터에 추가적인 상태표현이 필요하다. 해당 캐릭터가 벽에 충돌한 상태인지 아닌지 확인 하기 위해서 player 클래스에서 leftWallCrash. rightWallCrash를 .. 2023. 8. 1.
[버블버블게임만들기] 5. 스레드로 벽 감지해서 충돌방지하기(1) 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 보통 게임을 하다보면 캐릭터가 모든곳을 이동하지 못하고 벽에 가로막혀서 이동할 수 없는 공간이 있다. 해당 프로젝트에서도 마찬가지로 캐릭터가 화면 밖으로 이동하지 못하게 벽을 감지해주는 기능을 작성하고자한다. BackgroundPlayerService 클래스를 생성 후 runnable 을 상속해준다. run메서드를 오버라이드 해준다. (mac : commend + o) BubbleFrame 클래스로 이동해서 initObject 메서드에 맵.. 2023. 8. 1.
[버블버블게임만들기] 4. 캐릭터 점프하기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 캐릭터를 좌우로 움직이게 해봤으니 이제 점프를 하게 해보자 player 클래스에서 속도와 점프속도를 상수로 만들어준다. left/right에서 x좌표를 x=x-SPEED로 수정해준다. 이제 up을 수정해줄 건데 아래와 같이 수정해준다. boolean 인 up을 false 에서 true 로 값을 변경해주고 while 문이 아닌 for 문으로 점프 했을때 적정값을 찾아서 지정해주어야 하는데 이번 프로젝트에선 130을 기준으로 하고 130을 J.. 2023. 7. 31.
[버블버블게임만들기] 3. 스레드를 사용해서 캐릭터 좌우로 움직이게하기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 기존 좌우로 이동하는 방법은 스레드 하나가 시작이 되고 움직인 후 종료되는 방법으로 상당히 비효율적인 방법이다. player에서 두가지 방법중 하나를 사용하면 되는데 runnable 을 사용하지 않고 람다식으로 진행해보자 @Override public void left() { System.out.println("left thread 생성"); new Thread(() ->{ setIcon(playerL); x = x - 10; setLoc.. 2023. 7. 31.
[버블버블게임만들기] 2. 캐릭터 좌우로 움직이게하기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 프레임에 맵과 케릭터를 넣었으니 이제 넣은 케릭터를 움직이게 해보자 Moveable 인터페이스 생성 이동을 위해서 아래와 같은 추상메서드들을 작성 Player 클래스로 이동해서 moveable 인터페이스를 상속받고 오버라이드해준다. 그 후 움직임 상태를 확인하기 위해 boolean 으로 각각 변수를 만들어준 후 initSetting에서 각각 값들을 false로 지정해준다. BubbleFrame 클래스로 이동해서 initListener 메서.. 2023. 7. 29.
[버블버블게임만들기] 1. 게임맵과 케릭터 넣기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 지난시간에 이어서 프레임의 사이즈와 보여짐에 추가적으로 setDefaultCloseOperation으로 이제 프레임을 닫을 때 JVM도 같이 종료되게 설정 getContentPane으로 컨텐츠 영역을 추가해준다. setLocationRelativeTo로 컴포넌트에 따른 위치를 지정해준다. public BubbleFrame(){ setSize(1000,640); getContentpane.setLayout(null); setLocationR.. 2023. 7. 29.
[버블버블게임만들기] 0. 환경설정 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 예전부터 해보고싶던 게임제작을 한번 시도해보고자 한다. swing을 이용한 프로그램 구현을 요즘 잘 안쓴다고 하지만 어떻게 진행이 되는지 알기위해선 해당 방식이 좋다고 한다. 우선 프로젝트 세팅부터 하자면 아래와 같다. 프로젝트 이름은 bubble, 자바버전은 8, 빌드관리도구는 maven을 선택했다. 라이브러리는 Lombok만 일단 추가해주고 springboot 버전은 2.7 로 진행했다. 프로젝트 생성 후 메타코딩님 깃허브로 이동해서 .. 2023. 7. 27.
[Spring Security] 17. JWT 받아서 유효성 검사하기 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 지난번에 클라이언트측에서 JWT을 응답받아서 해당정보로 유저의 정보를 db에서 찾아내서 세션에 저장까지 했었다. 이제 해당유저가 가진 권한에 따라서 접근할 수 있는 주소가 다른데 어떻게 진행이 되는지 알아보자 JwtAutorizationFilter 클래스를 생성한다. BasicAuthenticationFilter를 오버라이딩 commend + n을 눌러서 생성자를 생성해준다. 테스트를 진행하기 위해 해당 필터로 값이 넘어오는지 콘솔에 찍어보고 securityConfig로.. 2023. 7. 20.
[Spring Security] 16. JWT응답(Response)해주기 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 저번에 로그인을 구현하는 기능을 작성 한 후 토큰을 만들어서 클라이언트 측으로 응답해주는 기능을 작성해보자 JwtAuthenticationFilter에서 successfulAuthentication 을 오버라이딩 해준다 (ctrl+o) /login으로 접속해보면 해당 메서드로 이동하는 것을 확인 할 수 있다. @Override protected void successfulAuthentication(HttpServletRequest request, HttpServletRe.. 2023. 7. 19.
[Spring Security] 15. JWT를 이용하기 위해 강제로그인 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 저번글에 이어서 권한을 위해서 정보를 세션에 저장하기 위해서 강제로 로그인하는 기능을 작성해보자. JwtAuthenticationFilter로 이동해서 body값에서 넘어오는 값을 한 번 받아보자. @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { System.ou.. 2023. 7. 19.