Python+Pygame实现代码雨动画效果

pygame实现代码雨动画

如视频所示 利用pygame库实现了一个代码呈雨状下落的视觉效果

部分代码如下

import sys
import random
import pygame
from pygame.locals import *

# 屏幕大小
WIDTH = 800
HEIGHT = 600
# 下落速度范围
SPEED = [15, 30]
# 字母大小范围
SIZE = [5, 30]
# CODE长度范围
LEN = [1, 8]

# 随机生成一个颜色
def randomColor():
	return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))

# 随机生成一个速度
def randomSpeed():
	return random.randint(SPEED[0], SPEED[1])

# 随机生成一个大小
def randomSize():
	return random.randint(SIZE[0], SIZE[1])

# 随机生成一个长度
def randomLen():
	return random.randint(LEN[0], LEN[1])

# 随机生成一个位置
def randomPos():
	return (random.randint(0, WIDTH), -20)

# 随机生成一个字符串
def randomCode():
	return random.choice('qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890')

# 定义代码精灵类
class Code(pygame.sprite.Sprite):
	def __init__(self):
		pygame.sprite.Sprite.__init__(self)
		self.font = pygame.font.Font('./font.ttf', randomSize())	# 随机字体大小
		self.speed = randomSpeed()			# 随机速度
		self.code = self.getCode()			# 随机长度
		self.image = self.font.render(self.code, True, randomColor())	# 使用已有的文本创建一个位图image,返回值为一个image  随机颜色
		self.image = pygame.transform.rotate(self.image, random.randint(87, 93))	# 讲图像随机旋转角度
		self.rect = self.image.get_rect()
		self.rect.topleft = randomPos()		# 随机位置

	def getCode(self):
		length = randomLen()
		code = ''
		for i in range(length):
			code += randomCode()
		return code
	def update(self):
		self.rect = self.rect.move(0, self.speed)
		if self.rect.top > HEIGHT:
			self.kill()

pygame.init()			# 初始函数,使用pygame的第一步
screen = pygame.display.set_mode((WIDTH, HEIGHT))	#生成主屏幕screen;第一个参数是屏幕大小
pygame.display.set_caption('Code Rain-居然')	# 窗口命名

	# 控制游戏绘制的最大帧率为30
	for event in pygame.event.get():
		if event.type == QUIT:
			pygame.quit()
			sys.exit(0)
	# screen.fill((1, 1, 1))					# 填充
	screen.fill((0, 0, 0))						# 填充背景颜色

	codeobject = Code()
	codesGroup.add(codeobject)				# 添加精灵对象
	codesGroup.update()
	codesGroup.draw(screen)
	pygame.display.update()

到此这篇关于Python+Pygame实现代码雨动画效果的文章就介绍到这了,更多相关Python Pygame代码雨内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果

    先看看JS+CSS+HTML实现"代码雨"类似黑客帝国文字下落最终效果: HTML代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/ok.css" rel="external nofo

  • C语言实现代码雨效果

    本文实例为大家分享了C语言实现代码雨效果的具体代码,供大家参考,具体内容如下 一.项目描述和最终的效果展示 项目:   让字符从上到下依次的下落,呈现出代码雨. 最终效果图如下所示: 二.静态的代码雨 代码如下: #include<graphics.h> #include<time.h> #include<conio.h> #define High 800//游戏画面 #define Width 1000 #define CharSize 25//每个字符显示的大小 i

  • Python实现屏幕代码雨效果的示例代码

    直接上代码 import pygame import random def main(): # 初始化pygame pygame.init() # 默认不全屏 fullscreen = False # 窗口未全屏宽和高 WIDTH, HEIGHT = 1100, 600 init_width, init_height = WIDTH, HEIGHT # 字块大小,宽,高 suface_height = 18 # 字体大小 font_size = 20 # 创建一个窗口 screen = pyga

  • HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)

    我们先看看HTML+JS实现"代码雨"的最终效果 1.绿色: 2.彩色: 3.背景色: 4.绿色逐渐变浅: 源代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Code -by ZhenYu.Sha</title>

  • python+pygame实现代码雨(黑客帝国既视感)

    本文主要介绍了python+pygame实现代码雨,分享给大家,具体如下: 效果: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/12/29 12:34 # @Author : huni # @File : 代码雨.py # @Software: PyCharm import random import pygame PANEL_width = 1600 PANEL_highly = 1000 FONT_PX = 15

  • Python+Pygame实现代码雨动画效果

    pygame实现代码雨动画 如视频所示 利用pygame库实现了一个代码呈雨状下落的视觉效果 部分代码如下 import sys import random import pygame from pygame.locals import * # 屏幕大小 WIDTH = 800 HEIGHT = 600 # 下落速度范围 SPEED = [15, 30] # 字母大小范围 SIZE = [5, 30] # CODE长度范围 LEN = [1, 8] # 随机生成一个颜色 def randomCo

  • pygame用blit()实现动画效果的示例代码

    pygame的的实现动画的方法有很多,但是都是围绕着表面进行的,也就是说实现动画的方式不同,但是本质其实都是对表面的不同处理方式而已. 原理其实很简单,有点像我们做地铁的时候隧道里的广告一样.我们设置一个窗口.然后让窗口在一个画着很多帧图像的图上面移动,当我们透过这个窗口去观察这幅图的时候,只要窗口沿着一个方向去运动,那么就会产生动画效果. 今天我介绍的是通过块传输的方法去实现. surface.blit(image,(x,y),rect)  在这里surface.blit()这个方法应该大家都

  • Python pygame项目实战英雄动画特效实现

    目录 1. 英雄的简单动画实现 2. 代码演示 1. 英雄的简单动画实现 需求: 在游戏初始化定义一个pygame.Rect的变量记录英雄的初始位置 在游戏循环中每次让英雄的y-1--向上移动(y值减1相当于向屏幕上方上移动1) y<=0将英雄移动到屏幕的底部 友情提示: 每一次调用update()方法之前,需要把所有的游戏图像都重新绘制一遍 而且应该最先重新绘制背景图像 2. 代码演示 案例大体思路概括: 在游戏循环上方,定义rect记录飞机的初始位置 在游戏循环内部,修改飞机位置:让飞机的y

  • Android实现红包雨动画效果

    本文介绍了Android实现红包雨动画效果,分享给大家,希望对大家有帮助 红包雨 关于实现上面红包雨效果步骤如下: 1.创建一个红包实体类 public class RedPacket { public float x, y; public float rotation; public float speed; public float rotationSpeed; public int width, height; public Bitmap bitmap; public int money;

  • Python实现新年愿望代码雨效果

    目录 1.引言 2.代码实战 2.1 模块介绍 2.2 代码示例 3.总结 1.引言 小丝:鱼哥,2023年了, 你有啥愿望啊? 小鱼:这, 我可以选择不告诉你吗? 小丝:可以选择不告诉我,但是,你自己憋着,不难受吗? 小鱼:… 我可以告诉别人吗? 小丝:… 还有谁能像我,认真听你的愿望. 小鱼:这2023年刚开始,你这是来给我添堵,故意的?? 小丝:既然你不想告诉我,那我也不勉强了,毕竟… 小鱼:你说话,说一半,留一半,不憋得难受吗? 小丝:习惯了, 反正, 我不难受,难受的就是别人! 小鱼:

  • 详解利用Python制作中文汉字雨效果

    直接上代码 import pygame import random def main(): # 初始化pygame pygame.init() # 默认不全屏 fullscreen = False # 窗口未全屏宽和高 WIDTH, HEIGHT = 1100, 600 init_width, init_height = WIDTH, HEIGHT # 字块大小,宽,高 suface_height = 18 # 字体大小 font_size = 20 # 创建一个窗口 screen = pyga

  • Python pygame 动画游戏循环游戏时钟实现原理

    目录 1. 游戏循环和游戏时钟 1.1 游戏中的动画实现原理 2. 游戏循环 3. 游戏时钟 1. 游戏循环和游戏时钟 之前几篇文章中,飞机大战游戏中的英雄飞机已经被绘制到屏幕上了,怎么能够让飞机移动呢? 1.1 游戏中的动画实现原理 跟电影的原理类似,游戏中的动画效果,本质上是快速的在屏幕上绘制图像 电影是将多张静止的电影胶片连接.快速的播放,产生连贯的视觉效果! 一般在电影上每秒绘制60次,就能够达到非常连续高品质的动画效果(相当于要每秒钟调用60次update效果) 每次绘制的结果被称为帧

随机推荐