• python pygame做成的第一个真的意义上的游戏!


    #-*- coding:utf-8 -*-
    import  pygame , sys
    from pygame.locals import *
    
    class Myballclass(pygame.sprite.Sprite):
        def __init__(self,image_file,speed,location):
            pygame.sprite.Sprite.__init__(self)
            self.image = pygame.image.load(image_file)
            self.rect = self.image.get_rect()
            self.rect.left, self.rect.top = location
            self.speed = speed
    
        def move(self):
            self.rect = self.rect.move(self.speed)
            if self.rect.left < 0 or self.rect.right > screen.get_width():
                self.speed[0] = -self.speed[0]
            if self.rect.top <= 0 :
                self.speed[1] = -self.speed[1]
            
        def over(self):
            self.rect=self.rect.move(self.speed)
            if self.rect.bottom>screen.get_height():
                font =pygame.font.SysFont("宋体",40)
                text_surface=font.render(u"GAME OVER",True,(0,0,255))
                screen.blit(text_surface,(320,240))
    
                return 0
          
            
    class Mypaddleclass(pygame.sprite.Sprite):
        def __init__(self, location):
            pygame.sprite.Sprite.__init__(self)
            image_surface = pygame.surface.Surface([100, 20])
            #控制蓝色标签的大小
            image_surface.fill([213,213,123])
            #控制颜色
            self.image = image_surface.convert()
    
            self.rect = self.image.get_rect()
            self.rect.left, self.rect.top = location
    
    pygame.init()
    screen = pygame.display.set_mode([1280,960])
    background=pygame.image.load("6.jpg").convert()
    clock = pygame.time.Clock()
    ball_speed = [4, -4]
    score=0
    #控制移方向的,参数为正时并且越大的移动越快t
    #最后一个参数控制图像初始位置的
    myball = Myballclass('5.png', ball_speed, [10,50])
    ballgroup = pygame.sprite.Group(myball)
    paddle = Mypaddleclass([270,400])
    #控制蓝色标签的初始位置
    time=20
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.MOUSEMOTION:
                paddle.rect.centerx = event.pos[0]
        if pygame.sprite.spritecollide(paddle, ballgroup, 0):
            myball.speed[1] = -myball.speed[1]
            time=time+1
            score=score+10 
        clock.tick(time)
    
        screen.fill([255,255,255])
        font =pygame.font.SysFont("宋体",40)
        text_surface=font.render(u'分数'+str(score),True,(0,0,255))
        screen.blit(text_surface,(32,24))
        
        #open()参数的用法a+连续写入不覆盖,r+写入最后一个,w+写入的内容全覆盖
        scorefile=open('a.txt','r+')
        for a in scorefile.readline(10):
            text_surface1=font.render(u'最高记录   '+str(a),True,(0,0,255))    
            screen.blit(text_surface1,(320,24))
            print "woqu"
            print a
            print "nima"
            print score
            if (a<score):
                print a
                print a*a
                print score
                scorefile.flush()
                scorefile.writelines(str(score))
        
        scorefile.close()
        myball.move()
        myball.over()
        screen.blit(myball.image, myball.rect)
        screen.blit(paddle.image, paddle.rect)
        pygame.display.flip()
    

    这个是一个接物游戏!接到之后速度不断变快,直到接不住为止

  • 相关阅读:
    Oracle Core 学习笔记二 Transactions 和 Consistency 说明
    Oracle AUTO_SPACE_ADVISOR_JOB 说明
    Windows 下 ftp 上传文件 脚本
    Oracle 11g 中 Direct path reads 特性 说明
    Linux 使用 wget 下载 Oracle 软件说明
    Oracle 10g read by other session 等待 说明
    Oracle 11g RAC INS06006 Passwordless SSH connectivity not set up between the following node(s) 解决方法
    SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
    Oracle RAC root.sh 报错 Timed out waiting for the CRS stack to start 解决方法
    Oracle RESETLOGS 和 NORESETLOGS 区别说明
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3262893.html
Copyright © 2020-2023  润新知