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()

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个使用 PythonPygame 模块制作的非常简单的小游戏示例,这个游戏是“打字游戏”: 首先需要安装 Pygame 模块,可以使用 pip 命令进行安装: ``` pip install pygame ``` 然后创建一个 Python 文件,将以下代码复制进去: ```python import pygame import random # 初始化 Pygame pygame.init() # 设置游戏窗口大小和标题 screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("打字游戏") # 设置游戏字体 font = pygame.font.SysFont("arial", 36) # 设置游戏文字和颜色 text = "abcdefghijklmnopqrstuvwxyz" colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)] # 设置游戏参数 speed = 5 score = 0 # 游戏主循环 while True: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() # 生成一个随机字母 letter = random.choice(text) # 绘制字母和分数 screen.fill((255, 255, 255)) letter_surface = font.render(letter, True, random.choice(colors)) screen.blit(letter_surface, (screen_width/2, screen_height/2)) score_surface = font.render("分数:" + str(score), True, (0, 0, 0)) screen.blit(score_surface, (10, 10)) pygame.display.update() # 移动字母 letter_rect = letter_surface.get_rect(center=(screen_width/2, screen_height/2)) letter_rect = letter_rect.move(random.randint(-speed, speed), random.randint(-speed, speed)) # 检测用户输入 keys = pygame.key.get_pressed() if keys[pygame.K_ESCAPE]: pygame.quit() exit() elif keys[pygame.key.key_code(letter)]: score += 1 speed += 1 ``` 这个小游戏很简单,屏幕上会不断出现随机字母,用户需要按下键盘上对应的字母来获得分数,同时随机字母的速度会不断增加,直到用户按下 ESC 键退出游戏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值