Escrito en Python pesca hasta

Escrito en Python pesca hasta

manera más caliente de hoy en escribir una pesca Python hasta efectos. En consecuencia es necesario decir que la brillante código ~~~

# coding:utf-8
# 导入模块
import pygame,sys,time,random
from pygame.locals import *
# 初始化pygame环境
pygame.init()
# 创建一个长宽分别为800/480的窗口
canvas = pygame.display.set_mode((800,480))
canvas.fill((255,255,255))
# 设置窗口标题
pygame.display.set_caption('捕鱼达人')
# 加载图片
bg = pygame.image.load("./images/bg.jpg")
fish1 = pygame.image.load("./images/fish1_0.png")
fish2 = pygame.image.load("./images/fish2_0.png")
fish3 = pygame.image.load("./images/fish3_0.png")
fish4 = pygame.image.load("./images/fish4_0.png")
fish5 = pygame.image.load("./images/fish5_0.png")
fish6 = pygame.image.load("./images/fish6_0.png")
fish7 = pygame.image.load("./images/fish7_0.png")
fish8 = pygame.image.load("./images/fish8_0.png")
fish9 = pygame.image.load("./images/fish9_0.png")
fish10 = pygame.image.load("./images/fish10_0.png")
fish11 = pygame.image.load("./images/fish11_0.png")
net = pygame.image.load("./images/net.png")
gameover = pygame.image.load("./images/gameover.jpg")
# 定义事件监听函数
def handleEvent():
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
        # 添加鼠标移动事件,让鼠标控制网的移动
        if event.type == MOUSEMOTION:
            Game.net.x = event.pos[0] - Game.net.width/2
            Game.net.y = event.pos[1] - Game.net.height/2
# 定义时间间隔判断函数
def isActionTime(lastTime,interval):
    if lastTime == 0:
        return True
    currentTime = time.time()
    return currentTime - lastTime >= interval
# 定义鱼类
class Fish():
    def __init__(self,width,height,y,img):
        self.width = width
        self.height = height
        self.x = 800 - self.width
        self.y = y
        self.img = img
    def paint(self):
        canvas.blit(self.img,(self.x,self.y))
    def step(self):
        self.x -= 10
# 定义网类
class Net():
    def __init__(self,x,y):
        self.x = x
        self.y = y
        self.width = 160
        self.height = 160
        self.img = net
    def paint(self):
        canvas.blit(self.img,(self.x,self.y))
    # 定义越界函数
    def outOfBounds(self):
        if self.x <= 0:
            self.x = 0
        elif self.x >= 800 - self.width:
            self.x = 800 - self.width
        elif self.y <= 0:
            self.y = 0
        elif self.y >= 480 - self.height:
            self.y = 480 - self.height
    # 定义碰撞函数
    def hit(self,c):
        return c.x > self.x - c.width and c.x < self.x + self.width and c.y > self.y - c.height and c.y < self.y + self.height
# 定义存储游戏数据的类
class Game():
    # 游戏状态
    state = 'RUNNING'
    # 鱼的列表
    fish = []
    # 网的对象
    net = Net(100,100)
    # 分数
    score = 0
    # 时间
    t = 60
    n = 1
    # 上一次时间
    lastTime = 0
    # 时间间隔
    interval = 0.5
    # 所有鱼的宽高
    fish_pos = [[22,13],[50,48],[55,55],[73,73],[104,80],[60,60],[93,93],[94,81],[99,103],[180,140],[320,206],[100,96]]
# 定义产生鱼的函数
def conEnter():
    if not isActionTime(Game.lastTime,Game.interval):
        return
    Game.lastTime = time.time()
    r = random.randint(1,11)
    if Game.t <= 60:
        Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load("./images/fish"+str(r)+"_0.png")))
    elif Game.t <= 30:
        Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load("./images/fish"+str(r)+"_0.png")))
        Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load("./images/fish"+str(r)+"_0.png")))
    elif Game.t <= 10:
        Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load("./images/fish"+str(r)+"_0.png")))
        Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load("./images/fish"+str(r)+"_0.png")))
        Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load("./images/fish"+str(r)+"_0.png")))
# 定义画组件函数
def conPaint():
    canvas.blit(bg,(0,0))
    Game.net.paint()
    showScore()
    showTime()
    for fish in Game.fish:
        fish.paint()
# 定义组件移动函数
def conStep():
    Game.net.outOfBounds()
    for fish in Game.fish:
        fish.step()
# 定义碰撞检测函数
def checkHit():
    for fish in Game.fish:
        if Game.net.hit(fish) and len(Game.fish) != 0:
            Game.fish.remove(fish)
            Game.score += 1
# 定义绘制分数函数
def showScore():
    TextFont = pygame.font.SysFont('SimHei',40)
    TextScore = TextFont.render('得分:'+str(Game.score),True,(255,255,255))
    canvas.blit(TextScore,(20,20))
# 定义绘制时间函数
def showTime():
    TextFont = pygame.font.SysFont('SimHei',40)
    TextScore = TextFont.render('剩余时间:'+str(Game.t),True,(255,255,255))
    canvas.blit(TextScore,(550,20))
    if Game.n % 50 == 1:
        Game.t -= 1
    Game.n += 1
    if Game.t == 0:
        Game.state = 'END'
# 定义主控制函数
def control():
    if Game.state == 'RUNNING':
        conEnter()
        conPaint()
        conStep()
        checkHit()
    elif Game.state == 'END':
        canvas.blit(gameover,(0,0))
        TextFont = pygame.font.SysFont('SimHei',40)
        TextScore = TextFont.render('最终得分:'+str(Game.score),True,(0,0,0))
        canvas.blit(TextScore,(50,50))
while True:
    # 调用主控制函数
    control()
    # 更新屏幕内容
    pygame.display.update()
    # 延迟10毫秒
    pygame.time.delay(10)
    # 监听事件
    handleEvent()

Este código se llevó algunos de los conceptos básicos de Python, como actos, funciones definidas, tomar el resto, el ciclismo, el juicio, la definición de la clase, crear objetos. Estos no tienen nada que decir. Importación de varias bibliotecas también biblioteca muy popular, básicamente sea necesario programador. Poner el código aquí se debe principalmente a que todo el mundo aprenda. Si no se escribe realmente personas llamadas a seguir para escribir un pitón ...
puedo usar mi código, al realizar la supervisión de eventos y otras funciones debe ser conveniente.
Hice la imagen siguiente Kazajstán, auto-creado necesidad.
Fuente y foto de código de extracción de extracción: p7ax
este tema a esto, el siguiente problema para escuchar, comentar mensaje! Si te gusta, no se olvide de señalar un yo alabanza!

Publicó un artículo original · ganado elogios 11 · vistas 267

Supongo que te gusta

Origin blog.csdn.net/BearProgramming/article/details/105081547
Recomendado
Clasificación