ROB Bowden: Hi. Tôi Rob. Tự hỏi làm thế nào để thực hiện trò chơi này? Vâng, chúng ta hãy thoát ra khỏi các giải pháp nhân viên. Vì vậy, hãy đầu đầu tiên xuống đến init chức năng mà chúng tôi nói với bạn thực hiện đầu tiên. Đầu tiên chúng ta sẽ có một cái nhìn nó là init mái chèo. Được rồi, vì vậy hãy nhớ rằng chúng ta muốn chèo được làm trung tâm chính xác trong trục x. Vì vậy chúng tôi cần phải tìm ra nơi mà nên đi. Với chiều rộng của hội đồng quản trị - mà cũng được băm xác định lên hàng đầu - chúng ta cần phải trừ ra chiều rộng mái chèo và chia cho 2, do đó, trung tâm của mái chèo là trong trung tâm của hội đồng quản trị. Hãy nhớ rằng x-phối hợp đề cập đến góc trái trên cùng của mái chèo, và vì vậy đây là chính xác nơi chúng tôi muốn nó được. Y phối hợp không quan trọng như nhiều bởi vì chúng ta có thể đặt nó bất cứ nơi nào chúng ta muốn. Vì vậy, chúng tôi instantiating chèo thuyền, chúng tôi đặt màu đen, chúng tôi thiết lập điền True do đó, nó là một điền hình chữ nhật, và chúng tôi sau đó thêm nó vào cửa sổ và trở lại paddle. Và đó là nó để khởi tạo paddle. Nó sẽ là tương tự cho init bảng điểm. Vì vậy, chúng ta sẽ khởi tạo các nhãn, chúng ta sẽ đặt màu ánh sáng màu xám - bạn có thể chọn bất cứ điều gì bạn muốn - chúng ta sẽ thiết lập phông chữ sans serif 48 - cũng có thể chọn bất cứ điều gì bạn muốn - chúng tôi sẽ thêm nó vào cửa sổ. Bây giờ gửi này để trở lại là không thực sự cần thiết, nó chỉ là trong trường hợp một cái gì đó khác xảy ra với chồng lên nhãn. Sau đó, khi chúng tôi sử dụng Phát hiện va chạm, Phát hiện va chạm sẽ phát hiện các khác điều trước khi nó phát hiện nhãn. Nhưng đó thực sự không ảnh hưởng đến chúng tôi trong chương trình này. Cuối cùng, chúng tôi có Cập nhật Scoreboard này chức năng mà chúng tôi đã viết. Vì vậy, chúng ta hãy nhìn vào đó. Bây giờ, ở đây chúng ta thấy một cái gì đó gần giống như những gì chúng ta đã thấy trong label.c. Vì vậy, chúng ta có một nhãn - một bộ đệm ký tự là 12 ký tự, mà chỉ là đủ để xử lý bất kỳ số nguyên, tiêu cực hay tích cực. Sau đó, chúng tôi sử dụng sprintf để sao chép chỉ vào bộ đệm đó. Vì vậy, s này có một chuỗi đại diện số lượng điểm. Cuối cùng, chúng tôi thiết lập các nhãn chuỗi đó. Và sau đó chúng ta cần phải tập trung nhãn trong trường hợp chúng tôi đã đi từ chín đến 10 chỉ và chúng tôi đã chuyển nó. Vì vậy, chúng ta tính x và y tọa độ của nhãn mà sẽ có chiều rộng và chiều cao của cửa sổ. Mặc dù, chúng ta cũng có thể chỉ cần sử dụng hằng số Width và Height băm xác định lên hàng đầu. Chúng tôi cũng có được chiều rộng và chiều cao của nhãn và phân chia đó là 2 trung tâm. Và sau đó chúng tôi sử dụng định địa điểm để thực sự đặt nó trong vị trí đó. Vì vậy, đó là nó cho init bảng điểm. OK. Vì vậy, init bóng sẽ rất tương tự init mái chèo là tốt. Chúng ta thấy ở đây là chúng ta đang sử dụng newgoval để tạo một quả bóng mới. Và ở đây chúng tôi đang sử dụng 2 lần bán kính như chiều rộng của bóng, 2 lần bán kính là chiều cao của quả bóng. Bây giờ, cũng cho newgoval, x và y phối hợp mà chúng ta vượt qua trong sẽ để chỉ trên bên trái của bóng, mà thực sự là bên ngoài bóng của chính nó. Vì vậy, để có được bóng chính xác trung tâm trong hội đồng quản trị, chúng tôi cần phải vượt qua chiều rộng chia cho 2 cho trung tâm, và sau đó trừ đi ra bán kính để đẩy trung tâm thực sự của bóng vào trung tâm của hội đồng quản trị. Và chúng tôi làm một điều chính xác cho trục y, ngoại trừ sử dụng chiều cao thay vì chiều rộng. Để đặt bóng ở trung tâm. Và điều này khởi tạo bóng, thiết lập màu đen, điền vào bóng, sau đó cuối cùng đã thêm nó vào cửa sổ và trả lại nó. Và đó là nó để khởi tạo bóng. Vì vậy, bây giờ chúng ta hãy nhìn vào init gạch nung trong đó hơn một chút phức tạp, nhưng nó khá tương tự như init mái chèo. Bây giờ, đầu tiên chúng ta cần phải tìm ra chiều rộng của mỗi viên gạch. Hãy nhớ rằng chúng ta có một hằng số gọi là các cuộc gọi mà xác định số lượng các cột gạch mà chúng ta có. Vì vậy, chúng ta sẽ xác định chiều rộng gạch duy nhất bằng cách lấy chiều rộng của toàn bộ hội đồng quản trị, trừ ra kích thước của khoảng cách của chúng tôi - được băm xác định lên hàng đầu và đề cập với số điểm ảnh nên giữa mỗi gạch - và do đó chúng ta sẽ có tổng cộng lần khoảng cách gọi pixel trống trong một hàng duy nhất. Và đó cũng sẽ đề cập đến một số trống pixel bên trái và bên phải của trái cột và cột gạch bên phải. Vì vậy, trừ ra những điểm ảnh trống lá chúng tôi với một số điểm ảnh gạch được thực sự sử dụng. Và sau đó chúng tôi chia bởi các cuộc gọi để có được số lượng điểm ảnh trên mỗi viên gạch. Vì vậy, ở đây chúng tôi xác định một mảng mà chỉ xác định màu sắc chúng ta muốn cho mỗi hàng gạch. Nếu chúng ta có nhiều hàng gạch hơn màu sắc mà chúng tôi quy định, chúng ta sẽ thấy rằng chúng ta sẽ chỉ là vòng lặp lại xung quanh và sử dụng màu đỏ một lần nữa, và sau đó cam và vàng và như vậy. Vì vậy, như p-thiết lập thông số gợi ý, chúng tôi sẽ lặp qua tất cả các hàng và cột của những viên gạch. Nhưng trước khi chúng tôi vòng qua các cột, chúng tôi thấy ở đây là chúng ta xác định y trong mỗi gạch trong đó hàng cụ thể. Chúng tôi cũng có thể di chuyển này vào thứ hai cho vòng lặp, nhưng sau đó chúng tôi chỉ muốn được làm tính toán hơn và hơn một lần nữa khi chúng ta không cần phải. Vì vậy, vị trí y của gạch sẽ là lợi nhuận, mà là băm xác định lên hàng đầu và chỉ đề cập đến không gian giữa phía trên cùng của hội đồng quản trị và sự bắt đầu của tất cả các viên gạch. Và chúng ta sẽ thêm vào đó hàng rằng chúng ta đang ở trên lần chiều cao của một gạch cá nhân cộng với khoảng cách đó là giữa các viên gạch. Vì vậy, đây cũng là một thẳng đứng khoảng cách giữa các viên gạch. Để cho chúng ta y phối hợp của gạch. Vì vậy, ở đây chúng ta sẽ tính toán x phối hợp của gạch. Bây giờ, chúng tôi có khoảng cách chia cho 2 từ, nhớ trước đây, tôi cho rằng, tại bên trái của hội đồng quản trị, chúng ta sẽ để lại một không gian nhỏ. Vì vậy, khoảng cách chia cho 2 là không gian đó. Và sau đó chúng tôi đang thêm vào đó là cột rằng chúng ta đang ở trên lần chiều rộng cộng khoảng cách, nơi chiều rộng là khoảng không gian rằng một viên gạch duy nhất chiếm và sau đó khoảng cách là không gian giữa các viên gạch. Để tính toán x-phối hợp của gạch. Bây giờ chúng ta chỉ cần khởi tạo các gạch cho rằng x và y tọa độ sử dụng rộng mà chúng tôi tính toán cho từng mà chiều cao bằng gạch, và nghỉ ngơi là băm xác định lên hàng đầu. Chúng tôi thiết lập màu sắc của gạch. Lưu ý chúng đang sử dụng mảng màu sắc của chúng tôi và chúng tôi đang đi qua trong hàng mà là trên màu sắc num mod đó là sẽ làm cho chúng tôi quấn lại xung quanh màu đỏ nếu chúng ta có hàng hơn màu sắc. Cuối cùng, chúng tôi sẽ điền vào các gạch màu sắc và thêm nó vào cửa sổ. Và đó là nó. Vì vậy, đó là nó cho tất cả chúng tôi phương pháp khởi tạo. Bây giờ chúng ta cần phải nhìn vào, trong khi đó vòng lặp mà bạn có để điền vào in Vì vậy, ở đây chúng tôi thấy rằng đây là trong khi chúng tôi vòng lặp sẽ tiếp tục cho đến khi Trò chơi kết thúc, mà một trong hai phương tiện chúng tôi chạy ra khỏi cuộc sống hoặc chúng tôi chạy ra khỏi viên gạch. Vì vậy, điều đầu tiên chúng ta là một Chờ cho Click. Vì vậy, các trò chơi chờ đợi chúng ta để thực sự nhấp vào trước khi bóng bắt đầu di chuyển. Và sau đó chúng ta sẽ để làm giảm giá trị cuộc sống. Vì vậy, nếu chúng tôi đã có ba cuộc sống, bây giờ chúng tôi xuống hai cuộc sống, chúng tôi đang sử dụng của chúng tôi cuộc sống thứ ba. Chúng ta sẽ tập trung bóng. Vì vậy, bây giờ, điều này là không thực sự sẽ giúp chúng tôi về cuộc đời đầu tiên chúng tôi chơi kể từ khi bóng đã đi đã được tập trung từ khi chúng tôi khởi tạo nó. Nhưng chúng tôi nhìn thấy khi chúng tôi kết thúc mất cuộc sống và lặp lại xung quanh, sau đó chúng tôi sẽ muốn recenter bóng từ dưới cùng của hội đồng quản trị trở lại trung tâm. Vì vậy, bây giờ ở đây chúng ta cần phải tạo ra x vận tốc của quả bóng. Và, theo spec, chúng tôi đang sử dụng d rand 48 để tạo ra một số số ngẫu nhiên để xác định vận tốc. Chúng ta đang thêm một đến rằng kể từ khi chúng tôi chỉ muốn vận tốc trong khoảng một hai thay vì không một. Cuối cùng, chúng tôi đang sử dụng d rand 48 lần nữa trong Để xác định bóng sẽ di chuyển sang trái hoặc bên phải để bắt đầu. Vì vậy, d rand 48 trả về một số ngẫu nhiên giữa không và một, và như vậy bằng cách yêu cầu nếu đó là nhỏ hơn 0,5, chúng tôi có 50 50 cơ hội chuyển đổi vận tốc của bóng là âm tính. Cuối cùng, chúng tôi thiết lập vận tốc theo chiều dọc của bóng chỉ có một số không đổi. Chúng tôi chọn ba. Và bây giờ chúng tôi có một vòng lặp. Vì vậy, vòng lặp bên trong này là sẽ tiếp tục. Chú ý ở đây, trong khi gạch là lớn hơn không - vì vậy nếu chúng tôi chạy ra khỏi viên gạch, chúng tôi đã thắng và chúng tôi có thể thoát ra khỏi vòng lặp này - và tất cả Nhận y bóng ít hơn chiều cao trừ đi 2 lần bán kính. Vì vậy, những gì này là công nhận là nếu bóng xảy ra để đi qua các mái chèo, trong trường hợp mà bạn đã bị mất một cuộc sống. Tìm kiếm bên trong này cho vòng lặp chúng ta có các kiểm tra cho một sự kiện chuột. Và như vậy, nếu có một sự kiện chuột, mà có nghĩa là chúng tôi muốn kiểm tra xem con chuột được di chuyển, và nếu chuột được di chuyển, chúng tôi muốn có chèo thuyền theo kịp với chuột. Vì vậy, để làm được điều đó, chúng ta tính mới vị trí của các mái chèo, mà là có để lấy vị trí của con chuột - mà lấy vị trí bằng cách sử dụng trường hợp chúng tôi đã được thông qua - và sau đó chúng ta sẽ trừ ra chiều rộng mái chèo chia cho 2, do đó, ở lại chèo thuyền tập trung vào con chuột thay vì phía bên trái của mái chèo ở trung tâm. Vì vậy, bây giờ chúng tôi cũng muốn chắc chắn rằng chúng tôi không đi qua phía bên trái hoặc bên phải bên của hội đồng quản trị. Và vì vậy ở đây chúng tôi chỉ kiểm tra nếu chèo thuyền sẽ được tắt phía bên trái của hội đồng quản trị, chỉ dính nó về phía bên trái. Và ở đây chúng tôi đang kiểm tra nếu paddle sẽ là trên bên phải của hội đồng quản trị, chỉ cần dính vào nó về phía bên phải. Và cuối cùng, chúng tôi thực sự thiết lập vị trí của mái chèo. Bây giờ, nếu không có một chuyển động chuột, đó có nghĩa là chúng ta sẽ muốn di chuyển bóng. Và vì vậy chúng tôi đã có x và y vận tốc của bóng và vì vậy chúng tôi di chuyển nó. Nhưng bây giờ chúng tôi muốn phát hiện một vài điều. Vì vậy, ở đây chúng tôi đang phát hiện nếu chúng ta đánh một trong hai phía bên trái hoặc bên phải của hội đồng quản trị, chúng tôi muốn bóng để trả lại. Và vì vậy, trong trường hợp đó, chúng tôi đặt x vận tốc x vận tốc âm. Nếu bóng trúng đầu bảng, sau đó chúng tôi cũng muốn các thư bị trả lại bóng. Nhưng bây giờ chúng tôi muốn thay đổi y vận tốc. Lưu ý chúng tôi không có điều kiện để bóng chạm đáy hội đồng quản trị kể từ đó đã bị bắt ở đây trong vòng lặp trong khi điều này. Cuối cùng, chúng tôi muốn phát hiện một số va chạm mà nếu hit bóng hoặc chèo thuyền hoặc gạch, chúng tôi muốn để làm một số trường hợp những điều đặc biệt. Vì vậy, nếu có một vụ va chạm, trong đó trường hợp đối tượng sẽ không được null, sau đó, nếu đối tượng đánh chèo thuyền, chúng tôi sẽ chỉ muốn trả bóng. Và ở đây, cũng có thể, chúng tôi thiết lập vị trí của bóng đến ngay trên mái chèo. Nhận thấy chúng ta đang đảm nhận vị trí x của bóng và chỉ tái sử dụng đó. Nhưng ở đây chúng tôi đang nhận được vị trí y của paddle và di chuyển quả bóng trên các mái chèo. Đây là một trường hợp đặc biệt để bóng không đánh chèo thuyền và sau đó, trước khi nó có thể di chuyển ra khỏi mái chèo, một vòng lặp đi xung quanh và nó nghĩ rằng nó vẫn còn trên bảng điều khiển và vì vậy tốc độ y được thiết lập trở lại tiêu cực và sau đó quả bóng lại loại gậy nảy trên các mái chèo. Vì vậy, nếu chúng ta không đánh chèo thuyền, sau đó chúng tôi cũng muốn kiểm tra nếu chúng ta nhấn gạch. Và vì vậy đây là cách chúng tôi có thể kiểm tra để xem nếu chúng ta đánh một gạch. Chúng tôi cần phải kiểm tra cho điều này bởi vì chúng tôi có thể đã thực sự đạt nhãn và chúng tôi không muốn loại bỏ nhãn. Vì vậy, nếu chúng ta đánh một gạch, chúng ta có thể loại bỏ gạch từ cửa sổ, lượng giảm số lượng của chúng ta về những viên gạch, tăng chúng tôi số điểm, và bây giờ chúng ta cần phải cập nhật bảng điểm đó là chính xác giống như chúng ta đã thấy trước khi chúng ta đã thấy init bảng điểm. Nhưng bây giờ chúng tôi chỉ cập nhật bảng điểm vì chúng tôi đã thay đổi số điểm. Và nó sẽ hiển thị rằng chúng tôi nhấn thêm một break. Và cuối cùng, nếu chúng ta đánh một gạch chúng tôi cũng muốn trả lại. Vì vậy, cuối cùng, chúng tôi tạm ngưng chỉ để các bóng không di chuyển cực nhanh và chúng tôi thực sự có thể đánh nó bằng paddle của chúng tôi. Và đó là khá nhiều đó. Vì vậy, bây giờ chúng tôi sẽ vòng trở lại đầu trong khi vòng lặp này và tiếp tục cho đến khi hoặc là chúng ta mất một cuộc sống hay chúng tôi chạy ra khỏi viên gạch. Điều gì xảy ra nếu chúng ta mất một cuộc sống? Sau đó chúng ta sẽ thoát khỏi điều này trong khi vòng lặp, và chúng ta sẽ thấy ý vòng lặp sao lưu đến đầu vòng lặp trong khi bên ngoài. Trong trường hợp này, chúng ta sẽ thực hiện điều này thiết lập một lần nữa. Và thiết lập này sẽ được chúng tôi chờ đợi cho một nhấp chuột, làm giảm giá trị số của chúng tôi của cuộc sống, recenter bóng, tính toán lại một x và y vận tốc, và sau đó tiếp tục trò chơi. Và do đó, sẽ tiếp tục cho đến khi một trong hai gạch kết thúc lên được ít hơn hoặc bằng số không - trong trường hợp chúng tôi thắng mà - hoặc cuộc sống là nhỏ hơn không, trong đó trường hợp chúng tôi đã bị mất các trò chơi. Vì vậy, một khi đó là trường hợp, chúng tôi thoát ra khỏi đó vòng lặp trong khi, và chúng tôi đến đây nơi chúng ta sẽ chờ nhấp chuột trước khi thoát khỏi trò chơi để các trò chơi không chỉ ngay lập tức đóng cửa vào chúng tôi. Và cuối cùng chúng tôi sẽ đóng cửa cửa sổ và đó là nó. Tên tôi là Rob, và đây là Breakout.