[Java]7 자바로 리듬게임 따라만들기 [시작,종료버튼] 버튼을 포토샵으로 넣어준 버튼을 넣어준다. 버튼은 총 4가지 인데 시작버튼 마우스가 올라갔을 때의 시작버튼, 종료버튼, 마우스가 올라갔을 때의 종료버튼 이다. 종료버튼의 경우 x버튼가 코드가 똑같기 때문에 생략한다. 시작버튼의 경우 누르면 배경화면이 달라져야한다. 따라서 새로운 배경화면 이미지를 mainBackgounr.jpg로 images폴더에 넣어준다. 그리고 위의 그림에 처럼 게임시작 이벤트가 눌리면 새로넣은 이미지로 바꿀 수 있게 만들어준다. 이렇게 버튼을 넣어주고 시작버튼을 누르면 이렇게 나오도록 바꾸어 주었다. 2021. 9. 11. 자바 익명클래스 실습 여기서 익명클래스가 나온다. 스벅객체 gangnam을 만들고 regist하면 추상클래스 c를 넘긴다. 따라서 익명클래스 타입인 new Cafe를 넘기게 되고 new Cafe(){ }가 전체 객체가 된다. 이 sell메소드에서 getMenu(), getPrice()를 사용할 수 있는 이유는 같은 클래스안에 있기 때문이다. 전체적인 흐름check! interface Cafe는 메뉴,가격배열과 입력받은 menuName을 파는 메소드를 가지고 있고 스타벅스 클래스에서 그 인터페이스 Cafe를 객체로 받으면서 regist()를 수행한다. 그래서 c.getPrice(),c.getMenu() 함수를 수행할 수 있다. 그럼 실행하는 Road 클래스에서 스벅 객체를 만들어주고 regist()를 해주는데 regist()는.. 2021. 9. 10. 자바 개념(익명클래스) 익명 클래스(이름이 없는 클래스) 현재 new Animal()은 생성자이고 void move()는 메소드이다. 이 void move()를 덮고 있는 {}는 클래스인데 앞에 클래스명이 없고 생성자가 있다. 이렇게 이름이 없는 것을 익명 클래스라고 하며 이름이 없기 때문에 또 객체를 생성할 수 없기 때문에 하나의 객체만을 위한 클래스이다. 메모리낭비를 줄일 수 있다. 이러한 익명클래스는 일반적인 클래스에서 사용하기 보다는 인터페이스나 추상클래스를 객체화할 때 보통 사용한다. 이렇게 Animal클래스가 추상일경우 재정의를 해주어야 하기 때문에 위의 Animal dog=new Animal()를 자동완성시켜주면 Anonmyous inner Type이 뜨면서 무조건 재정의를 해주어야 한다. 만약 implements.. 2021. 9. 10. 자바로 리듬게임 따라 만들기 3 (JButton)이용하기 기존의 배경화면을 멤버에 초기화 시켜주고 메뉴바를 만들어준 다음 JLabel에 넣어준다. 여기서 JLabel은 문자열 및 이미지를 화면에 출력해주는 것이고 ImageIcon은 이미지파일로부터 이미지를 읽는 것이다. 그래서 먼저 ImageIcon으로 이미지를 읽어오고 JLabel에 넣어 이미지를 화면에 출력해주는 것이다. 그리고 그릴 수 있게 screenDraw함수에 printComponents(g)를 해준다. 이 함수는 해당 screenImages안에다가 배경화면 이외에 JLabel과 같은 것을 JFrame안에 추가하면 그것을 그려주는 것이다. 즉 JFrame을 상속받는 Dynamic Beat 클래스안에다가 JLabel을 추가했기 때문에 menubar객체를 printComponent함수를 통해 배경화면 .. 2021. 9. 9. 자바로 리듬게임 만들기 2 (Thread를 통해 음악 재생) 음악을 실행하기 위해선 외부 라이브러리가 필요하다. jlayer라는 라이브러리를 다운받은 다음 bulid path를 통해 넣어준다. 그 다음 하나의 작은 프로그램(Thread) 를 상속받아 음악을 재생할 수 있게 해준다. 즉 현재 실행되고 있는 게임과 별도로 음악을 재생하기 위한 또다른 작은 프로그램이라고 할 수 있다. 클래스 Music클래스는 배경음, 혹은 효과음을 넣을 수 있는 클래스이다. 해당 클래스는 JLayer파일을 다운받아 빌드작업을 해주어야 한다. (Player사용가능) file에 음악관련 리소스를 가져와 넣어주고 음악파일 경로를 FileInputStream에 직접 지정해주며 이것을 BufferedInputStream을 거쳐서 Player로 받아 음악을 재생합니다.(buffered 안거쳐도 .. 2021. 9. 7. 자바로 리듬게임 따라만들기 1 클래스 만들기 실행할 Main클래스에 멤버로 게임화면 크기를 설정해준다. 모든 객체가 공유할 수 있도록 public static로 선언하고 바뀌지 않도록 final로 해준다. 실행할 수 있도록 main을 만들어주고 DynamicBeat()생성자를 호출한다. 다른 버전으로 만들 수 있도록 패키지를 1,2,로나누어 준다. 그리고 게임을 만드는 DynamicBeat클래스를 만들어준다. 먼저 윈도우화면에 보일 수 있도록 이미 존재하는 라이브러리 JFrame을 상속해준다. 멤버로 이미지를 넣을 수 있는 Image와 그릴 수 있는 Graphics를 선언해줍니다. 그 다음 생성자를 만들어줘야 한다. 먼저 몇가지 정해줘야 하는데 이름, 사이즈, 사이즈 조절여부, 화면이 나타날 위치, 그리고 중요한 게임창을 종료할 때 같이 프로그램이.. 2021. 9. 6. 업캐스팅 ,다운캐스팅 ,Instanceof 업 캐스팅이란! 부모타입으로 형변환 한 것을 의미한다. => 부모 타입의 객체에 자식생성자를 호출 => 부모 타입의 객체에 자식 클래스의 필드를 담아주는 것 => 업캐스팅 된 객체는 자식 클래스에서 추가된 내용을 사용할 수 없다 단!! 오버라이딩 된 메소드는 갖게 된다. 부모 클래스 객체명 =new 자식 생성자(); 그림으로 설명해보자면, 부모 클래스인 Car에는 on key, off key메소드가 있다. 자식 클래스인 superCar는 오버라이딩된 on music, off music메소드가 있다고 가정하자. 만약 superCar 클래스의 생성자를 호출한다면 먼저 부모인 Car 클래스 먼저 생성하기 때문에 넓이는 Car 클래스로 만든다. 따라서 빨간색 네모크기만큼 사용할 수 있다. 그래서 자식 클래스가 .. 2021. 9. 3. 이전 1 다음