成都创新互联网站制作重庆分公司

每日小游戏-创新互联

import random
import pygame
from pygame.locals import *

10年积累的成都网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有普安免费网站建设让你可以放心的选择与我们合作。

# 初始化初始化所有导入的PyGame模块
pygame.init()

# 设置游戏窗口宽高
W_WIDTH = 400
W_HEIGHT = 750

# 创建游戏窗口
screen = pygame.display.set_mode((W_WIDTH, W_HEIGHT))
# 设置窗口标题
pygame.display.set_caption("别碰我!")

class Player(pygame.sprite.Sprite):
  """玩家类"""

  def __init__(self):
  super(Player, self).__init__()
  self.surf = pygame.Surface((25, 25))
  self.surf.fill((200, 200, 200))
  self.rect = self.surf.get_rect(x=int(W_WIDTH / 2), y=50)

  def update(self, keys):
  """设置只能左右移动"""
  if keys[K_LEFT]:
  self.rect.move_ip((-5, 0))
  self.rect.left = 0 if self.rect.left<= 0 else self.rect.left
  if keys[K_RIGHT]:
  self.rect.move_ip((5, 0))
  self.rect.right = W_WIDTH if self.rect.right >= W_WIDTH else self.rect.right

class Enemy(pygame.sprite.Sprite):
  """敌人类"""

  def __init__(self):
  super(Enemy, self).__init__()
  self.surf = pygame.Surface((25, 25))
  self.surf.fill((68, 20, 44))
  self.rect = self.surf.get_rect(x=random.randint(0, W_WIDTH), y=W_HEIGHT)
  self.speed = random.randint(5, 10)

  def update(self):
  self.rect.move_ip((0, -self.speed))
  if self.rect.bottom<= 0:
  self.kill()

# 创建游戏背景 Surface
background = pygame.Surface((W_WIDTH, W_HEIGHT))
background.fill((0, 0, 0))

# 创建users 玩家Group 以及 enemys 敌人Group
enemys = pygame.sprite.Group()
users = pygame.sprite.Group()
player = Player()
users.add(player)

# 设置自定义事件
ADDENEMY = USEREVENT + 1
# 设置定时器每250ms生成一次自定义事件
pygame.time.set_timer(ADDENEMY, 250)

running = True
# 控制游戏执行的速度
clock = pygame.time.Clock()

while running:
  # 设置游戏的帧速,每秒为100帧
  clock.tick(100)
  # 获取按键事件
  pressed_keys = pygame.key.get_pressed()

  # 绘制背景
  screen.blit(background, (1, 1))
  # 绘制users Group
  for user in users:
  screen.blit(user.surf, user.rect)
  player.update(pressed_keys)
  # 绘制enemys Group
  for enemy in enemys:
  screen.blit(enemy.surf, enemy.rect)
  enemy.update()

  # 监听事件
  for event in pygame.event.get():
  if event.type == KEYDOWN:
  if event.key == K_ESCAPE:
  running = False
  elif event.type == QUIT:
  running = False
  elif event.type == ADDENEMY:
  new_enemy = Enemy()
  enemys.add(new_enemy)
  # print(enemys)

  # 碰撞检测
  if pygame.sprite.spritecollideany(player, enemys):
  player.kill()
  print("GAME OVER!!!!")
  running = False

  # 更新屏幕
  pygame.display.flip()

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:每日小游戏-创新互联
转载来源:http://cxhlcq.com/article/edddh.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部