注:本题目为书籍 Python 编程 从入门到实践 练习题


1. 流程图


2. 程序

2.1 屏幕参数

import pygameclass StarSettings:def __init__(self):# 屏幕设置self.screen_width = 1000self.screen_height = 600self.bg_color = (255, 255, 255)

2.2 图片参数设置

import pygame
from pygame.sprite import Spriteclass StarImages(Sprite):def __init__(self, image_attr):super().__init__()  #继承Sprite类self.screen = image_attr.screenself.settings = image_attr.settingsself.screen_rect = image_attr.screen.get_rect() #屏幕尺寸self.image = pygame.image.load("images/star.bmp")self.rect = self.image.get_rect()   #图片尺寸self.rect.x = self.rect.width   #初始位置self.rect.y = self.rect.height# self.rect.x = 0# self.rect.y = 0# self.x = float(self.rect.x)

2.3 显示部分参数设置

import sys
import pygame
from star_settings import StarSettings
from star_figure import StarImagesclass StarMain:def __init__(self):pygame.init()self.settings = StarSettings()self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))pygame.display.set_caption("Star Display")self.star_images = pygame.sprite.Group()self._create_images()def star_display(self):while True:self._check_events()self._update_screen()def _check_events(self):  # 辅助方法for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_q:sys.exit()def _update_screen(self):#每次循环都重绘屏幕self.screen.fill(self.settings.bg_color)    #填充颜色self.star_images.draw(self.screen)# 让最近绘制的屏幕可见pygame.display.flip()def _create_images(self):my_image = StarImages(self)image_width, image_height = my_image.rect.sizeavailable_space_x = self.settings.screen_width - (2 * image_width)number_image_x = available_space_x // (2 * image_width)available_space_y = self.settings.screen_height - (2 * image_height)number_rows = available_space_y // (2 * image_height)for all_row in range(number_rows):for num_image in range(number_image_x):self._create_one_image(num_image, all_row)def _create_one_image(self, image_num, row_num):image_attr = StarImages(self)image_width, image_height = image_attr.rect.sizeimage_attr.x = image_width + 2 * image_width * image_numimage_attr.rect.x = image_attr.ximage_attr.rect.y = image_attr.rect.height + 2 * image_attr.rect.height * row_numself.star_images.add(image_attr)if __name__ == '__main__':star = StarMain()star.star_display()

3. 附录

3.1 图片

下载链接:图片下载


4. 总结


主要学习 pygame 的应用,通过 Sprite 模块显示整齐排列的星星。先显示一颗星星,然后再通过循环创建星星阵列。


Python编程——星星: 找一副星星图像,并在屏幕上显示一系列排列整齐的星星相关推荐

  1. 80x86汇编语言 循环结构 找出最小的偶数并在屏幕上显示 求出数组的平均值显示在屏幕上

    题目1 写一个完整的80X86汇编语言程序:键盘输入15个数据(转换成数值,存储到一维数组中,数值的长度为字),找出最小的偶数并在屏幕上显示,若没有偶数则显示"没有偶数!". .d ...

  2. python编程认证找工作时有什么作用?

    python编程认证找工作时有什么作用? [导语]近年来,python编程在越来越火爆,不少人纷纷转行投身于python编程,因为python相对来说比较简单易学,对于零基础的人来说比较容易上手,竞争 ...

  3. 图像绘制到屏幕上的原理。

    转载文章: 文章原地址:http://objccn.io/issue-3-1/ 一个像素是如何绘制到屏幕上去的?有很多种方式将一些东西映射到显示屏上,他们需要调用不同的框架.许多功能和方法的结合体.这 ...

  4. 汇编:采用顺序编程方法,实现在屏幕上显示大写字幕A

    运行环境:windows xp professional MASM6.15 EditPlus 第一种方法: ;采用顺序编程方法,实现屏幕上显示大写字母A..486 DATA SEGMENT USE16 ...

  5. 在屏幕上显示一个短句c语言编程,在屏幕上显示Hllo.ppt

    在屏幕上显示Hllo * * §2.1 在屏幕上显示Hello World 第2章 用C语言编写程序 用算例尽快进入编程 例2-1 在屏幕上显示一个短句: Hello World /* 显示" ...

  6. Python编程——火箭:编写一个游戏,开始时屏幕中央有一个火箭,而玩家可使用四个方向键上下左右移动火箭。请务必确保火箭不会移到屏幕外面。

    注:本题目为书籍 Python 编程 从入门到实践 练习题 1. 代码 1.1 设置部分: import pygameclass RocketSettings:def __init__(self):s ...

  7. python控制摄像头拍照_python+opencv+pyqt5控制摄像头在Qlabel上显示

    import cv2 import numpy as numpy from PIL import * import sys from PyQt5.QtWidgets import * from PyQ ...

  8. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)

    参考:基于STM32-Oled(IIC)的使用 作者:奋斗的小殷 发布时间: 2021-05-07 13:09:26 网址:https://blog.csdn.net/boybs/article/de ...

  9. Python编程:找出3~6位自幂数

    Python程序找出3~6位自幂数 自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身.(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自 ...

最新文章

  1. 09 Storage Structure and Relationships
  2. 五分钟体验SpringBoot+Skywalking
  3. 黑龙江智能车邀请赛中的单车比赛
  4. 学习 wxpython_序
  5. 解析一个C语言俄罗斯方块游戏,包你看了就会
  6. LeetCode 1287. 有序数组中出现次数超过25%的元素
  7. 关于java垃圾回收器(GC)的一些基础知识
  8. android 录像 源代码,android安卓视频录制摄像拍摄源码(测试可用)
  9. 金字塔c_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解
  10. php 数组 indexof,详解js中字符串和数组的indexof方法
  11. mysql的财务视图_Mysql中的视图
  12. Android版简历(三)
  13. 思科模拟器叫什么_思科在过30年都证明了自己一直都是全球第一的网络公司
  14. 安卓逆向_6 --- Dalvik 字节码、Smali 详解
  15. Cookie和Session的使用及其案例分析
  16. 【LeetCode】初级算法:数组
  17. 三种安卓模拟器的安装和比较
  18. 辅助 Excel 的数据计算 add-ins
  19. 安装design compiler的教程
  20. php中对数组进行转码,PHP 数组转码

热门文章

  1. 正日计算机在线考试系统,正日考试系统对电脑是否有要求
  2. java练习题:在一组数组中去掉最大值和最小值,求平均值
  3. linux suse11 sp3安装,redis服务器安装-SuSE Linux Enterprise Server 11 SP3
  4. 得推校园O2O系统为校园创业提供技术支持
  5. C++ RTTI及“反射”技术
  6. matlab的simplify
  7. AUTOSAR知识点Com(十一):CANSM工具配置
  8. TI-RTOS Kernel(SYS/BIOS)---线程模块
  9. STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告)
  10. 硬盘容量计算公式为什么是这个【硬盘容量 = 磁柱数量 * 磁头数量 * 扇区数量 * 512Byte】