Python游戏开发 unit03_Pygame图片载入

14 篇文章 0 订阅
14 篇文章 1 订阅

一、图片载入

加载图片

pygame.image.load(path)

绘制图片

screen.blit(Surface, (x, y))

二、游戏图标

设置图标

pygame.display.set_icon()

三、位置属性

获取位置颜色值

color = screen.get_at()

获取位置信息

rect = Surface.get_rect()

中心点对齐

rect.center = screen.get_rect().center

坐标

rect.x
rect.y

宽高

rect.width
rect.height

 完整演示代码

import pygame

pygame.init()

# 设置游戏图标
logoImg = pygame.image.load('./images/logo.png')
pygame.display.set_icon(logoImg)

pygame.display.set_caption('图片载入演示')

WIDTH = 750
HEIGHT = 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))

screen.fill((255, 255, 255))

# 加载图片资源
gamereadyImg = pygame.image.load('./images/gameready.png')
# 设置中心点对齐
gamereadyImgRect = gamereadyImg.get_rect()
gamereadyImgRect.center = screen.get_rect().center
screen.blit(gamereadyImg, (gamereadyImgRect.x, gamereadyImgRect.y))

print((gamereadyImgRect.x, gamereadyImgRect.y))
# 获取图片宽高
print(gamereadyImgRect.width, gamereadyImgRect.height)

#获取某个点的颜色值
# print(screen.get_at((50,50)))
print(screen.get_at((280, 200)))

pygame.display.update()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你分享一下我对于设计和开发Python打飞机游戏的一些思路和代码实现。 首先,我们使用Pygame这个游戏开发框架来实现游戏PygamePython的一个游戏开发库,可以帮助我们快速地开发2D游戏。在开始开发之前,我们需要先安装Pygame库,可以通过pip进行安装。 接下来,我们需要设计游戏的场景和元素。打飞机游戏的场景通常是一个背景图片,我们可以通过Pygame中的Surface对象来加载和显示图片游戏的元素包括玩家飞机、敌机、子弹等,我们可以使用Pygame中的Sprite类来实现这些元素。 在游戏中,玩家可以通过键盘控制飞机的移动和发射子弹。我们可以通过监听键盘事件来实现这个功能。同时,敌机会不断地从顶部下落,玩家需要躲避敌机并发射子弹来打击敌机。 下面是一个简单的代码实现,可以供你参考: ```python import pygame import random # 初始化Pygame pygame.init() # 设置游戏窗口大小 WIDTH = 480 HEIGHT = 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("打飞机") # 加载背景图片 bg_image = pygame.image.load("background.png").convert_alpha() # 定义玩家飞机类 class Player(pygame.sprite.Sprite): def __init__(self, x, y): super().__init__() self.image = pygame.image.load("player.png").convert_alpha() self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y def move_left(self): self.rect.x -= 5 def move_right(self): self.rect.x += 5 def shoot(self): bullet = Bullet(self.rect.centerx, self.rect.top) all_sprites.add(bullet) bullets.add(bullet) # 定义子弹类 class Bullet(pygame.sprite.Sprite): def __init__(self, x, y): super().__init__() self.image = pygame.image.load("bullet.png").convert_alpha() self.rect = self.image.get_rect() self.rect.x = x - self.rect.width // 2 self.rect.y = y - self.rect.height def update(self): self.rect.y -= 10 if self.rect.bottom < 0: self.kill() # 定义敌机类 class Enemy(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = pygame.image.load("enemy.png").convert_alpha() self.rect = self.image.get_rect() self.rect.x = random.randint(0, WIDTH - self.rect.width) self.rect.y = -self.rect.height def update(self): self.rect.y += 5 if self.rect.top > HEIGHT: self.kill() # 创建游戏精灵组 all_sprites = pygame.sprite.Group() player = Player(WIDTH // 2, HEIGHT - 100) enemies = pygame.sprite.Group() bullets = pygame.sprite.Group() all_sprites.add(player) # 设置游戏循环 clock = pygame.time.Clock() running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: player.move_left() elif event.key == pygame.K_RIGHT: player.move_right() elif event.key == pygame.K_SPACE: player.shoot() # 创建敌机 if random.randint(1, 50) == 1: enemy = Enemy() all_sprites.add(enemy) enemies.add(enemy) # 更新游戏精灵 all_sprites.update() # 检测子弹和敌机的碰撞 hits = pygame.sprite.groupcollide(bullets, enemies, True, True) # 更新屏幕 screen.blit(bg_image, (0, 0)) all_sprites.draw(screen) pygame.display.flip() # 控制游戏帧率 clock.tick(60) # 退出Pygame pygame.quit() ``` 这段代码实现了一个简单的打飞机游戏,你可以根据自己的需求进行修改和扩展。希望我的回答能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值