当前位置:   article > 正文

Python刮刮乐效果._刮刮乐表情 生成 python

刮刮乐表情 生成 python

1.这里因为生成了一个随机数,通过随机数获得不同底层图片的前缀名(如 1.jpg ,2.jpg ,3.jpg等等),达到每次刮可能获得不同底层图片。(当然也可一直生成同一底层图片,即取消随机数)

先看效果:

2.关键代码(2处关键):

第一处是如何让一张图片在另一张图片上面,这里运用到了pygame.surface.blit(),刚好可以达到此时效果。

  1. draw_surface = pygame.Surface(image.get_size(), flags=pygame.SRCALPHA)
  2. draw_surface.blit(image_surface, (0, 0)) # blit 将一个图像绘制到另一个图像上方
  3. draw_surface.blit(mask_surface, (0, 0))

第二处是如何在表层达到刮刮乐效果,这里比较简单,直接运用擦除即可。

  1. for event in pygame.event.get():
  2. if event.type == pygame.MOUSEMOTION:
  3. if pygame.mouse.get_pressed()[0]: #鼠标左键
  4. # 在表层上绘制擦除线条 圆形
  5. pygame.draw.circle(mask_surface, (0, 0, 0, 0), event.pos, 30)

3.全部代码:

  1. import pygame
  2. import random
  3. # 初始化 Pygame
  4. pygame.init()
  5. a=random.randint(1,4) #可通过随机数获取随机图片
  6. mask_image = pygame.image.load("qs.jpg") #表层图片
  7. image = pygame.image.load(f"{a}.jpg") #底层图片
  8. # 创建屏幕和加载图片
  9. #屏幕大小根据实际修改
  10. screen = pygame.display.set_mode(image.get_size())
  11. # 将表层图片缩放至与底层图片相同大小
  12. mask_image = pygame.transform.scale(mask_image, image.get_size())
  13. # 转换表层和底层图片的表面类型为 alpha 模式 其实就是改变了透明度
  14. mask_surface = mask_image.convert_alpha()
  15. image_surface = image.convert_alpha()
  16. # 游戏主循环
  17. def main_loop():
  18. while True:
  19. for event in pygame.event.get():
  20. if event.type == pygame.MOUSEMOTION:
  21. if pygame.mouse.get_pressed()[0]: #鼠标左键
  22. # 在表层上绘制擦除线条 圆形
  23. pygame.draw.circle(mask_surface, (0, 0, 0, 0), event.pos, 30)
  24. if event.type == pygame.QUIT:
  25. pygame.quit()
  26. return
  27. # 将底部图片和表层图片绘制到 draw_surface 上
  28. draw_surface = pygame.Surface(image.get_size(), flags=pygame.SRCALPHA)
  29. draw_surface.blit(image_surface, (0, 0)) #image_surface blit 将一个图像绘制到另一个图像上方
  30. draw_surface.blit(mask_surface, (0, 0)) #mask_surface
  31. # 在屏幕上绘制合成后的表面
  32. screen.blit(draw_surface, (0, 0))
  33. pygame.display.flip()
  34. if __name__ == "__main__":
  35. main_loop()

4.素材

底层图片:

表层图片(原表层图片太大没法压缩,就随便放了一个图):

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/549584
推荐阅读
相关标签
  

闽ICP备14008679号