>> ROB 보덴 : 안녕하세요.
롭 해요.
이 게임을 구현하는 방법 궁금하십니까?
음, 탈출하자 직원 솔루션.
>> 그래서, 아래 초기화에 대한 최초의 머리하자 우리가 당신을 말했다 기능
첫 번째 구현합니다.
첫 번째 우리는 살펴 보겠습니다 그것을 초기화 패들입니다.
좋아, 그래서 우리가 원하는 것을 기억 정확히 중심으로하는 저어요
x 축.
그래서 우리가 알아 내야 즉, 어디로 가야.
>> 보드의 폭을 감안할 때 - 어떤 또한 최대 정의 정상을 해시 -
우리는 패들 폭을 빼야 과, 2로 나누어 있도록
노의 중심에 보드의 중심.
x 좌표가 참조 기억 패의 왼쪽 상단 모서리,
그래서이 정확히 어디에 우리는 원한다.
중요하지 않습니다 y 좌표 우리가 배치 할 수 있기 때문에 많은
그것은 어디든지 우리는 원한다.
그래서 우리는 패를 인스턴스화, 우리는 설정 블랙 색상, 우리는 참으로 채우기 설정
그래서 사각형에 가득, 그리고 우리 다음 창 및 반환에 추가
패.
그리고 그 초기화를 위해의 패.
>> 그것은 유사 할 것 초기화 점수 판에 대한.
그래서 우리는 레이블을 초기화하는 것입니다, 우리는 색상을 설정하는 것입니다
라이트 그레이 - 당신은 선택할 수 있습니다 당신이 무엇을 원하는 - 우리는 글꼴을 설정하는거야
SAN은 48 셰리프 -
또한 당신이 원하는대로 선택할 수 있습니다 -
우리는 창에 추가됩니다.
이제 백업이 전송 정말 아니다 필요한 경우, 그것은 경우에 그냥 뭔가
다른 레이블을 겹쳐 발생합니다.
그럼 우리가 충돌을 감지 사용하는 경우, 충돌은 다른 사람을 감지 감지
그것은 라벨을 감지 일 전.
하지만 정말 영향을 미치지 않습니다 이 프로그램에 우리.
>> 마지막으로, 우리는이 업데이트 스코어 보드가 우리가 쓴 기능.
그래서 그에서 살펴 보겠습니다.
이제, 우리가 뭔가를 참조하십시오 거의 동일한 것을
우리는 label.c 보았다.
그래서 우리는 레이블이 -
12 문자의 문자 버퍼, 하나를 처리 할 충분한이다
음 또는 양의 정수입니다.
그 다음 우리는 복사의 sprintf를 사용하는 그 버퍼에 가리 킵니다.
그래서 님이 나타내는 문자열을 포함 점의 수.
>> 마지막으로, 우리는 라벨 세트 해당 문자열에.
그리고 우리는 레이블을 중심으로해야 경우에 우리 구에서 10까지 갔어요
포인트와 우리는 그것을 이동했습니다.
그래서 우리는 x와 y 좌표를 계산 라벨의 어떤 것
폭과 높이를 얻을 창.
하지만, 우리는 또한 바로 사용할 수 있습니다 상수 너비 및 높이 해시
상단을 정의.
또한 폭과 높이를 얻을 라벨과 분열
2 중앙으로 그.
그리고 우리는 위치 설정을 사용하여 실제로 해당 위치에 넣어.
그래서 초기화 점수 판을 위해의.
>> OK.
그래서 초기화 공은 매우 유사 될 것입니다 뿐만 아니라 패를 초기화합니다.
우리는 우리가 newgoval를 사용하는 것은 여기를 참조하십시오 새 공을 인스턴스화하기 위해.
그리고 여기에 우리는 2 시간 반경을 사용하는 볼의 너비, 2 등
같은 시간 반경 공의 높이.
이제,도 newgoval 대해, X 및 우리는 예정에 전달하는 것이 Y 좌표
왼쪽 상단을 참조하십시오 실제로 공,
공 자체가 외부.
그래서 순서로 정확하게 볼을 얻을 수 있습니다 보드의 중심에, 우리가 통과해야
폭은 센터를 2로 나눈하고, 다음 밀어 반경을 빼기
에 공의 실제 센터 보드의 중심.
그리고 우리는 똑같은 일을 사용 제외한 Y 축에 대한
대신 폭의 높이.
>> 그래서 중앙에 공을 배치합니다.
그리고 이것은 설정, 공을 인스턴스화 공을 작성, 블랙 색상으로,
그리고 마지막에 추가 창을 반환합니다.
그리고 그 초기화를 위해의 공.
>> 그래서 지금의이 초기화를 살펴 보자 조금 더 벽돌
복잡하지만, 예쁘다 초기화 노 유사.
자, 먼저 우리가 알아 내야 각 벽돌의 폭.
우리라는 상수가 기억 호출을 지정하는
벽돌의 열 수 우리는 가지고있다.
그래서, 우리는 폭을 결정하는거야 폭을 복용하여 하나의 벽돌
보드 전체의 감산 우리의 간격의 크기 아웃 -
해시 최고를 정의 및 의미하는 화소의 수에 해당
각 벽돌 사이 여야합니다 -
그래서 우리는 총을해야 할 것입니다 간격 시간은 빈 픽셀을 호출
단일 행.
그리고 또한 일부 빈을 참조한다 좌측과 우측의 화소
열과 오른쪽 열 벽돌을 떠났다.
>> 그래서 그 빈 픽셀을 빼기 픽셀 수 없더군요 그
벽돌은 실제로 사용하고 있습니다.
그리고 우리가 얻을 수 호출에 의해 분할 벽돌 당 픽셀의 수.
그래서 여기에 우리가 배열을 정의하는 단지 우리가 각각 원하는 색상을 지정합니다
벽돌의 행.
우리는 벽돌의 더 많은 행 이상이 있다면 우리는 지정된 색깔, 우리는 볼 수 있습니다
우리는 단지 루프를 다시 주위거야 다시 빨간색을 사용하고 오렌지와
그래서 노란색과.
>> 따라서, P-설정 사양 힌트로, 우리는 모든 행에 루프에 가서
벽돌의 열.
그러나 열을 통해 우리의 루프 전에, 우리 우리에게 지정 있다는 것을 여기에서 볼
각 벽돌의 y 위치 특정 행.
우리는 또한 두 번째로이 움직일 수 루프,하지만 우리는 단지 것
반복 계산을 다시 우리가 필요로하지 않을 때.
>> 그래서 벽돌의 y 위치는 것입니다 해시 마진, 할
정상까지 정의 단지를 말합니다 보드의 상단 사이의 공간
벽돌의 모든 시작.
그리고 우리는 추가거야 그 행 우리는 시간에 높이다는 것을
개별 벽돌 플러스의 간격 즉, 각 벽돌 사이입니다.
그래서 이것은 또한 세로 각 벽돌 사이의 간격.
그래서 우리에게 Y 좌표를 제공 벽돌.
>> 그래서 여기에 우리가 계산하는거야 벽돌의 x 좌표입니다.
이제, 우리는, 이후 2로 나눈 격차가 전에 기억 나는 말했다에서
보드의 왼쪽, 우리는거야 약간의 공간을두고 있습니다.
그래서 2로 나눈 갭은 그 공간이다.
그리고 우리는에 추가하고 그 열 우리는 시간에 폭 플러스 걸
폭이 공간의 양 차이, 하나의 벽돌을 차지하고 있음
다음 간극 공간 각 벽돌 사이.
그래서 x 좌표 계산 벽돌.
>> 이제 우리는 단지 인스턴스화하는 데 필요한 그 x와 y 좌표 주어진 벽돌
우리는 각 계산 폭을 사용하여 벽돌 및 휴식 높이하는 것입니다
위로 정의 정상을 해시.
우리는 벽돌의 색상을 설정합니다.
우리는 우리의 색상 배열을 사용하고있어 주목 우리가있는 행을 전달하고
모드 숫자의 색상을 어느 만들려고 우리는 빨간색으로 다시 돌아 감싸 경우 우리
색상보다 더 많은 행이 있습니다.
마지막으로, 우리는 벽돌을 기입합니다 색상과 창에 추가합니다.
>> 그리고 바로 그거야.
그래서, 우리의 모든 것이의 초기화 방법.
이제 우리는 그 동안 볼 필요가 당신이 기입 수 있었다 루프
그래서 여기에 우리는 이것이 우리의 동안 것을 볼 때까지 계속하는 것입니다 루프
게임은 끝났하는 수단 중 하나 우리는 삶의 밖으로 실행하거나
우리는 벽돌의 부족.
>> 우리가 그래서 일단 클릭에 대한 대기입니다.
그래서 게임이 우리를 기다립니다 실제로 볼이 이동을 시작하기 전에 클릭합니다.
그리고 우리는거야 삶을 감소시킵니다.
그래서 우리는 세 생활을했다면, 이제 우린 두 삶에 이르기까지, 우리는 우리를 사용하는
제 인생.
우리는 공을 센터를 것입니다.
그래서 지금이 정말 도움이 될 수 없습니다 우리가 연주하는 최초의 생활에 우리
공은 이미 예정 이후 때 우리에서 중심으로 한
그것을 인스턴스화.
우리가 잃고 끝날 때 그러나 우리는 볼 삶과 허리 주변의 루프는, 우리는거야
에서 볼를 다시 가운데로 할 것 뒷면에 보드의 맨 아래
중앙.
>> 그래서, 지금 여기에 우리가 생성 할 필요가 공의 x 속도.
그리고, 사양에 따라, 우리는 D 랜드를 사용하는 48 일부 임의의 숫자를 생성하는
속도를 지정합니다.
우리는 우리가 그 이후에 하나를 추가하는 단지 하나의 범위의 속도를 원하는
두 대신 하나에 제로에.
마지막으로, 우리는 다시 D 랜드 (48)를 사용하고 공 여부를 결정하기 위해
왼쪽으로 이동하는 것입니다 또는 오른쪽 시작합니다.
>> 그래서 D 랜드 (48)는 임의의 수를 반환 0과 1 사이에, 그래서 질문 하
즉 0.5 이하의 경우에, 우리는 50 50가 의 속도를 전환의 기회
공은 음수가 될 수 있습니다.
마지막으로, 우리의 수직 속도를 설정 볼은 약간의 일정입니다.
우리는 세 가지를 선택합니다.
그리고 지금 우리는 또 다른 루프가.
>> 따라서이 내부 루프는 계속 것.
여기에서 주목 벽돌 동안 0보다 큰 -
우리는 벽돌 부족 경우에, 우리는했습니다 게임을 이기고 우리가 할 수
이 루프의 탈옥 -
모든 높이보다 y를 볼 이하보세요 마이너스 2 시간 반경.
그래서이 인식된다 경우 공에, 패들 과거 이동 발생
당신은 목숨을 잃었습니다 어떤 경우에는.
>> 우리가 루프이 내부 찾고 마우스 이벤트에 대한 검사.
그리고, 마우스 이벤트가있는 경우, 그 우리가 확인하고 싶은 것을 의미합니다
마우스가 이동 된 경우, 그리고 있는지 확인 마우스는 우리가 갖고 싶어, 이동 한
노 마우스로 유지.
그래서, 그렇게, 우리는 새를 계산 예정 패의 위치
마우스의 위치를​​ 잡아합니다 - 어떤 사용하여 위치를 잡고
우리가 전달 된 것을 이벤트 -
그리고, 우리는 밖으로 뺄거야 패들 폭은 2로 나눈 그래서
마우스를 중심으로 노 숙박 대신 외륜의 좌측
중앙에 만족하는 친절한 서비스를 제공합니다.
>> 그래서 지금 우리는 또한했는지 확인하려는 우리 왼쪽 또는 오른쪽에 가지 않는다
보드의 측면.
그리고 여기에서 우리는 단지 확인하는 경우 패들 왼쪽 떨어져 것
보드, 그냥 스틱 좌측으로 그것을.
그리고 여기에 우리가 확인하는 경우 패들 의 오른쪽에있을 것입니다
보드, 그냥 스틱 우측.
그리고 마지막으로, 우리는 실제로 설정 패들의 위치.
>> 이제 마우스의 움직임이 아니었다면, 그것은 우리가 갈거야 의미
공을 이동합니다.
그래서 우리는 이미 X가 그리고 공의 Y 속도
그래서 우리는 그것을 이동합니다.
하지만 지금 우리는 감지 할 몇 가지.
우리가 하나를 치면 그래서 여기에 우리가 감지하고 좌측 또는 우측
보드는, 우리는 공을 반송 할.
그리고,이 경우에, 우리는 X의 속도를 설정 음의 X 속도로.
>> 볼이 보드의 상단에 충돌하는 경우, 우리는 또한 공의 바운스를 원한다.
하지만 지금 우리는 변경할 Y 속도.
우리의 조건이없는주의 의 바닥을 치는 공
그 이후 보드는 이미 캡처 된 여기있는 동안 루프입니다.
>> 마지막으로, 우리는 몇 가지를 감지 할 충돌 곳을 경우 공 히트
패들 또는 벽돌 하나, 우리는 원하는 특별한 경우 일을 할 수 있습니다.
충돌이 있었다 그렇다면되는 경우 개체, 다음, null이되지 않습니다
개체가 헤엄을 칠 경우, 우리는 것 그냥 공을 반송 할.
그리고 여기, 또한, 우리의 위치를​​ 설정 다만 패들 위의 공.
우리의 x 위치를 취하고있어 주목 볼과 단지를 재사용.
그러나 여기에서 우리는 y 위치를 받고있어 패들과 공을 이동
패들 위.
>> 이것은 특별한 경우되도록 공 헤엄을 칠하고,하지 않습니다
그것은 패를 움직일 수의 전에, 다른 루프는 주위에 간다
그것이 패널 여전히하고 생각 그래서 Y 속도는 위로 설정됩니다
부정하고, 볼이 종류 스틱의 패들에 수신 거부.
그래서, 우리가 헤엄을 칠하지 않은 경우, 우리는 또한 확인 할
우리는 벽돌에 충돌합니다.
그리고 이것은 우리가 확인할 수있는 방법입니다 우리가 벽돌을 칠 경우 볼 수 있습니다.
>> 우리는이 파일을 점검해야 우리가하는 일이 있기 때문에 실제로 라벨을 명중하고있다 우리
라벨을 제거하지 않습니다.
우리가 벽돌을 칠 경우에, 우리는 그것을 제거 할 수 있습니다 창, 감소에서 벽돌
벽돌의 우리의 수는 증가 우리의 포인트의 수, 그리고 지금 우리가 필요
정확하게 점수 판 업데이트 우리는 우리가 볼 때 전에 보았던 것과 같은으로
초기화 점수 판입니다.
하지만 지금 우리는 단지 업데이트하는 우리가 변경 한 이후 점수 판
포인트의 수.
그리고 지금으로 표시하는 우리는 또 하나의 휴식을 기록했다.
>> 그리고 마지막으로, 우리는 벽돌에 충돌하는 경우 우리는 또한 반송합니다.
그래서 마지막으로, 우리는 일시 중지 그냥 그렇게 볼은 매우 빠르고 우리 움직이지
실제로 우리 패들로 칠 수있다.
그리고 꽤 많이 있습니다.
그래서 지금 우리는 뒤의 상단에 루프 것 이 while 루프 때까지 계속
우리는 생명을 잃거나 하나 우리는 벽돌의 부족.
>> 우리가 목숨을 잃게되면 어떻게됩니까?
그런 다음 우리는이 동안을 종료거야 루프, 우리는 의지 루프 백업 볼 수
외부 while 루프의 상단에.
이 경우, 우리는거야 이 다시 설정 실행합니다.
그리고 이것은 우리가 대기해야 할 것입니다 설정 클릭에 대해, 우리의 수를 감소
삶의, 계산, 공를 다시 가운데로 X 및 Y 속도 및
다음 게임을 다시 시작합니다.
>> 그리고, 그 것 하나까지 벽돌보다 될 수있을 테니까요
또는 0 인 -
이는 우리가 경기를 승리 경우 -
또는 생활이 0보다 작되는 경우 우리는 게임을 잃었다.
그런 경우 그래서, 일단, 우리는 탈출 그 동안 루프의, 우리는 여기에 도달
우리는 클릭을 기다리는가는 곳 게임을 종료하기 전에되도록
게임은 즉시하지 않습니다 우리를 닫습니다.
그리고 마지막으로 우리에게 가까이 있습니다 창 및 바로 그거야.
내 이름은 롭,이 브레이크 아웃이었다.