baseImage.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # -*- coding: UTF-8 -*-
  2. import pygame
  3. import os
  4. import sys
  5. import time
  6. import abc
  7. from PIL import Image
  8. #从模式RGB转换为“L”模式时按照下面的公式转换的L = R*299/1000 + G*578/1000 + B*114/1000
  9. #https://blog.csdn.net/misaka_s/article/details/76668511
  10. class BaseImage(object):
  11. """在背景屏幕打印一个图片打基础"""
  12. def __init__(self,bgScreen):
  13. try:
  14. self.imageName = self.imageName
  15. except AttributeError as e:
  16. #error:has not attribute
  17. self.imageName = "./images/bomb-2.gif"
  18. #打开图像文件。不想检测错误了
  19. self.img = Image.open(self.imageName)
  20. #获取图片的尺寸
  21. self.imgWidth = self.img.width
  22. self.imgHeight = self.img.height
  23. #设置要显示内容打窗口
  24. self.bScreen = bgScreen
  25. self.imageScreen = pygame.image.load(self.imageName).convert()
  26. #显示图片
  27. def display(self):
  28. self.bScreen.screen.blit(self.imageScreen,(self.x,self.y))
  29. #向左
  30. def moveLeft(self,speed=10):
  31. if self.x > (speed - 10 -self.imgWidth/2):
  32. self.x -= speed
  33. else:
  34. self.x = spped - 10 - self.imgWidth/2
  35. #向右
  36. def moveRight(self,speed=10):
  37. if self.x < (self.bScreen.x - speed - self.imgWidth/2):
  38. self.x += speed
  39. else:
  40. self.x = self.bScreen.x - speed - self.imgWidth/2
  41. #向上
  42. def moveUp(self,speed=10):
  43. if self.y > speed:
  44. self.y -= speed
  45. else:
  46. self.y = 0
  47. #向下
  48. def moveDown(self,speed=10):
  49. if self.y < (self.bScreen.y - self.imgHeight - speed):
  50. self.y += speed
  51. else:
  52. self.y = self.bScreen.y - self.imgHeight