Làm sao để có câu trả lời hay nhất?
22/10/2023
25/12/2023
```python
import pygame
import random
Khởi tạo màn hình gamepygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Game bắn súng")
Người chơiplayer_img = pygame.image.load("player.png")
player_x = 370
player_y = 480
player_speed = 5
Kẻ địchenemy_img = pygame.image.load("enemy.png")
enemy_x = random.randint(0, 800)
enemy_y = random.randint(50, 150)
enemy_speed = 2
Đạnbullet_img = pygame.image.load("bullet.png")
bullet_x = 0
bullet_y = 480
bullet_speed = 10
bullet_state = "ready"
Điểm sốscore = 0
font = pygame.font.Font("freesansbold.ttf", 32)
text_x = 10
text_y = 10
def player(x, y):
screen.blit(player_img, (x, y))
def enemy(x, y):
screen.blit(enemy_img, (x, y))
def fire_bullet(x, y):
global bullet_state
bullet_state = "fire"
screen.blit(bullet_img, (x + 16, y + 10))
def is_collision(enemy_x, enemy_y, bullet_x, bullet_y):
distance = ((enemy_x - bullet_x) ** 2 + (enemy_y - bullet_y) ** 2) ** 0.5
if distance < 27:
return True
return False
running = True
while running:
screen.fill((0, 0, 0))
for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Bắn đạn khi nhấn phím Space if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: if bullet_state == "ready": bullet_x = player_x fire_bullet(bullet_x, bullet_y) # Di chuyển người chơi keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_x -= player_speed if keys[pygame.K_RIGHT]: player_x += player_speed # Giới hạn di chuyển của người chơi if player_x < 0: player_x = 0 elif player_x > 736: player_x = 736 # Di chuyển kẻ địch enemy_x += enemy_speed if enemy_x <= 0 or enemy_x >= 736: enemy_speed *= -1 enemy_y += 40 # Di chuyển đạn if bullet_y <= 0: bullet_y = 480 bullet_state = "ready" if bullet_state == "fire": fire_bullet(bullet_x, bullet_y) bullet_y -= bullet_speed # Kiểm tra va chạm collision = is_collision(enemy_x, enemy_y, bullet_x, bullet_y) if collision: bullet_y = 480 bullet_state = "ready" score += 1 enemy_x = random.randint(0, 800) enemy_y = random.randint(50, 150) player(player_x, player_y) enemy(enemy_x, enemy_y) # Hiển thị điểm số score_text = font.render("Điểm: " + str(score), True, (255, 255, 255)) screen.blit(score_text, (text_x, text_y)) pygame.display.update()
pygame.quit()
```
31/10/2023
ndkroanDưới đây là một ví dụ về code đơn giản cho game bắt súng sử dụng ngôn ngữ Python:
```python
import pygame
import random
Khởi tạo màn hình gamepygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Game bắt súng")
Người chơiplayer_img = pygame.image.load("player.png")
player_x = 370
player_y = 480
Kẻ địchenemy_img = pygame.image.load("enemy.png")
enemy_x = random.randint(0, 800)
enemy_y = random.randint(50, 150)
Hàm vẽ người chơi lên màn hìnhdef draw_player(x, y):
screen.blit(player_img, (x, y))
Hàm vẽ kẻ địch lên màn hìnhdef draw_enemy(x, y):
screen.blit(enemy_img, (x, y))
Vòng lặp gamerunning = True
while running:
screen.fill((0, 0, 0)) # Xóa màn hình
for event in pygame.event.get(): if event.type == pygame.QUIT: running = False keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_x -= 0.1 if keys[pygame.K_RIGHT]: player_x += 0.1 draw_player(player_x, player_y) draw_enemy(enemy_x, enemy_y) pygame.display.update()
```
Lưu ý rằng bạn cần có các tệp hình ảnh "player.png" và "enemy.png" trong cùng thư mục với tệp mã nguồn Python. Bạn cũng có thể thay đổi kích thước và vị trí ban đầu của người chơi và kẻ địch theo ý muốn.
22/10/2023
```python
import pygame
import random
Khởi tạo game
pygame.init()
Thiết lập kích thước cửa sổ
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Game bắn súng")
Màu sắc
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
Người chơi
player_size = 50
player_pos = [screen_width/2, screen_height-2*player_size]
Đạn
bullet_size = 10
bullet_pos = []
bullet_speed = 10
Kẻ địch
enemy_size = 50
enemy_pos = [random.randint(0, screen_width-enemy_size), 0]
enemy_list = [enemy_pos]
Điểm số
score = 0
Tốc độ di chuyển
speed = 10
Hàm để tạo kẻ địch mới
def create_enemy():
x_pos = random.randint(0, screen_width-enemy_size)
y_pos = 0
enemy_list.append([x_pos, y_pos])
Hàm để di chuyển kẻ địch
def move_enemies():
for idx, enemy_pos in enumerate(enemy_list):
if enemy_pos[1] >= 0 and enemy_pos[1] < screen_height:
enemy_pos[1] += speed
else:
enemy_list.pop(idx)
score += 1
Hàm để kiểm tra va chạm
def collision_check(enemy_list, player_pos):
for enemy_pos in enemy_list:
if detect_collision(enemy_pos, player_pos):
return True
return False
Hàm để kiểm tra va chạm giữa kẻ địch và người chơi
def detect_collision(player_pos, enemy_pos):
p_x = player_pos[0]
p_y = player_pos[1]
e_x = enemy_pos[0] e_y = enemy_pos[1] if (e_x >= p_x and e_x < (p_x + player_size)) or (p_x >= e_x and p_x < (e_x + enemy_size)): if (e_y >= p_y and e_y < (p_y + player_size)) or (p_y >= e_y and p_y < (e_y + enemy_size)): return True return False
Vòng lặp game
game_over = False
clock = pygame.time.Clock()
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player_pos[0] -= speed
elif event.key == pygame.K_RIGHT:
player_pos[0] += speed
elif event.key == pygame.K_SPACE:
bullet_pos.append([player_pos[0], player_pos[1]])
screen.fill(black) # Di chuyển và vẽ kẻ địch move_enemies() for enemy_pos in enemy_list: pygame.draw.rect(screen, red, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size)) # Di chuyển và vẽ người chơi pygame.draw.rect(screen, white, (player_pos[0], player_pos[1], player_size, player_size)) # Di chuyển và vẽ đạn if len(bullet_pos) > 0: for idx, bullet in enumerate(bullet_pos): bullet[1] -= bullet_speed pygame.draw.rect(screen, white, (bullet[0], bullet[1], bullet_size, bullet_size)) if bullet[1] <= 0: bullet_pos.pop(idx) # Kiểm tra va chạm giữa kẻ địch và người chơi if collision_check(enemy_list, player_pos): game_over = True break # Tạo kẻ địch mới và tăng điểm số if len(enemy_list) < 10: create_enemy() score += 1 pygame.display.update() clock.tick(30
```
22/10/2023
Dưới đây là một ví dụ về code đơn giản cho game bắt súng sử dụng ngôn ngữ Python:
```python
import pygame
import random
Khởi tạo màn hình gamepygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Game bắt súng")
Người chơiplayer_img = pygame.image.load("player.png")
player_x = 370
player_y = 480
Kẻ địchenemy_img = pygame.image.load("enemy.png")
enemy_x = random.randint(0, 800)
enemy_y = random.randint(50, 150)
Hàm vẽ người chơi lên màn hìnhdef draw_player(x, y):
screen.blit(player_img, (x, y))
Hàm vẽ kẻ địch lên màn hìnhdef draw_enemy(x, y):
screen.blit(enemy_img, (x, y))
Vòng lặp gamerunning = True
while running:
screen.fill((0, 0, 0)) # Xóa màn hình
for event in pygame.event.get(): if event.type == pygame.QUIT: running = False keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_x -= 0.1 if keys[pygame.K_RIGHT]: player_x += 0.1 draw_player(player_x, player_y) draw_enemy(enemy_x, enemy_y) pygame.display.update()
```
Lưu ý rằng bạn cần có các tệp hình ảnh "player.png" và "enemy.png" trong cùng thư mục với tệp mã nguồn Python. Bạn cũng có thể thay đổi kích thước và vị trí ban đầu của người chơi và kẻ địch theo ý muốn.
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
24/09/2024
23/09/2024
23/09/2024
Top thành viên trả lời