코딩 클럽 레벨 3을 보고 코드 작성 후 리뷰하는 글 입니다.


http://www.codingclub.co.uk/

여기 사이트서 소스를 받으실 수 있습니다.


벽돌 부시기 게임은 크게 4가지로 구분할 수 있습니다.



1. 메인

2. 테이블

3. 공

4. 막대기



위에 그림처럼 게임이 구동 되는 것이 목표


검정석 배경에 대쉬가 그려져 있는 것이 테이블이며

그 위에 노랑, 파랑색 막대기와 빨강색 공이 테이블위에서 움직인다


책을 더 잘 이해하기 위해선 클래스 개념과 함수(좌표)를 잘 이해해야한다..


# 배경이 되는 테이블



테이블은 생성자, 도형만들기, 구체 만들기, 아이템 옮기기 등의 주요 메서드가 있다.


1) 생성자

생성자는 메인으로부터 window, 즉 tkinter를 받는다. 

Canvas라는 메서드는 window의 백그라운드를 설정해준다.

pack()으로 고정을 해줘야 한다.


vertical, horizontal의 경우 가로선, 세로선을 결정하기 위해 필요한 파라미터 이다.

create_line의 경우 캔버스의 라인을 그려준다.

특이한 점은 얘는 좌표를 4개를 받는다.(x1, x2, y1, y2)

* 좌표를 4개 받는 경우는 앞으로 계속 나옴.


2) 도형만들기

draw_rectanlgle의 경우 실제 불리는 건 bat 클래스에서 불려진다.

안에 파라미터인 retangle의 경우 bat 클래스에서 보면 결국 자기 자신이 들어간다.

즉 bat 클래스 호출(bat 크기 지정) -> draw_rectangle 호출(bat의 크기 호출) : 이런식으로 진행이 된다.

create_rectanlge의 경우 좌표 4개를 받아서 그 상태로 도형을 만든다

사각형에서 대각선 점 2개의 x,y 좌표를 바탕으로 위 아래, 양 옆으로 선을 그어서 도형을 만든다고 생각하면 된다.

* 이 개념이 계속 나오므로 잘 이해를 해야함..


3) 구형만들기

draw_oval의 경우 위에와 동일하다. 얘는 ball 클래스에서 불려지며 결국 ball 클래스에서 지정된

사이즈를 전부 적용하여 구체를 만들게된다.



기타) 다른 메서드의 경우 좌표를 바탕으로 움직이게 하는 메서드이다.


특이한 점은 ball, bat 클래스 모두 table를 받아서 table의 메서드를 통해서 도형과 구체를 만든다는 점이다.

이 말은 다르게 표현하자면 ball, bat의 생성자에는 무조건 table를 받아야 한다는 의미가 된다.


+ Recent posts