猫史档案馆


【Python作品分享】pygame_helper

用户:兴奋的木叶龙mC2兴奋的木叶龙mC2查看:2 回复:2 评论:2 创建时间:2021-08-06T14:33:49


【作品展示】

center_image

 

【作品介绍】

这是一个模块

这是一个pygame的辅助模块

将pygame几个常用函数结合到此模块的函数中

可以缩短代码量,有助你进行python game编程

 

【作品源代码】

import sys,random,time,datetime
try:
               import pygame
except ImportError:
               print("请先下载pygame模块")
               sys.exit()
from pygame.locals import *
pygame.init()
update=pygame.display.update
set_mode=pygame.display.set_mode
set_caption=pygame.display.set_caption
now_time=datetime.datetime.now
wait=time.sleep
print("本模块导入了sys,random,time,datetime,pygame模块,以及pygame.locals里所有内容。/n使用前,请先创建一个窗口(可以用fit_window()创建)。若需要帮助请调用help(),再输入mypygame+回车")
class colors:
               black=(0,0,0)
               so_dark_grey=(30,30,30)
               dark_grey=(80,80,80)
               grey=(122,122,122)
               light_grey=(230,230,230)
               so_light_grey=(250,250,250)
               white=(255,255,255)
               brown=(122,122,0)
               red=(255,0,0)
               orange=(255,122,0)
               light_yellow=(255,255,122)
               yellow=(255,255,0)
               green=(0,255,0)
               dark_green=(0,122,0)
               light_green=(0,122,0)
               ching=(0,255,255)
               dark_blue=(0,0,122)
               blue=(0,0,255)
               light_blue=(122,122,255)
               dark_purple=(122,0,122)
               purple=(122,0,122)
               pink=(255,0,255)
def fill(window,color):
               '''填充窗口'''
               window.fill(color)
               pygame.display.update()
def KeyCheck(key='any'):
               '''如果参数为any按下任意键返回True'''
               if key=='any':
                           key=pygame.key.get_pressed()
                           for i in key:
                                             if i:
                                                            return True
               elif key!='any':
                              keys=pygame.key.get_pressed()
                              if keys[key]:
                                             return True
                              else:
                                             return False
def Key():
               '''返回按下的键的ASCLL码'''
               for event in pygame.event.get():
                              if event.type == (KEYDOWN):
                                             return pygame.event.get(KEYDOWN)
def CheckQUIT():
               '''如果QUIT事件响应,终止程序'''
               if len(pygame.event.get(QUIT))>0:
                              pygame.quit()
                              sys.exit()
def Quit():
               '''直接退出程序'''
               pygame.quit()
               sys.exit()
               pygame.init()
class Draw:
               def line(window,color,startcoords,endcoords,width=5):
                              '''画线'''
                              pygame.draw.line(window,color,startcoords,endcoords,width)
                              pygame.display.update()
               def rect(window,x,y,height,width,color):
                              '''画方形'''
                              rect1=pygame.Rect(x,y,width,height)
                              pygame.draw.rect(window,color,rect1)
                              pygame.display.update()
               def circle(window,color,coords,radius,width=None):
                              '''在指定的中心点画圆,如果width为none,画实心圆'''
                              if width:
                                        pygame.draw.circle(window,color,coords,radius,width)     
                              elif not width:
                                        pygame.draw.circle(window,color,coords,radius)
                              update()
               def arc(window,color,x,y,width,height,start,end,width1=None):
                              '''画弧形,width为宽,width1为边长'''
                              from math import radians
                              if width1:
                                             pygame.draw.arc(window,color,(x,y,width,height),radians(start),radians(end),width1)     
                              elif not width1:
                                             pygame.draw.arc(window,color,(x,y,width,height),radians(start),radians(end))
                              pygame.display.update()
               def crect(window,x,y,height,width,color):
                              '''在指定的中心点画方形'''
                              rect1=pygame.Rect(x-width//2,y-height//2,width,height)
                              pygame.draw.rect(window,color,rect1)
                              pygame.display.update()
               def cloadpic(window,picobject,x,y,width=100,height=100,angle=0,auto=True):
                              '''在指定的中心点加载图片,如果auto为True,按图片大小加载,否则按用户的设置加载'''
                              space=pygame.image.load(str(picobject)).convert_alpha()
                              nspace=pygame.transform.rotate(space,angle)
                              w,h=nspace.get_size()
                              if auto:
                                             window.blit(nspace,(x-w//2,y-h//2))
                                             update()
                              if auto==False:
                                             nnspace=pygame.transform.喵oothscale(nspace,(width,height))
                                             window.blit(nnspace,(x-width//2,y-height//2))
                                             update()
               def loadpic(window,picobject,x,y,width=100,height=100,angle=0,auto=True):
                              '''加载图片,如果auto为True,按图片大小加载,否则按用户的设置加载'''
                              space=pygame.image.load(str(picobject)).convert_alpha()
                              nspace=pygame.transform.rotate(space,angle)
                              if auto:
                                             window.blit(nspace,(x,y))
                                             update()
                              if auto==False:
                                             nnspace=pygame.transform.喵oothscale(nspace,(width,height))
                                             window.blit(nnspace,(x,y))
                                             update()  
def Systext(window,size,text,color,centerx,centery,filename=None,backcolor=None,angle=0):
               '''在指定的中心点打印文字'''
               font=pygame.font.SysFont(None,size)
               if backcolor != None:
                              text=font.render(str(text),True,pygame.Color(color),pygame.Color(backcolor))
               else:
                              text=font.render(str(text),True,pygame.Color(color))
               content=pygame.transform.rotate(text,angle)
               rect=content.get_rect()
               rect.center=(centerx,centery)
               window.blit(content,rect)
               pygame.display.update()
def printtext(window,size,text,color,x,y,filename=None,backcolor=None,angle=0):
               '''打印文字'''
               font=pygame.font.SysFont(None,size)
               if backcolor != None:
                              text=font.render(str(text),True,pygame.Color(color),pygame.Color(backcolor))
               else:
                              text=font.render(str(text),True,pygame.Color(color))
               content=pygame.transform.rotate(text,angle)
               rect=content.get_rect()
               rect.topleft=(x,y)
               window.blit(content,rect)
               pygame.display.update()               
def fit_tuple(tup,key,newkey):
               '''修改元祖'''
               list1=list(tup)
               list1[int(key)]=newkey
               list2=tuple(list1)
               return list2
def mouse_px():
               '''鼠标的x坐标'''
               return pygame.mouse.get_pos()[0]
def mouse_py():
               '''鼠标的y坐标'''
               return pygame.mouse.get_pos()[1]
def m_right():
               '''鼠标的右键是否按下'''
               return pygame.mouse.get_pressed()[2]
def m_middle():
               '''鼠标的滚轮是否按下'''
               return pygame.mouse.get_pressed()[1]
def m_left():
               '''鼠标的左键是否按下'''
               return pygame.mouse.get_pressed()[0]
def mouse_r():
               '''鼠标的相对移动'''
               return pygame.mouse.get_rel()[0]
def list_str(listobject,sep="\n"):
               '''列表转字符串'''
               s=""
               for i in listobject:
                              s+=(str(i)+sep)
               return s
def fit_window(x,y,title='python game',color=colors.white):
               '''创建窗口,返回这个窗口'''
               window=set_mode((x,y))
               set_caption(str(title))
               fill(window,color)
               return window

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
wwwloadwwwload

try:的缩进是不是太多了

点赞0


评论


兴奋的木叶龙mC2兴奋的木叶龙mC2

emmmmm……只要能正常运行就好了,这也只是最初版本,新版出了3个月了

点赞0


评论