python及pygame雷霆战机游戏项目实战04 添加图形

简介: python及pygame雷霆战机游戏项目实战04 添加图形

image.png

加载图片

from os import path
img_dir = path.join(path.dirname(__file__), 'image')


绘制背景


从加载背景图像开始。在现有的游戏循环和初始化代码之前完成所有资源加载:

# Load all game graphics
background = pygame.image.load(path.join(img_dir, 'img_bg_level_2.jpg')).convert()
background_rect = background.get_rect()

绘制任何精灵之前,在游戏循环的绘图部分绘制背景:

# Draw / render
screen.fill(BLACK)
screen.blit(background, background_rect)
all_sprites.draw(screen)

blit将一个图像的像素绘制到另一个图像的像素上 --- 背景图片绘制到屏幕上。现在背景看起来更好了:


精灵图片


为sprite加载图像:

# Load all game graphics
background = pygame.image.load(path.join(img_dir, "img_bg_level_2.jpg")).convert_alpha()
background_rect = background.get_rect()
player_img = pygame.image.load(path.join(img_dir, "plane.png")).convert_alpha()
meteor_img = pygame.image.load(path.join(img_dir, "air1.png ")).convert_alpha()
bullet_img = pygame.image.load(path.join(img_dir, "bullet.png")).convert_alpha()

从Player开始 - 想要替换那个绿色矩形,所以改变了self.image,不要忘记删除image.fill(GREEN)

class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = player_img
        self.rect = self.image.get_rect()


但是,现在看到了一些问题。首先,图像比想象的要大很多。有两个选择:1)在图形编辑器(Photoshop,GIMP等)中打开图像并调整其大小; 或者2)利用代码调整图像大小。将选择选项2,使用Pygame的transform.scale()命令使图像大小缩小到50x30像素。

另一个问题是船周围有一个黑色矩形,因为没有设置透明颜色set_colorkey

self.image = pygame.transform.scale(player_img, (50, 38))
self.image.set_colorkey(BLACK)


BulletMob 类似的做法,最终:

image.png


项目源码及资源


获取地址


目录
相关文章
|
1月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
|
2月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14
|
2月前
|
人工智能 算法 图形学
总有一个是你想要的分享40个Python游戏源代码
这是一系列基于Python开发的游戏项目集合,包括中国象棋、麻将、足球、坦克大战、扑克等多种类型游戏,运用了Pygame等库实现图形界面与AI算法。此外还包含迷宫、数独、推箱子等益智游戏及经典游戏如《仙剑奇侠传二战棋版》和《星露谷物语》的Python版本,适合编程学习与娱乐。
106 11
|
1月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
70 0
|
2月前
|
消息中间件 数据采集 数据库
庆祝吧!Python IPC让进程间的合作,比团队游戏还默契
【9月更文挑战第7天】在这个数字化时代,软件系统日益复杂,单进程已难以高效处理海量数据。Python IPC(进程间通信)技术应运而生,使多进程协作如同训练有素的电竞战队般默契。通过`multiprocessing`模块中的Pipe等功能,进程间可以直接传递数据,无需依赖低效的文件共享或数据库读写。此外,Python IPC还提供了消息队列、共享内存和套接字等多种机制,适用于不同场景,使进程间的合作更加高效、精准。这一技术革新让开发者能轻松应对复杂挑战,构建更健壮的软件系统。
36 1
|
3月前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。
|
Python Windows Linux
Python pygame如何安装?
Python pygame如何安装? 很多小伙伴各处找资料,花了很长时间也没有解决,所以我把自己学习的一点东西分享出来,供大家参考,有问题欢迎大家在下方提问.
1673 0
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!