python中的screen blit_python中pygame针对游戏窗口的显示方法实例分析(附源码)

本文介绍了如何在Python的pygame库中实现游戏窗口的全屏和窗口模式切换,通过监听键盘事件改变显示模式,并提供了一个完整的示例代码,帮助读者理解pygame.display.set_mode()的用法。
摘要由CSDN通过智能技术生成

#pygame fullscreen

import os, pygame

from pygame.locals import *

from sys import exit

'''

pygame.display.set_mode():

pygame.FULLSCREEN create a fullscreen display

pygame.DOUBLEBUF recommended for HWSURFACE or OPENGL

pygame.HWSURFACE hardware accelerated, only in FULLSCREEN

pygame.OPENGL create an opengl renderable display

pygame.RESIZABLE display window should be sizeable

pygame.NOFRAME display window will have no border or controls

'''

__author__ = {'name' : 'Hongten',

'mail' : 'hongtenzone@foxmail.com',

'Version' : '1.0'}

BG_IMAGE = 'C://py//bg.png'

SCREEN_DEFAULT_SIZE = (500, 500)

pygame.init()

#create the image path

bg_path = os.path.join('data', BG_IMAGE)

Python打地鼠游戏(Whack-a-Mole)是一种经典的控制台或GUI编程练习,通常涉及用户通过键盘操作快速点击隐藏在屏幕上的“地鼠”头像。下面是一个简单的示例,展示了如何使用PythonPygame库来创建这样的游戏: ```python import pygame import random # 初始化Pygame pygame.init() # 设置窗口大小 screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("Whack-a-Mole") # 地鼠位置、速度和显示时间 moles = [] speed = 5 show_time = 2000 # 鼠标点击事件处理函数 def handle_click(x, y): for mole in moles: if mole.rect.collidepoint(x, y): # 打到地鼠,移除并暂停一段时间 moles.remove(mole) pygame.time.wait(show_time) # 主循环 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() elif event.type == pygame.MOUSEBUTTONDOWN: x, y = event.pos handle_click(x, y) # 创建新地鼠或移动旧的地鼠 if len(moles) < 5 and random.randint(0, 1000) > 500: # 每隔一段时间随机生成新的地鼠 mole = Mole(random.randint(0, screen_width), random.randint(0, screen_height)) moles.append(mole) # 更新所有地鼠的位置 for mole in moles: mole.update(screen_width, screen_height, speed) mole.draw(screen) # 更新屏幕 pygame.display.flip() # 地鼠类 class Mole(pygame.sprite.Sprite): def __init__(self, x, y): super().__init__() self.image = pygame.Surface((50, 50)) # 地鼠的图像大小 self.image.fill((255, 0, 0)) # 红色填充 self.rect = self.image.get_rect(center=(x, y)) def update(self, width, height, speed): self.rect.y += speed if self.rect.top > height: self.rect.bottom = -self.rect.height self.rect.y = 0 self.rect.centerx = random.randint(0, width) def draw(self, surface): surface.blit(self.image, self.rect) # 游戏主入口 if __name__ == "__main__": run_game() ``` 这是一个简化的版本,实际游戏可能还需要添加更多细节,如动画效果、分数系统等。运行这个游戏需要安装Pygame库,可以通过pip install pygame命令来安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值