[Python] 纯文本查看 复制代码import sys

import pygame

from pygame.color import THECOLORS as COLORS

def draw_background():

# white background

screen.fill(COLORS['lightblue'])

pygame.draw.rect(screen,COLORS['black'],(-100,902,3000,200),5)

def draw_tunnel():

for x in tunnel_list:

pygame.draw.rect(screen,COLORS['darkgreen'],(x,0,100,350),0)

pygame.draw.rect(screen,COLORS['darkgreen'],(x+100,550,100,350),0)

def draw_bird():

screen.blit(birdImg,[bird_x,bird_y])

def draw_context():

txt = font50.render('Count time: '+str(int(count_time))+' S',True,COLORS['black'])

x,y = 10,920

screen.blit(txt,(x,y))

def draw_pause():

s = pygame.Surface(SIZE, pygame.SRCALPHA)

s.fill((255,255,255,220))

screen.blit(s, (0,0))

txt = font120.render('PAUSE',True,COLORS['darkgray'])

x,y = 550,400

screen.blit(txt,(x,y))

def draw_dead():

s = pygame.Surface(SIZE, pygame.SRCALPHA)

s.fill((255,255,255,240))

screen.blit(s, (0,0))

txt = font120.render('YOU DEAD',True,COLORS['black'])

x,y = 450,400

screen.blit(txt,(x,y))

def rect_cover(rect1,rect2,up=True):

# bird

left_up1 = (rect1[0],rect1[1])

left_down1 = (rect1[0],left_up1[1]+rect1[3])

right_up1 = (left_up1[0]+rect1[2],rect1[1])

right_down1 = (left_up1[0]+rect1[2],left_up1[1]+rect1[3])

# tunnel

left_up2 = (rect2[0],rect2[1])

left_down2 = (rect2[0],left_up2[1]+rect2[3])

right_up2 = (left_up2[0]+rect2[2],rect2[1])

right_down2 = (left_up2[0]+rect2[2],left_up2[1]+rect2[3])

# check

if (left_up2[0]<=right_up1[0]<=right_up2[0]): # x,肯定是右侧线接触,因此判断bird的right即可

if up and (left_up2[1]<=right_up1[1]<=left_down2[1]):

return True

elif (not up) and (left_up2[1]<=right_down1[1]<=left_down2[1]):

return True

return False

def check_dead():

bird_rect = (bird_x,bird_y,70,70)

if bird_rect[1]+bird_rect[3]>900:

return True

for x in tunnel_list:

up_rect = (x,0,100,350)

down_rect = (x+100,550,100,350)

if rect_cover(bird_rect,up_rect) or rect_cover(bird_rect,down_rect,up=False):

return True

return False

if __name__ == "__main__":

# init pygame

pygame.init()

# contant

SIZE = [1500,1000]

font50 = pygame.font.SysFont('Times', 50)

font120 = pygame.font.SysFont('Times', 120)

G = 9.8*30 # g

JUMP_V = -300

# brid

birdPath = 'bird.png'

birdImg = pygame.image.load(birdPath)

# tunnel

tunnel_list = [100,600,1100,1600,2100]

# create screen 500*500

screen = pygame.display.set_mode(SIZE)

# variable parameter

bird_x,bird_y = 700,450

bird_v = 0

count_time = 0

# level

speed = 5

frame = 0.02

# main loop

running = True

pause = False

jump = False

dead = False

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

break

elif event.type == pygame.MOUSEBUTTONDOWN:

pause = not pause

elif event.type == pygame.KEYUP:

if chr(event.key) == ' ':

jump = True

# update data

if not pause and not dead:

count_time += frame

tunnel_list = [x-speed if x-speed>-200 else 2100 for x in tunnel_list ]

if not jump:

bird_v += G*frame

else:

bird_v = JUMP_V

jump = False

bird_y += frame*bird_v

# background

draw_background()

# tunnel

draw_tunnel()

# choose item

draw_bird()

# point

draw_context()

# pause

if not dead and pause:

draw_pause()

# dead

if dead:

draw_dead()

# flip

pygame.display.flip()

# pause 20ms

pygame.time.delay(int(frame*1000))

# check win or not

if check_dead():

#print('You dead, dumb ass!!!')

#break

dead = True

pygame.quit()

python叫什么-又一个python小游戏,叫什么不知道了。。。相关推荐

  1. 100行Python代码,做一个打地鼠小游戏

    游戏画面 首先先进行游戏画面排版, class TopWindow(QWidget):def __init__(self, parent=None):super().__init__(parent)s ...

  2. 父与子python下载不了_【求助】看父与子学习Python,里面有一个滑雪小游戏,加载不出图...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import pygame, sys, random # 所需要加载的模块 skier_images = ["skier_down.png&qu ...

  3. 【tkinter】用不到50行Python代码,写一个扫雷小游戏

    文章目录 定制按钮 生成雷区 主流程 Tkinter系列: GUI初步

  4. python经典小游戏-用Python设计一个经典小游戏:猜大小

    码农那点事儿 关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下 ...

  5. 20行python代码的入门级小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

  6. python经典小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

  7. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...

  8. python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

    导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环 ...

  9. python大作业数独_python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  10. 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2)

    导语 上一期我们带大家完成了魔塔游戏每一层的初始化画面的制作: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(1) 这一期我们会带大家进一步复现我们的魔塔小游戏,主要内容包括英雄类 ...

最新文章

  1. VBS随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)...
  2. Leetcode-520. 检测大写字母
  3. Java 使用GDAL 读写 shapefile
  4. 苹果自研5G调制解调器将在2023年量产 采用台积电4nm工艺
  5. php列表代码怎么做的,php项目实战:代码讲解之订单列表问题
  6. python数据结构4-栈和队列
  7. 内核中的TCP的追踪分析-9-TCP(IPV4)的socket的地址绑定--续2
  8. [嵌入式学习]arm开发板通过NFS(网络文件系统)快捷访问和操作Ubuntu文件系统
  9. Neo4j学习笔记-Embedded嵌入模式简单示例
  10. 根据图片原型写一个html页面,如何分分钟开发高保真交互原型_html/css_WEB-ITnose
  11. 数据库查询简单练习(五)
  12. 网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient...
  13. I2C总线时序以及ACK和NACK(NAK),SCL被从机拉低?
  14. 【NILM】非入侵式负荷分解模块nilmtk安装教程
  15. 空调属于什么计算机系统,空调系统
  16. label 中的for属性有什么用
  17. 天津电子计算机职专什么时候开学,2020年开学时间表
  18. 在数智化供应链里,「重估」京东云
  19. 阿里云——运维安全中心(堡垒机)
  20. 安装 CICS TXS

热门文章

  1. [小算法] 找出单链表中的中间元素
  2. MS 的SPACE很不好的说
  3. 4、kubernetes资源清单快速入门190625
  4. 关于面试的一些问题合集
  5. 远程方法调用简单实现
  6. C++ 内连接与外连接 (转)
  7. delphi 中怎么知道某一个月有多少天
  8. Ajax Toolkit Control ——CollapsiblePanelExtender(隐藏显示效果)
  9. c# 对文件流的读写
  10. ASP。NET 中SQL防注入攻击