抖音上的小句子

且君子之交淡若水,小人之交甘若醴;君子淡以亲,小人甘以绝。

飞鸟尽,良弓藏;狡兔死,走狗烹.

去做自己喜欢的事,因为不快乐才是最累的.

与其做只一无所有的舔狗,不如高傲的做只孤狼.

再难也要坚持,再好也要淡泊.再差也要自信,再多也要节省.

面对爱情努力争取,但不强求.

面对矛盾让步妥协,但保有原则.

爱情才是包容与拖鞋的前提.

命是弱者的借口,运是强者的谦辞.

所谓的性格不合,只是不爱的借口.

我只顾喜欢,却忘了不合适.

你只是一句玩笑.我却配上了整个青春.

希望你过得比谁都好,希望我永远不知道.

我与世界,只差一个人,因为是你晚点没关系.

学习的正真意义,是改变一个人的心智.

不学习是一个人,学习则会变成另一个人.

烦什么? 这不是你梦寐以求的长大吗?

你还年轻,你会走得很远.而不努力,就会永远呆在这里.

有钱还用追求才华? 若非生活所迫,谁愿意把自己弄得一身才华.

后来你不在年少轻狂,不想喝的酒,你先干为敬,不想见的人,你笑脸相迎.

学习,会让自己脱胎换骨,知识,让我们改变命运.

通过改变一个人的根本心智,驱动他走向另一番人生.

自己的勤奋,未来会给自己带来更多的眼界,更多的视角,更多的机会.

善良是比聪明更难得的是,因为聪明是一种天赋,而善良是一种选择.

你的眼睛可真好看,里面有晴雨,日月,山川,但我的眼睛更好看,因为我的眼里有你.

要求你读书用功,不是想要你跟别人比成就,而是因为希望你将来拥有选择的权利,选择有意义 有时间的工作,而不是被迫谋生.

始于颜值,陷于才华,忠于人品,痴于肉体,最终折于物质,败于现实.

我步入丛林,因为我希望生活有意义.我希望获得深刻,吸取生命中所有精华,把非生命的一切都击溃.以免当我生命终结,发现终结从没有活过.

是在下无能,只能做到喜欢你,却不能让你喜欢.撩的那个人是你,先动心的是我,有本事是喜欢你,却没本事让你喜欢我.

向上的路,其实并不拥挤.拥挤时因为,大部分选择了安逸.

不管基因对人早起的影响有多大,你都要相信环境,教育与学习,都会以特有的持续不断的方式.在基因的底色上一层层的添加与覆盖,.最终塑造出你成长的样子.

年轻的时候,你想要的东西,年纪大了,你发现这不是你想要的.但是,你后来发现最大的宝贵财富,是经历了什么,你的经历才是最重要的.

如果有两个女孩,同样的漂亮,选择脸上有小小雀斑的那一个,因为这个小小的雀斑会让这个女孩多一份温柔,少一份骄傲.

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

<think>我们来实现一个上爆火的"计算机的浪漫"文字飞入屏幕的效果。这个效果通常是一段浪漫的文字,每个字符从屏幕底部随机位置飞入,最后组合成完整的句子,有时还带有心形符号和背景乐。 我们将使用Python的Pygame库来创建这个效果。以下是实现步骤: 1. 初始化Pygame,设置窗口大小和标题。 2. 定义要显示的文字内容,可以是一句浪漫的话。 3. 为每个字符创建一个对象,包含其位置、速度、目标位置等属性。 4. 在每一帧中,更新字符的位置(使其飞向目标位置),直到所有字符到达预定位置。 5. 渲染字符,并添加一些视觉效果(如渐变、旋转、心形图案等)。 代码实现如下: ```python import pygame import sys import random import math # 初始化pygame pygame.init() # 屏幕设置 WIDTH, HEIGHT = 800, 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("计算机的浪漫") # 颜色定义 BACKGROUND = (0, 0, 0) TEXT_COLOR = (255, 105, 180) # 粉红色 HEART_COLOR = (255, 0, 0) # 字体 font = pygame.font.SysFont('simhei', 48) # 使用黑体,如果系统没有,可以使用默认字体并指定中文字体文件 # 浪漫文字 text = "我爱你,直到世界的尽头!" # 计算每个字符的目标位置(居中显示) characters = [] for i, char in enumerate(text): # 整体文本的宽度 text_width = len(text) * 30 # 假设每个字符大约30像素宽 start_x = (WIDTH - text_width) // 2 target_x = start_x + i * 30 target_y = HEIGHT // 2 # 每个字符的初始位置在屏幕底部之外的随机位置 start_pos = (random.randint(0, WIDTH), HEIGHT + random.randint(20, 100)) # 速度向量指向目标位置,速度大小随机 dx = target_x - start_pos[0] dy = target_y - start_pos[1] distance = math.sqrt(dx*dx + dy*dy) speed = random.uniform(2, 5) # 单位向量乘以速度 velocity = [dx/distance * speed, dy/distance * speed] characters.append({ 'char': char, 'pos': list(start_pos), 'target': (target_x, target_y), 'velocity': velocity, 'arrived': False, 'color': (random.randint(200,255), random.randint(100,200), random.randint(180,255)) # 随机粉色系 }) # 添加一些心形 hearts = [] for _ in range(50): hearts.append({ 'pos': [random.randint(0, WIDTH), random.randint(-100, -10)], 'speed': random.uniform(1, 3), 'size': random.randint(5, 20), 'color': (random.randint(200,255), random.randint(0,100), random.randint(100,200)) }) # 主循环 clock = pygame.time.Clock() all_arrived = False running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: running = False # 更新字符位置 if not all_arrived: all_arrived = True for char in characters: if not char['arrived']: # 计算到目标的距离 dx = char['target'][0] - char['pos'][0] dy = char['target'][1] - char['pos'][1] distance = math.sqrt(dx*dx + dy*dy) if distance < 2: # 到达目标 char['arrived'] = True char['pos'] = list(char['target']) else: all_arrived = False # 继续移动 char['pos'][0] += char['velocity'][0] char['pos'][1] += char['velocity'][1] # 可以在这里添加一些到达目标后的弹性效果(可选) # 更新心形位置(飘落效果) for heart in hearts: heart['pos'][1] += heart['speed'] if heart['pos'][1] > HEIGHT: heart['pos'][1] = random.randint(-100, -10) heart['pos'][0] = random.randint(0, WIDTH) # 绘制 screen.fill(BACKGROUND) # 绘制心形背景 for heart in hearts: # 绘制一个简单的心形(使用两个圆和一个三角形) x, y = heart['pos'] size = heart['size'] color = heart['color'] # 使用多边形绘制心形(简化版) points = [ (x, y - size//2), (x - size, y + size//2), (x, y + size), (x + size, y + size//2), ] pygame.draw.polygon(screen, color, points) # 绘制字符 for char in characters: if char['arrived']: # 到达目标位置后,可以放大一下然后恢复(心跳效果) # 这里省略了动画,直接绘制 text_surface = font.render(char['char'], True, char['color']) else: text_surface = font.render(char['char'], True, char['color']) screen.blit(text_surface, (char['pos'][0], char['pos'][1])) pygame.display.flip() clock.tick(60) pygame.quit() sys.exit() ``` ### 代码解释 1. **初始化**: - 设置窗口大小和标题。 - 定义背景色、文字颜色和字体。 2. **字符设置**: - 将文字分解为单个字符,并为每个字符设置目标位置(在屏幕中央水平排列)。 - 每个字符的初始位置在屏幕底部之外的随机位置。 - 计算每个字符到目标位置的方向向量,并设置速度(大小随机)。 3. **心形背景**: - 创建多个心形,从屏幕顶部随机位置向下飘落。 4. **主循环**: - 更新每个字符的位置,直到它们都到达目标位置(通过检查距离判断)。 - 更新心形的位置,实现飘落效果。 - 绘制背景、心形和字符。 ### 如何运行 1. 确保安装pygame:`pip install pygame` 2. 运行代码,将会看到文字从屏幕底部飞入,最后组成句子,同时有彩色心形背景飘落。 ### 扩展建议 1. 添加背景乐和效(字符飞入时的声)。 2. 增加字符到达目标位置后的动画(如放大缩小、旋转等)。 3. 使用更漂亮的心形图片代替绘制的多边形心形。 §§相关问题§§: 1. 如何在pygame中播放背景乐和效? 2. 如何实现字符飞入时的弹性效果(例如超过目标位置再返回)? 3. 如何使用图片代替字符实现更复杂的动画效果? 4. 如何让文字飞入效果支持多行显示? </think># 计算机的浪漫 - 文字飞入动画效果 以下是一个使用Python Pygame实现的"文字屏幕飞"特效,模拟上爆火的计算机浪漫效果。文字会从屏幕顶部飞入,随机旋转、缩放并改变颜色,最后组成浪漫的句子。 ```python import pygame import sys import random import math # 初始化pygame pygame.init() # 屏幕设置 WIDTH, HEIGHT = 800, 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("计算机的浪漫 - 文字屏幕飞") # 颜色定义 BACKGROUND = (0, 0, 20) # 深蓝色背景 COLORS = [ (255, 105, 180), # 粉红 (255, 20, 147), # 深粉红 (255, 215, 0), # 金色 (0, 255, 255), # 青色 (138, 43, 226), # 紫罗兰 (30, 144, 255), # 道奇蓝 ] # 浪漫文字列表 ROMANTIC_TEXT = [ "遇见你是偶然的", "喜欢你是自然的", "爱上你是毅然的", "得到你是欣然的", "伴你一生是必然的", "❤️ 计算机的浪漫 ❤️" ] # 文字类 class FlyingText: def __init__(self, text): self.text = text self.font_size = random.randint(30, 60) self.font = pygame.font.SysFont('simhei', self.font_size) # 使用黑体,支持中文 self.x = random.randint(-100, WIDTH + 100) self.y = random.randint(-100, -50) self.speed = random.uniform(2, 5) self.angle = random.uniform(-30, 30) self.color = random.choice(COLORS) self.target_y = random.randint(100, HEIGHT - 100) self.rotation_speed = random.uniform(-2, 2) self.scale = 0.1 self.target_scale = random.uniform(0.8, 1.2) self.rotation = random.uniform(0, 360) self.alpha = 0 self.state = "flying" # flying, assembling, assembled self.assembling_time = 0 self.target_x = WIDTH // 2 - self.font.size(text)[0] // 2 self.final_y = HEIGHT // 2 + len(ROMANTIC_TEXT) * 40 def update(self): if self.state == "flying": # 飞入阶段 self.y += self.speed self.rotation += self.rotation_speed self.scale = min(self.scale + 0.01, 1.0) self.alpha = min(self.alpha + 3, 255) # 接近目标位置时切换到组装阶段 if self.y > self.target_y: self.state = "assembling" self.original_x = self.x self.original_y = self.y self.assembling_time = 0 elif self.state == "assembling": # 组装到最终位置 self.assembling_time += 1 progress = min(self.assembling_time / 60, 1.0) # 贝塞尔曲线运动 progress = progress * progress * (3 - 2 * progress) self.x = self.original_x + (self.target_x - self.original_x) * progress self.y = self.original_y + (self.final_y - self.original_y) * progress self.rotation = (1 - progress) * self.rotation if progress >= 1.0: self.state = "assembled" def draw(self, surface): text_surface = self.font.render(self.text, True, self.color) # 应用透明度 text_surface.set_alpha(self.alpha) # 旋转和缩放 if self.rotation != 0 or self.scale != 1.0: rotated_surface = pygame.transform.rotozoom(text_surface, self.rotation, self.scale) surface.blit(rotated_surface, (self.x - rotated_surface.get_width() // 2, self.y - rotated_surface.get_height() // 2)) else: surface.blit(text_surface, (self.x - text_surface.get_width() // 2, self.y - text_surface.get_height() // 2)) # 心形粒子效果 class HeartParticle: def __init__(self): self.x = random.randint(0, WIDTH) self.y = random.randint(0, HEIGHT) self.size = random.randint(5, 20) self.speed = random.uniform(0.5, 2) self.angle = random.uniform(0, 2 * math.pi) self.color = random.choice(COLORS) self.alpha = random.randint(100, 255) self.lifetime = random.randint(100, 200) def update(self): self.x += math.cos(self.angle) * self.speed self.y += math.sin(self.angle) * self.speed self.lifetime -= 1 if self.lifetime <= 0: self.alpha = max(0, self.alpha - 5) def draw(self, surface): if self.alpha > 0: # 绘制简单的心形 heart_points = [ (self.x, self.y - self.size//2), (self.x - self.size, self.y + self.size//2), (self.x, self.y + self.size), (self.x + self.size, self.y + self.size//2), ] heart_surface = pygame.Surface((self.size*2, self.size*2), pygame.SRCALPHA) pygame.draw.polygon(heart_surface, (*self.color, self.alpha), heart_points) surface.blit(heart_surface, (self.x - self.size, self.y - self.size)) # 创建文字对象 text_objects = [FlyingText(text) for text in ROMANTIC_TEXT] # 创建心形粒子 particles = [HeartParticle() for _ in range(50)] # 主循环 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_ESCAPE: running = False elif event.key == pygame.K_SPACE: # 空格键重置动画 text_objects = [FlyingText(text) for text in ROMANTIC_TEXT] # 填充背景 screen.fill(BACKGROUND) # 绘制背景星星 for _ in range(3): x = random.randint(0, WIDTH) y = random.randint(0, HEIGHT) size = random.randint(1, 3) brightness = random.randint(100, 200) pygame.draw.circle(screen, (brightness, brightness, brightness), (x, y), size) # 更新和绘制心形粒子 for particle in particles[:]: particle.update() if particle.alpha <= 0: particles.remove(particle) particles.append(HeartParticle()) particle.draw(screen) # 更新和绘制文字 all_assembled = True for i, text_obj in enumerate(text_objects): text_obj.final_y = HEIGHT // 2 - 100 + i * 40 text_obj.update() if text_obj.state != "assembled": all_assembled = False text_obj.draw(screen) # 添加新的心形粒子 if all_assembled and random.random() < 0.2: particles.append(HeartParticle()) # 显示提示信息 font = pygame.font.SysFont('simhei', 20) hint = font.render("按空格键重新播放动画", True, (200, 200, 200)) screen.blit(hint, (WIDTH // 2 - hint.get_width() // 2, HEIGHT - 30)) pygame.display.flip() clock.tick(60) pygame.quit() sys.exit() ``` ## 代码功能详解 ### 1. 文字飞入效果 (`FlyingText`类) - **随机位置生成**:文字从屏幕上方随机位置开始飞入 - **旋转与缩放**:文字在飞行过程中随机旋转和缩放 - **渐显效果**:文字从透明逐渐变为不透明 - **贝塞尔曲线运动**:文字以平滑曲线飞向最终位置 - **三阶段动画**: 1. **飞行阶段**:文字从屏幕外飞入 2. **组装阶段**:文字移动到屏幕中央位置 3. **完成阶段**:文字固定位置显示 ### 2. 心形粒子效果 (`HeartParticle`类) - **随机心形粒子**:屏幕上随机生成彩色心形 - **运动效果**:心形以随机角度移动 - **生命周期**:每个心形有生命周期,逐渐消失 - **透明度变化**:心形在消失前逐渐变为透明 ### 3. 背景效果 - **星空背景**:随机绘制小圆点模拟星空 - **深蓝色背景**:提供深邃的视觉效果 ### 4. 交互功能 - **空格键重置**:按空格键可以重新播放整个动画 - **ESC退出**:按ESC键退出程序 ## 如何运行 1. 确保安装Python和Pygame库:`pip install pygame` 2. 运行代码,将看到浪漫文字从屏幕顶部飞入 3. 文字会旋转、缩放、改变颜色,最终在屏幕中央组成浪漫句子 4. 文字组成后,会有彩色心形粒子在屏幕上飘动 ## 自定义选项 1. 修改`ROMANTIC_TEXT`列表可以更改显示的文字 2. 调整`COLORS`列表可以改变文字和心形的颜色 3. 修改`BACKGROUND`变量可以更改背景色 4. 调整`text_objects`中各元素的参数可以改变动画速度、大小等效果
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MemroyErHero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值