inblog logo
|
[HootJem] 개발 기록 블로그
    java

    [STS] 버블버블 - 적 움직이기

    HootJem's avatar
    HootJem
    Jan 14, 2025
    [STS] 버블버블 - 적 움직이기
    자동으로 움직이게 하기 위해서 BackGroundPlayerService 를 복사하여 사용할 것이다.
    전체 코드는 다음과 같다.
     
    적이 왼쪽/ 오른쪽 벽에 충돌하였을 때 움직임을 오른쪽/ 왼쪽으로 변경 시킨다.
    public class BackGroundEnemyService implements Runnable { private BufferedImage image; private Enemy enemy; public BackGroundEnemyService(Enemy enemy) { this.enemy = enemy; try { image = ImageIO.read(new File("image/backgroundMapservice.png")); } catch (Exception e) { System.out.println(e.getMessage()); } } @Override public void run() { while(enemy.getState()==0) { Color leftColor = new Color(image.getRGB(enemy.getX() - 10, enemy.getY()+ 25)); Color rightColor = new Color(image.getRGB(enemy.getX() + 50 + 15, enemy.getY()+25)); int bottomColor = image.getRGB(enemy.getX() + 25, enemy.getY()+50 + 5); //바닥 충돌 확인 if(bottomColor != -1) { //System.out.println("바닥에 충돌함"); enemy.setDown(false); }else { if(!enemy.isUp() && !enemy.isDown()) { System.out.println("down"); enemy.down(); } } if(leftColor.getRed() == 255 && leftColor.getGreen()==0 && leftColor.getBlue()==0) { //System.out.println("왼쪽 벽에 충돌함"); enemy.setLeft(false); if(!enemy.isRight()) { enemy.right(); } }else if (rightColor.getRed() == 255 && rightColor.getGreen()==0 && rightColor.getBlue()==0) { //System.out.println("오른쪽 벽에 충돌함"); enemy.setRight(false); if(!enemy.isLeft()) { enemy.left(); } } try { Thread.sleep(10); } catch (Exception e) { System.out.println(e.getMessage()); } } } }
     
    그리고 Enemy클래스에 쓰레드를 추가하여 실행하면 이렇게 움직인다.
    private void initBackgroundEnemyService() { new Thread(new BackGroundEnemyService(this)).start(); }
    notion image
     

    💡
    1. 게임 맵과 캐릭터 추가 https://inblog.ai/hj/sts-버블버블-게임-맵과-캐릭터-추가하기-33126
    1. 캐릭터 이동 https://inblog.ai/hj/sts-버블버블-캐릭터-이동-33127
    1. 스레드 사용하여 이동하기 https://inblog.ai/hj/sts-버블버블-스레드-사용이동-33335
    1. 점프하기 https://inblog.ai/hj/sts-버블버블-점프하기-33388
    1. 충돌 감지 https://inblog.ai/hj/sts-버블버블-충돌감지-33391
    1. 외벽 충돌 시 캐릭터 정지 https://inblog.ai/hj/sts-버블버블-외벽-충돌-시-캐릭터-정지-36946
    1. 캐릭터 업 다운 https://inblog.ai/hj/sts-버블버블-캐릭터-업-다운-38143
    1. 캐릭터 업 다운 시키기 https://inblog.ai/hj/sts-버블버블-캐릭터-업-다운-38143
    1. 물방울 생성하기(기본셋팅) https://inblog.ai/hj/sts-버블버블-물방울-기본-셋팅-38154
    1. 물방울 움직이게 하기 https://inblog.ai/hj/sts-버블버블-물방울-움직이게-하기-38195
    1. 물방울 메모리에서 해제 하고 화면 다시 그리기 https://inblog.ai/hj/sts-버블버블-물방울-완성하기-38589
    1. 리팩토링 하기 https://inblog.ai/hj/sts-버블버블-리팩토링-하기-39820
    1. 적군 만들기 https://inblog.ai/hj/sts-버블버블-적군-만들기-39821
    1. 물방울 공격하기 완료 https://inblog.ai/hj/sts-버블버블-물방울로-공격하기-40303
    1. 적 움직이기 https://inblog.ai/hj/sts-버블버블-적-움직이기-40305
     
    Share article

    [HootJem] 개발 기록 블로그

    RSS·Powered by Inblog