猫史档案馆


看看这段代码

用户:Larry0601Larry0601查看:0 回复:0 评论:0 创建时间:2020-05-31T10:29:23


# encoding=UTF-8
import pygame,sys
from pygame.locals import *

class TankMain(object):
    """弹出喵大战的主窗口"""
    width=600
    height=500
    # 开始游戏的方法
    def start_game(self):
        # pygame模块初始化,加载系统资源(如系统的字体)
        pygame.init()
        screen=pygame.display.set_mode((TankMain.width,TankMain.height),0,32)
        #给窗口设置一个标题
        pygame.display.set_caption('喵大战')
        my_tank=MyTank(screen)
        while True:
            #color RGB(255,255,255)
            screen.fill((0,0,0))
            screen.blit(self.write_text(),(0,5))
            self.get_event(my_tank)
            my_tank.display()
            pygame.display.update()

    def get_event(self,my_tank):
        for event in pygame.event.get():
            if event.type == QUIT:
                self.stop_game()
            if event.type == KEYDOWN:
                if event.key == K_LEFT or event.key==K_a:
                    my_tank.directon='L'
                    my_tank.move()
                if event.key == K_UP or event.key==K_w:
                    my_tank.directon = 'U'
                    my_tank.move()
                if event.key == K_DOWN or event.key==K_s:
                    my_tank.directon = 'D'
                    my_tank.move()
                if event.key == K_RIGHT or event.key==K_d:
                    my_tank.directon='R'
                    my_tank.move()
                if event.key == K_ESCAPE:
                    self.stop_game()

    # 关闭游戏的方法
    def stop_game(self):
        sys.exit()

    def write_text(self):
        font=pygame.font.SysFont('方正兰亭超细黑简体',20)#定义一个字体
        text_sf=font.render('敌方喵数量为:5',True,(255,0,0))#根据字体创建一个文字的图像
        return text_sf

class BaseItem(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)


class Tank(BaseItem):
    width = 50
    height = 50
    def __init__(self,screen,left,top):
        super().__init__()
        self.screen=screen#喵在移动中需要用到当前游戏的屏幕窗口
        self.direction='U'#喵的方向,默认向下
        self.speed=5# 喵移动的速度
        self.images={}#喵的所有图片
        self.images['L']=pygame.image.load('tankwar-images/mytankL.gif')
        self.images['R']=pygame.image.load('tankwar-images/mytankR.gif')
        self.images['D']=pygame.image.load('tankwar-images/mytankD.gif')
        self.images['U']=pygame.image.load('tankwar-images/mytankU.gif')
        self.image=self.images[self.direction]#喵的图片由方向决定
        self.rect=self.image.get_rect()
        self.rect.left=left
        self.rect.top=top

    def display(self):
        self.image=self.images[self.direction]# 这里如果不定义,那么喵的方向永远保持默认向下
        self.screen.blit(self.image,self.rect)

    def move(self):
        pass
    def fire(self):
        pass
class MyTank(Tank):
    def __init__(self,screen):
        super().__init__(screen,275,400)
    def move(self):
        if self.direction=='L':
            if self.rect.left>0:
                self.rect.left-=self.speed
            else:
                self.rect.left=0
        elif self.direction=='R':
            if self.rect.righttanke<TankMain.width:
                self.rect.right+=self.speed
            else:
                self.rect.right=TankMain.width
        elif self.direction=='U':
            if self.rect.top>0:
                self.rect.top-=self.speed
            else:
                self.rect.top=0
        elif self.direction=='D':
            if self.rect.bottom<TankMain.height:
                self.rect.bottom+=self.speed
            else:
                self.rect.bottom=TankMain.height


game = TankMain()
game.start_game()


回复

上一页1 页 / 共 0下一页