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

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

touch inputs in 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.


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.MOUSEBUTTONDOWNpygame.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.FINGERDOWNpygame.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 = True

while 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.MOUSEBUTTONDOWNpygame.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 = True

while 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.FINGERDOWNpygame.FINGERUP sự kiện cho vòng lặp trò chơi:

 
running = True

while 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!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *