Làm việc với đầu vào cảm ứng trong PyGame

Trong thời đại ngày nay, các thiết bị màn hình cảm ứng ở khắp mọi nơi. Không có gì ngạc nhiên khi các nhà phát triển trò chơi đang ngày càng sử dụng đầu vào cảm ứng trong trò chơi của họ và các khung đang làm cho điều này ngày càng dễ dàng hơn.
PyGame giúp dễ dàng tạo các trò chơi và ứng dụng có thể tận dụng đầu vào cảm ứng.
Mục Lục
Hỗ trợ cảm ứng của PyGame
PyGame có hỗ trợ tích hợp để làm việc với đầu vào cảm ứng. Điều này bao gồm hỗ trợ cho đầu vào cảm ứng chuột và ngón tay.
Để phát hiện chuột, bạn có thể sử dụng pygame.MOUSEBUTTONDOWN Và pygame.MOUSEBUTTONUP sự kiện. Ví dụ:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
print("Mouse button pressed")
Để phát hiện đầu vào cảm ứng bằng ngón tay, bạn có thể sử dụng pygame.FINGERDOWN Và pygame.FINGERUP sự kiện. Ví dụ:
for event in pygame.event.get():
if event.type == pygame.FINGERDOWN:
print("Finger touched the screen")
Tạo một trò chơi đơn giản
Bắt đầu bằng cách tạo một trò chơi đơn giản. Trò chơi này sẽ bao gồm một nhân vật người chơi mà bạn có thể di chuyển xung quanh màn hình bằng cách sử dụng đầu vào cảm ứng. Để làm điều này, bạn sẽ cần tạo một vòng lặp trò chơi và một nhân vật người chơi.
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt pip trên thiết bị của mình, sau đó sử dụng lệnh sau để cài đặt PyGame mô-đun:
pip install pygame
Bây giờ, hãy nhập mô-đun PyGame vào mã trò chơi của bạn:
import pygame
pygame.init()
Sau đó, tạo cửa sổ trò chơi và đối tượng trò chơi:
size = (400, 400)
screen = pygame.display.set_mode(size)
player = pygame.Surface((50, 50))
player.fill((255, 0, 0))
player_pos = [175, 175]
Cuối cùng, tạo vòng lặp trò chơi:
running = Truewhile running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
player_pos[0] += 5
player_pos[1] += 5
screen.blit(player, player_pos)
pygame.display.update()
Lưu ý rằng đoạn mã trên chỉ tạo một trò chơi đơn giản trong đó nhân vật người chơi di chuyển xung quanh màn hình. Để làm cho trò chơi thú vị hơn, bạn có thể thêm vật lý và va chạm để tạo chướng ngại vật cho người chơi vượt qua.
Đầu vào cảm ứng chuột cho chuyển động của người chơi
Bây giờ bạn đã có một trò chơi với nhân vật người chơi, bạn có thể bắt đầu thêm đầu vào cảm ứng. Để làm điều này, bạn sẽ cần thêm một trình xử lý sự kiện cho các đầu vào chuột. thêm pygame.MOUSEBUTTONDOWN Và pygame.MOUSEBUTTONUP sự kiện vào vòng lặp trò chơi.
Tạo trình xử lý sự kiện cho đầu vào chuột. Khi người chơi nhấn nút chuột, cập nhật vị trí của nhân vật thành vị trí chuột hiện tại. Chương trình sẽ bỏ qua việc nhả nút chuột vì nó không cần thực hiện bất kỳ hành động nào trong trường hợp đó.
running = Truewhile running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame.MOUSEBUTTONUP:
pass
screen.fill((0, 0, 0))
screen.blit(player, player_pos)
pygame.display.update()
Bạn cũng có thể thêm logic bổ sung vào trình xử lý sự kiện để làm cho trình phát di chuyển theo phản ứng với đầu vào của chuột.
Đầu vào cảm ứng ngón tay cho chuyển động của người chơi
Ngoài đầu vào chuột, bạn cũng có thể thêm đầu vào cảm ứng ngón tay. Để thực hiện việc này, bạn sẽ cần thêm trình xử lý sự kiện cho các đầu vào chạm bằng ngón tay.
thêm pygame.FINGERDOWN Và pygame.FINGERUP sự kiện cho vòng lặp trò chơi:
running = Truewhile running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame.MOUSEBUTTONUP:
pass
elif event.type == pygame.FINGERDOWN:
finger_x, finger_y = event.pos
player_pos[0] = finger_x
player_pos[1] = finger_y
elif event.type == pygame.FINGERUP:
pass
screen.fill((0, 0, 0))
screen.blit(player, player_pos)
pygame.display.update()
Lưu ý rằng điều này tương tự như thế nào với trình xử lý sự kiện đầu vào chuột. Trình xử lý sự kiện này cập nhật vị trí của nhân vật khi người chơi nhấn ngón tay của họ trên màn hình. Khi họ thả ngón tay ra, không có gì xảy ra. Điều này cho phép bạn tạo một trò chơi mà bạn có thể điều khiển bằng cách sử dụng cả đầu vào bằng chuột và chạm ngón tay. Hãy nhớ rằng bạn cũng có thể sử dụng các sự kiện khác như pygame.FINGERMOTION để đáp ứng với chuyển động của ngón tay.
Các tính năng cảm ứng bổ sung của Pygame
Với các tính năng cảm ứng cơ bản đã có, bạn có thể bắt đầu thêm các tính năng nâng cao hơn. PyGame có một vài tính năng tích hợp có thể giúp bạn thêm nhiều tính năng cảm ứng hơn vào trò chơi của mình.
Tính năng đầu tiên là pygame.mouse.set_visible() chức năng. Chức năng này cho phép bạn ẩn con trỏ chuột. Điều này có thể hữu ích nếu bạn muốn tạo trò chơi chỉ sử dụng đầu vào cảm ứng chứ không phải chuột.
Đây là một ví dụ về cách sử dụng set_visible() chức năng:
pygame.mouse.set_visible(False)
Các pygame.mouse.set_pos() chức năng đặt con trỏ chuột đến một vị trí cụ thể trên màn hình. Điều này hữu ích nếu bạn muốn di chuyển chuột đến một vị trí cụ thể mà không cần sử dụng đầu vào của chuột.
Dưới đây là một ví dụ về cách sử dụng set_pos() chức năng:
pygame.mouse.set_pos(200, 200)
Bạn có thể dùng pygame.mouse.get_rel() chức năng lấy chuyển động tương đối của chuột. Bạn có thể sử dụng điều này để phát hiện xem con chuột đã di chuyển bao xa kể từ sự kiện chuột cuối cùng.
Đây là cách bạn có thể sử dụng get_rel() chức năng:
dx, dy = pygame.mouse.get_rel()
Cuối cùng, bạn có thể sử dụng pygame.mouse.get_ép () có chức năng kiểm tra xem người chơi có nhấn nút chuột nào không. Điều này có thể hữu ích khi tạo trò chơi bằng điều khiển chuột/cảm ứng.
Dưới đây là một ví dụ về cách sử dụng get_ép() chức năng:
mouse_buttons = pygame.mouse.get_pressed()
PyGame cũng cung cấp một CON LĂN CHUỘT loại sự kiện mà bạn có thể sử dụng để phát hiện cuộn bánh xe chuột. Nó hỗ trợ cả cuộn dọc và ngang.
Đây là một ví dụ:
for event in pygame.event.get():
if event.type == pygame.MOUSEWHEEL:
if event.y > 0:
print("Mouse wheel scrolled up")
elif event.y < 0:
print("Mouse wheel scrolled down")
Tạo trò chơi tương tác với đầu vào cảm ứng
Với đầu vào cảm ứng tại chỗ, giờ đây bạn có thể tạo các trò chơi tương tác. Ví dụ: bạn có thể tạo trò chơi trong đó người chơi có thể di chuyển xung quanh màn hình bằng cách sử dụng đầu vào cảm ứng. Bạn cũng có thể tạo các trò chơi dựa trên cử chỉ, trong đó người chơi có thể thực hiện các cử chỉ khác nhau để kích hoạt các hành động trong trò chơi.
Khả năng là vô tận khi nói đến việc tạo trò chơi bằng đầu vào cảm ứng. Với sự trợ giúp của PyGame, bạn có thể tạo các trò chơi vừa thú vị vừa có tính tương tác. Vì vậy, hãy ra khỏi đó và bắt đầu sáng tạo!