Python là ngôn ngữ linh hoạt nhất và nó có mặt ở hầu hết mọi lĩnh vực bao gồm phát triển Web, Học máy, Trí tuệ nhân tạo, Ứng dụng GUI cũng như Phát triển trò chơi
Python cung cấp một thư viện tích hợp có tên là pygame, được sử dụng để phát triển trò chơi. Khi chúng ta hiểu các khái niệm cơ bản về lập trình Python, chúng ta có thể sử dụng thư viện pygame để tạo các trò chơi có đồ họa hấp dẫn, hoạt ảnh và âm thanh phù hợp
Pygame là một thư viện đa nền tảng được sử dụng để thiết kế trò chơi điện tử. Nó bao gồm đồ họa máy tính và thư viện âm thanh để cung cấp trải nghiệm trò chơi tiêu chuẩn cho người dùng
Nó được phát triển bởi Pete Shinners để thay thế PySDL
Điều kiện tiên quyết cho Pygame
Để học pygame, chúng ta phải hiểu ngôn ngữ lập trình Python
Cài đặt Pygame
Mở terminal dòng lệnh và gõ lệnh sau để cài đặt pygame
Chúng tôi cũng có thể cài đặt nó thông qua IDE. Để biết thêm hướng dẫn cài đặt, hãy truy cập hướng dẫn pygame hoàn chỉnh của chúng tôi [https. //www. javatpoint. com/pygame]. Ở đây bạn sẽ tìm thấy tất cả các giải thích cơ bản về pygame
Ví dụ Pygame đơn giản
Dưới đây là ví dụ sau về việc tạo một cửa sổ pygame đơn giản
đầu ra
Tất cả đồ họa sẽ vẽ trong cửa sổ pygame
Hãy tìm hiểu cú pháp cơ bản của chương trình trên
nhập pygame - Đây là mô-đun cho phép chúng tôi làm việc với tất cả các chức năng của pygame
pygame. init[] - Nó được sử dụng để khởi tạo tất cả các mô-đun cần thiết của pygame
pygame. trưng bày. set_mode[[width, height]] - Dùng để thay đổi kích thước cửa sổ. Nó sẽ trả về đối tượng bề mặt. Đối tượng bề mặt được sử dụng để thực hiện các hoạt động đồ họa
pygame. Sự kiện. get[] - Nó làm trống hàng đợi sự kiện. Nếu chúng ta không gọi nó, các thông báo trên cửa sổ sẽ bắt đầu chồng chất và trò chơi sẽ không phản hồi theo quan điểm của hệ điều hành
pygame. QUIT - Dùng để loại bỏ sự kiện khi ta click vào nút chéo ở góc cửa sổ
pygame. trưng bày. flip[] - Nó được sử dụng để phản ánh mọi cập nhật cho trò chơi. Nếu chúng tôi thực hiện bất kỳ thay đổi nào thì chúng tôi cần gọi màn hình. hàm lật []
Chúng ta có thể vẽ bất kỳ hình dạng nào lên bề mặt pygame bao gồm thêm hình ảnh, phông chữ hấp dẫn. Pygame cung cấp nhiều chức năng tích hợp để vẽ hình dạng hình học lên màn hình. Những hình dạng này là giai đoạn ban đầu để phát triển một trò chơi
Hãy hiểu ví dụ sau về vẽ hình ra màn hình
Ví dụ -
đầu ra
Giải trình -
Trong ví dụ trên, chúng ta đã vẽ các hình khác nhau như hình tam giác, đường thẳng, hình chữ nhật, hình elip, hình tròn, hình cung, hình tròn đầy và hình bầu dục. Chúng tôi đã sử dụng pygame. vẽ chức năng theo hình dạng với các đối số phù hợp
Ví dụ - Phát triển trò chơi rắn sử dụng Pygame
Chương trình -
đầu ra
Nếu con rắn chạm vào chính nó thì nó sẽ kết thúc trò chơi và hiển thị thông báo sau
Chúng ta có thể chơi lại bằng cách nhấp vào nút OK. Chúng tôi có thể thấy điểm của mình trong thiết bị đầu cuối Pycharm [Chúng tôi đã sử dụng Pycharm IDE; bạn có thể sử dụng bất kỳ IDE Python nào]
Sao chép đoạn mã trên và dán nó vào IDE của bạn và tận hưởng. Để hiểu các khái niệm về Pygame, hãy truy cập hướng dẫn đầy đủ về pygame của chúng tôi
Python là một ngôn ngữ nổi bật dành cho những người học lập trình và hoàn hảo cho bất kỳ ai muốn "hoàn thành công việc" và không dành nhiều thời gian cho mã soạn sẵn. Arcade là một thư viện Python để tạo trò chơi điện tử 2D dễ bắt đầu sử dụng và rất có khả năng khi bạn có kinh nghiệm. Trong bài viết này, tôi sẽ giải thích cách bắt đầu sử dụng Python và Arcade để lập trình trò chơi điện tử
Tôi bắt đầu phát triển trên Arcade sau khi dạy học sinh sử dụng thư viện PyGame. Tôi đã dạy trực tiếp bằng PyGame trong gần 10 năm và tôi đã phát triển ProgramArcadeGames. com dạy học trực tuyến. PyGame rất tuyệt, nhưng cuối cùng tôi cảm thấy mình đang lãng phí thời gian khi phải che đậy những lỗi không bao giờ được sửa
Tôi lo lắng về việc dạy những thứ như vòng lặp sự kiện, đó không còn là cách chúng tôi viết mã nữa. Tôi đã có một trong đó tôi giải thích tại sao tọa độ y bị đảo ngược. Bởi vì PyGame hiếm khi được cập nhật và nó dựa trên thư viện SDL 1 cũ, chứ không phải thứ gì đó hiện đại hơn như OpenGL, tôi không có nhiều hy vọng cho tương lai
Thêm tài nguyên Python
- IDE là gì?
- bảng ăn gian. Trăn 3. 7 cho người mới bắt đầu
- Khung GUI Python hàng đầu
- Tải xuống. 7 thư viện PyPI thiết yếu
- Nhà phát triển mũ đỏ
- Nội dung Python mới nhất
Tôi muốn có một thư viện dễ sử dụng hơn, mạnh mẽ hơn và sử dụng một số tính năng mới của Python 3, như trình trang trí và gợi ý kiểu. Trò chơi điện tử là nó. Và đây là cách để bắt đầu
Cài đặt
Arcade, giống như nhiều gói khác, có sẵn thông qua PyPi, nghĩa là bạn có thể cài đặt Arcade bằng lệnh
4 [hoặc lệnh pipenv]. Nếu bạn đã cài đặt Python, bạn có thể mở một dấu nhắc lệnh trên Windows và gõpip3 install arcade
pip install arcade
Hoặc trên MacOS và Linux gõ
pip3 install arcade
Để biết hướng dẫn cài đặt chi tiết hơn, bạn có thể tham khảo tài liệu cài đặt Arcade
vẽ đơn giản
Bạn có thể mở một cửa sổ và tạo các bản vẽ đơn giản chỉ với một vài dòng mã. Hãy tạo một ví dụ vẽ mặt cười như hình bên dưới
Hình ảnh của
Kịch bản bên dưới cho thấy cách bạn có thể sử dụng để thực hiện việc này. Lưu ý rằng bạn không cần biết cách sử dụng các lớp hoặc thậm chí định nghĩa các hàm. Lập trình với phản hồi trực quan nhanh chóng rất tốt cho bất kỳ ai muốn bắt đầu học lập trình
import arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
Sử dụng chức năng
Tất nhiên, viết mã trong bối cảnh toàn cầu không phải là hình thức tốt. Rất may, việc cải thiện chương trình của bạn bằng cách sử dụng các hàm thật dễ dàng. Ở đây chúng ta có thể thấy một ví dụ vẽ cây thông tại một vị trí [x, y] cụ thể bằng cách sử dụng hàm
def draw_pine_tree[x, y]:
""" This function draws a pine tree at the specified location. """
# Draw the triangle on top of the trunk.
# We need three x, y points for the triangle.
arcade.draw_triangle_filled[x + 40, y, # Point 1
x, y - 100, # Point 2
x + 80, y - 100, # Point 3
arcade.color.DARK_GREEN]
# Draw the trunk
arcade.draw_lrtb_rectangle_filled[x + 30, x + 50, y - 100, y - 140,
arcade.color.DARK_BROWN]
Để biết ví dụ đầy đủ, hãy xem bản vẽ với các chức năng
Lập trình viên có kinh nghiệm hơn sẽ biết rằng các chương trình đồ họa hiện đại trước tiên tải thông tin bản vẽ vào cạc đồ họa, sau đó yêu cầu cạc đồ họa vẽ nó sau theo lô. Arcade cũng hỗ trợ điều này. Vẽ 10.000 hình chữ nhật riêng lẻ mất khoảng 0. 800 giây. Vẽ chúng theo lô mất ít hơn 0. 001 giây
lớp Cửa sổ
Các chương trình lớn hơn thường sẽ xuất phát từ lớp, hoặc. Điều này cho phép lập trình viên viết mã để xử lý bản vẽ, cập nhật và xử lý đầu vào từ người dùng. Dưới đây là mẫu để bắt đầu một chương trình dựa trên
5pip3 install arcade
import arcade
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
class MyGame[arcade.Window]:
""" Main application class. """
def __init__[self, width, height]:
super[].__init__[width, height]
arcade.set_background_color[arcade.color.AMAZON]
def setup[self]:
# Set up your game here
pass
def on_draw[self]:
""" Render the screen. """
arcade.start_render[]
# Your drawing code goes here
def update[self, delta_time]:
""" All the logic to move, and the game logic goes here. """
pass
def main[]:
game = MyGame[SCREEN_WIDTH, SCREEN_HEIGHT]
game.setup[]
arcade.run[]
if __name__ == "__main__":
main[]
Lớp
5 có một số phương thức mà chương trình của bạn có thể ghi đè để cung cấp chức năng cho chương trình. Dưới đây là một số cái được sử dụng phổ biến nhấtpip3 install arcade
7. Tất cả các mã để vẽ màn hình ở đâypip3 install arcade
8. Tất cả mã để di chuyển vật phẩm của bạn và thực hiện logic trò chơi ở đây. Điều này được gọi là khoảng 60 lần mỗi giâypip3 install arcade
9. Xử lý các sự kiện khi một phím được nhấn, chẳng hạn như cho người chơi tốc độpip3 install arcade
0. Xử lý khi nhả phím, ở đây bạn có thể ngăn người chơi di chuyểnimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
1. Điều này được gọi mỗi khi chuột di chuyểnimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
2. Được gọi khi nhấn nút chuộtimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
3. Chức năng này được sử dụng trong các trò chơi cuộn, khi bạn có một thế giới lớn hơn nhiều so với những gì có thể nhìn thấy trên một màn hình. Gọiimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
3 cho phép lập trình viên đặt phần nào của thế giới đó hiện đang hiển thịimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
yêu tinh
Sprites là một cách dễ dàng để tạo đối tượng bitmap 2D trong Arcade. Arcade có các phương pháp giúp bạn dễ dàng vẽ, di chuyển và tạo hoạt ảnh cho các nhân vật. Bạn cũng có thể dễ dàng sử dụng sprite để phát hiện va chạm giữa các đối tượng
Tạo một nhân vật
Tạo một thể hiện của lớp Arcade từ đồ họa thật dễ dàng. Một lập trình viên chỉ cần tên tệp của một hình ảnh để tạo cơ sở cho sprite và tùy chọn một số để phóng to hoặc thu nhỏ hình ảnh. Ví dụ
6pip install arcade
Mã này sẽ tạo một sprite sử dụng hình ảnh được lưu trữ trong
5. Hình ảnh sẽ được thu nhỏ lại bằng 20% chiều cao và chiều rộng ban đầuimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
danh sách ma
Sprites thường được tổ chức thành danh sách. Các danh sách này giúp quản lý các họa tiết dễ dàng hơn. Các họa tiết trong danh sách sẽ sử dụng OpenGL để vẽ hàng loạt các họa tiết theo nhóm. Đoạn mã dưới đây thiết lập một trò chơi với một người chơi và một loạt tiền xu để người chơi thu thập. Chúng tôi sử dụng hai danh sách, một cho người chơi và một cho tiền xu
8pip install arcade
Chúng ta có thể dễ dàng rút tất cả các đồng tiền trong danh sách tiền xu
9pip install arcade
Phát hiện va chạm sprite
Hàm
6 cho phép chúng ta xem liệu một nhân vật có chạy vào một nhân vật khác trong danh sách hay không. Chúng ta có thể sử dụng điều này để xem tất cả các đồng xu mà người chơi sprite tiếp xúc với. Sử dụng vòng lặpimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
7 đơn giản, chúng ta có thể loại bỏ đồng xu khỏi trò chơi và tăng điểm số của mìnhimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
2pip3 install arcade
Để biết ví dụ đầy đủ, hãy xem coll_coins. py
trò chơi vật lý
Nhiều trò chơi bao gồm một số loại vật lý. Đơn giản nhất là các chương trình từ trên xuống ngăn người chơi đi xuyên tường. Nền tảng thêm phức tạp hơn với trọng lực và nền tảng di chuyển. Một số trò chơi sử dụng công cụ vật lý 2D đầy đủ với khối lượng, ma sát, lò xo, v.v.
Trò chơi từ trên xuống
Đối với các trò chơi dựa trên góc nhìn từ trên xuống đơn giản, chương trình Arcade cần có danh sách các bức tường mà người chơi [hoặc bất kỳ thứ gì khác] không thể di chuyển qua. Tôi thường gọi đây là
8. Sau đó, một công cụ vật lý được tạo trong mã thiết lập của lớpimport arcade
# Set constants for the screen size
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# Open the window. Set the window title and dimensions [width and height]
arcade.open_window[SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example"]
# Set the background color to white.
# For a list of named colors see:
# //arcade.academy/arcade.color.html
# Colors can also be specified in [red, green, blue] format and
# [red, green, blue, alpha] format.
arcade.set_background_color[arcade.color.WHITE]
# Start the render process. This must be done before any drawing commands.
arcade.start_render[]
# Draw the face
x = 300
y = 300
radius = 200
arcade.draw_circle_filled[x, y, radius, arcade.color.YELLOW]
# Draw the right eye
x = 370
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the left eye
x = 230
y = 350
radius = 20
arcade.draw_circle_filled[x, y, radius, arcade.color.BLACK]
# Draw the smile
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline[x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10]
# Finish drawing and display the result
arcade.finish_render[]
# Keep the window open until the user hits the 'close' button
arcade.run[]
5 vớipip3 install arcade
5pip3 install arcade
0 được cung cấp một vectơ chuyển động với hai thuộc tính của nó làdef draw_pine_tree[x, y]:
""" This function draws a pine tree at the specified location. """
# Draw the triangle on top of the trunk.
# We need three x, y points for the triangle.
arcade.draw_triangle_filled[x + 40, y, # Point 1
x, y - 100, # Point 2
x + 80, y - 100, # Point 3
arcade.color.DARK_GREEN]
# Draw the trunk
arcade.draw_lrtb_rectangle_filled[x + 30, x + 50, y - 100, y - 140,
arcade.color.DARK_BROWN]
1 vàdef draw_pine_tree[x, y]:
""" This function draws a pine tree at the specified location. """
# Draw the triangle on top of the trunk.
# We need three x, y points for the triangle.
arcade.draw_triangle_filled[x + 40, y, # Point 1
x, y - 100, # Point 2
x + 80, y - 100, # Point 3
arcade.color.DARK_GREEN]
# Draw the trunk
arcade.draw_lrtb_rectangle_filled[x + 30, x + 50, y - 100, y - 140,
arcade.color.DARK_BROWN]
2. Một ví dụ đơn giản về cách làm này là để người chơi di chuyển bằng bàn phím. Ví dụ: đây có thể là con tùy chỉnh của lớpdef draw_pine_tree[x, y]:
""" This function draws a pine tree at the specified location. """
# Draw the triangle on top of the trunk.
# We need three x, y points for the triangle.
arcade.draw_triangle_filled[x + 40, y, # Point 1
x, y - 100, # Point 2
x + 80, y - 100, # Point 3
arcade.color.DARK_GREEN]
# Draw the trunk
arcade.draw_lrtb_rectangle_filled[x + 30, x + 50, y - 100, y - 140,
arcade.color.DARK_BROWN]
5pip3 install arcade
0pip3 install arcade
Mặc dù mã đó đặt tốc độ của trình phát, nhưng nó không di chuyển trình phát. Trong phương pháp ________ 08 của lớp ________ 05, gọi ________ 46 sẽ di chuyển người chơi, nhưng không xuyên qua tường
1pip3 install arcade
Để biết ví dụ đầy đủ, hãy xem sprite_move_walls. py
platformer
Di chuyển sang nền tảng xem bên khá dễ dàng. Một lập trình viên chỉ cần chuyển công cụ vật lý sang
7 và thêm vào hằng số trọng lựcdef draw_pine_tree[x, y]:
""" This function draws a pine tree at the specified location. """
# Draw the triangle on top of the trunk.
# We need three x, y points for the triangle.
arcade.draw_triangle_filled[x + 40, y, # Point 1
x, y - 100, # Point 2
x + 80, y - 100, # Point 3
arcade.color.DARK_GREEN]
# Draw the trunk
arcade.draw_lrtb_rectangle_filled[x + 30, x + 50, y - 100, y - 140,
arcade.color.DARK_BROWN]
2pip3 install arcade
Bạn có thể sử dụng một chương trình như Xếp gạch để xếp các ô/khối tạo nên cấp độ của bạn
Ví dụ, xem sprite_tiled_map. py
Đối với vật lý 2D đầy đủ, bạn có thể tích hợp thư viện
Học bằng ví dụ
Một trong những cách học tốt nhất là lấy ví dụ. Thư viện Arcade có một danh sách dài các chương trình ví dụ mà một người có thể sử dụng để tạo trò chơi. Mỗi ví dụ này cho thấy một khái niệm trò chơi mà học sinh đã yêu cầu trong các lớp học của tôi hoặc trực tuyến trong những năm qua
Chạy bất kỳ bản demo nào trong số này thật dễ dàng khi Arcade đã được cài đặt. Mỗi mẫu đều có chú thích ở đầu chương trình bằng lệnh bạn có thể gõ trên dòng lệnh để chạy mẫu chẳng hạn
3pip3 install arcade
Tóm lược
Arcade cho phép bạn bắt đầu lập trình đồ họa và trò chơi bằng mã dễ hiểu. Nhiều lập trình viên mới đã tạo ra những trò chơi tuyệt vời không lâu sau khi bắt đầu. Hãy thử một lần
Để tìm hiểu thêm, hãy tham dự buổi nói chuyện của Paul Vincent Craven, Tạo trò chơi 2D dễ dàng với Arcade, tại PyCon Cleveland 2018
Đọc gì tiếp theo
thẻ
PyCon
con trăn
lập trình
Paul Vincent Craven
Paul Craven là tác giả của "Program Arcade Games with Python and Pygame", một tài nguyên trực tuyến và bản in để học lập trình. Anh ấy là người duy trì chính của thư viện trò chơi Arcade Python cho đồ họa 2D. Paul cũng là giáo sư tại Simpson College ở Iowa
Thêm về tôi
Những bình luận này đã bị đóng, tuy nhiên bạn có thể Đăng ký hoặc Đăng nhập để đăng bình luận về một bài viết khác5 bình luận
Châu. 25 Tháng Tư, 2018
Đăng ký hoặc Đăng nhập để thích
Tuyệt vời cho cuộc thi trò chơi mã nguồn mở
Một vài bit ngắn của một từ. 29 Tháng Tư, 2018
Đăng ký hoặc Đăng nhập để thích
Tl;dr. khi thay thế PyGame, bạn đã xoay sở để thực hiện chính xác cùng một lỗi cốt lõi và khiến việc khởi động và chạy thư viện của bạn trở nên quá khó chịu, ít nhất là theo cách mà tôi nghĩ là hợp lý [chắc chắn là chủ quan]
Đầu tiên. Trăn 3. 6 là một nỗi đau vì nó quá mới, hầu hết các bản phân phối thậm chí còn chưa bao gồm 3. bất cứ điều gì nhưng ít nhất nhận được 3. 5. x lên và chạy khá dễ dàng trên hầu hết các bản phân phối theo như tôi biết, nhưng 3. 6. ?
Bạn không giúp chính mình. Đây là hình ảnh phản chiếu hoàn hảo của PyGame không hỗ trợ bất cứ thứ gì Python mà mọi người đã có. Trong PyGame, đó là vì PyGame đã cũ [và bị hỏng] và trong Arcade là do Python quá mới. Cùng một sự khác biệt. Được rồi nếu bạn chạy trong môi trường chuyên dụng, v.v. nhưng không dành cho những người bình thường ở nhà muốn xem qua và tham gia ngay với chi phí tối thiểu
Vấn đề thứ hai. pip, nó vẫn là một vấn đề bảo mật hoàn toàn mở và không được xem xét theo báo cáo hàng năm từ cơ quan tình báo Séc đó phải không?
Python bị mất cốt truyện với pip. Đó không phải lỗi của bạn
Xin lỗi vì những vấn đề tiêu cực như vậy chẳng là gì ngoài nhận xét lái xe sử dụng địa chỉ thư không bao giờ được đọc [vì Google là ác quỷ] nhưng ai đó nên chỉ ra những điều này và mọi người thường không làm vậy, vì vậy tôi đã có lần thúc giục mình . com và bình luận
Bất chấp tất cả những gì thư viện thực tế của bạn trông thú vị, thật tệ, tôi cảm thấy mệt mỏi với những cái vòng
Paul Vincent Craven. 29 Tháng Tư, 2018
Đăng ký hoặc Đăng nhập để thích
Bạn nói đúng 3. 6 thật khó để thiết lập và chạy với một số bản phân phối Linux. Với Windows, MacOS và Ubuntu, đây sẽ là phiên bản mặc định cho những người thực hiện cài đặt gần đây. Không nhiều với Linux Mint hoặc một số cái khác. Tôi sẽ suy nghĩ về nhận xét của bạn một cách nghiêm túc. Tôi khá thích định dạng in mới, nhưng nó không được sử dụng nhiều trong mã
Nếu bạn không thích pip, hãy cài đặt Arcade bằng cách thiết lập. py. Tôi không chắc chắn những gì bạn đang tìm kiếm ở đây