Python版跳跳方块小游戏源代码,跳跳益智游戏代码,通过方向键的左右键来控制方块向左上还右上跳跃,按R键重要开始游戏。相当有难度,快来挑战你自己吧

jump_square.py

# import os
import sys
import random
import pygameBLACK = (0, 0, 0)
GREY = (169, 169, 169)
WHITE = (255, 255, 255)# os.chdir("D:\OneDrive\Code\Repository\jump-square")class Obstacle(object):def __init__(self, start_pos, x_pos) -> None:# postion initialsself.wall_y = start_posself.wall_x = x_posself.squ_y = start_pos - 165 - 630*3self.squ_x = x_pos + gen_squ_x() # load assetsself.left = pygame.image.load(".\\assets\\obstacle.jpg")self.left = pygame.transform.scale(self.left, (250, 30))self.right = pygame.image.load(".\\assets\\obstacle.jpg")self.right = pygame.transform.scale(self.right, (250, 30))self.squ = pygame.image.load(".\\assets\\obstacle.jpg")self.squ = pygame.transform.scale(self.squ, (30, 30))def update(self, player) -> None:global scoreself.wall_y += player.back_moveself.squ_y += player.back_moveif self.wall_y > 630:score += 1self.wall_y -= 950self.wall_x = gen_obstacle_x()if self.squ_y > 630:self.squ_y -= 950self.squ_x = self.wall_x + gen_squ_x()def create_map(screen, player, obstacle_0, obstacle_1, obstacle_2) -> None:global scorescreen.fill(WHITE)# obstacle initialisescreen.blit(obstacle_0.left, (obstacle_0.wall_x, obstacle_0.wall_y))screen.blit(obstacle_0.right, (obstacle_0.wall_x+380, obstacle_0.wall_y))screen.blit(obstacle_1.left, (obstacle_1.wall_x, obstacle_1.wall_y))screen.blit(obstacle_1.right, (obstacle_1.wall_x+380, obstacle_1.wall_y))screen.blit(obstacle_2.left, (obstacle_2.wall_x, obstacle_2.wall_y))screen.blit(obstacle_2.right, (obstacle_2.wall_x+380, obstacle_2.wall_y))# squaresscreen.blit(obstacle_0.squ, (obstacle_0.squ_x, obstacle_0.squ_y))screen.blit(obstacle_1.squ, (obstacle_1.squ_x, obstacle_1.squ_y))screen.blit(obstacle_2.squ, (obstacle_2.squ_x, obstacle_2.squ_y))obstacle_0.update(player)obstacle_1.update(player)obstacle_2.update(player)# player initialiseplayer.player_status = 0screen.blit(player.all_status[player.status], (player.x, player.y))player.update()# score boardfont = pygame.font.SysFont("arial", 50)screen.blit(font.render(str(score), -1, BLACK), (190, 60))pygame.display.update()def check_dead(obstacle_0, obstacle_1, obstacle_2, player, height) -> bool:ob_rect_l_0 = pygame.Rect(obstacle_0.wall_x, obstacle_0.wall_y, obstacle_0.left.get_width(), obstacle_0.left.get_height())ob_rect_r_0 = pygame.Rect(obstacle_0.wall_x+380, obstacle_0.wall_y, obstacle_0.left.get_width(), obstacle_0.left.get_height())ob_rect_s_0 = pygame.Rect(obstacle_0.squ_x, obstacle_0.squ_y, obstacle_0.squ.get_width(), obstacle_0.squ.get_height())ob_rect_l_1 = pygame.Rect(obstacle_1.wall_x, obstacle_1.wall_y, obstacle_1.left.get_width(), obstacle_1.left.get_height())ob_rect_r_1 = pygame.Rect(obstacle_1.wall_x+380, obstacle_1.wall_y, obstacle_1.left.get_width(), obstacle_1.left.get_height())ob_rect_s_1 = pygame.Rect(obstacle_1.squ_x, obstacle_1.squ_y, obstacle_1.squ.get_width(), obstacle_1.squ.get_height())ob_rect_l_2 = pygame.Rect(obstacle_2.wall_x, obstacle_2.wall_y, obstacle_2.left.get_width(), obstacle_2.left.get_height())ob_rect_r_2 = pygame.Rect(obstacle_2.wall_x+380, obstacle_2.wall_y, obstacle_2.left.get_width(), obstacle_2.left.get_height())ob_rect_s_2 = pygame.Rect(obstacle_2.squ_x, obstacle_2.squ_y, obstacle_2.squ.get_width(), obstacle_2.squ.get_height())if ob_rect_l_0.colliderect(player.size) or ob_rect_r_0.colliderect(player.size):player.dead = Truereturn Trueif ob_rect_l_1.colliderect(player.size) or ob_rect_r_1.colliderect(player.size):player.dead = Truereturn Trueif ob_rect_l_2.colliderect(player.size) or ob_rect_r_2.colliderect(player.size):player.dead = Truereturn Trueif ob_rect_s_0.colliderect(player.size) or ob_rect_s_1.colliderect(player.size) or ob_rect_s_2.colliderect(player.size):player.dead = Truereturn Trueif player.y > height:player.dead = Truereturn Truereturn Falsedef get_result(screen):final_text1 = "Game over"final_text2 = "score:" + str(score)final_text3 = "press 'R' to restart"ft1_font = pygame.font.SysFont("arial",60)ft1_surf = ft1_font.render(final_text1, 1, GREY)ft2_font = pygame.font.SysFont("arial",40)ft2_surf = ft2_font.render(final_text2, 1, GREY)ft3_font = pygame.font.SysFont("arial",30)ft3_surf = ft3_font.render(final_text3, 1, GREY)screen.blit(ft1_surf,[screen.get_width()/2-ft1_surf.get_width()/2,100])screen.blit(ft2_surf,[screen.get_width()/2-ft2_surf.get_width()/2,160])screen.blit(ft3_surf,[screen.get_width()/2-ft3_surf.get_width()/2,200])pygame.display.flip()def gen_obstacle_x() -> int:return random.randint(-200, -30)def gen_squ_x() -> int:return random.randint(250, 300)def main():global scorescore = 0# game window setupsize = width, height = 400, 630screen = pygame.display.set_mode(size)clock = pygame.time.Clock()pygame.display.set_caption("jump square")obstacle_0 = Obstacle(-360, gen_obstacle_x())obstacle_1 = Obstacle(-30, gen_obstacle_x())obstacle_2 = Obstacle(300, gen_obstacle_x())player = Player()while True:clock.tick(60)for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT and not player.dead:player.left_jump = Trueplayer.right_jump = Falseplayer.back_move = 0player.gravity = 0.5player.x_speed = 5player.jump_speed = 15elif event.key == pygame.K_RIGHT and not player.dead:player.right_jump = Trueplayer.left_jump = Falseplayer.back_move = 0player.gravity = 0.5player.x_speed = 5player.jump_speed = 15elif event.key == pygame.K_r:score = 0obstacle_0 = Obstacle(-360, gen_obstacle_x())obstacle_1 = Obstacle(-30, gen_obstacle_x())obstacle_2 = Obstacle(300, gen_obstacle_x())player = Player()if check_dead(obstacle_0, obstacle_1, obstacle_2, player, height):get_result(screen)else:create_map(screen, player, obstacle_0, obstacle_1, obstacle_2)if __name__ == "__main__":score = 0pygame.init()main()

完整程序代码下载地址:跳跳方块小游戏源代码

Python版跳跳方块小游戏源代码,跳跳益智游戏代码相关推荐

  1. Python我的世界小游戏源代码

    我的世界小游戏使用方法: 移动 前进:W,后退:S,向左:A,向右:D,环顾四周:鼠标,跳起:空格键,切换飞行模式:Tab; 选择建筑材料 砖:1,草:2,沙子:3,删除建筑:鼠标左键单击,创建建筑块 ...

  2. Python制作的赛车小游戏源代码,逆行飙车

    python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图: 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...

  3. python爬取4399小游戏数据_25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...

  4. Python接弹珠小游戏源代码

    接弹珠游戏,弹珠碰到上方及左右两侧的墙壁进行反弹,反弹,可以理解成弹珠的坐标值变成相反数.当弹珠的圆心坐标值到达上方墙壁时,只需要让坐标变成负数,弹珠就可以向相反的方向移动了. import pyga ...

  5. 基于python的毕业论文-基于python的飞机大战小游戏毕业论文设计和代码

    python 飞机大战 论文 计说明: 完成敌机发射子弹功能(注意:子弹不是连发.移动速度不要太快) 实现敌机子弹和玩家飞机的碰撞检测实现敌机子弹和玩家飞机的碰撞检测 为消失的飞机添加爆炸效果为消失的 ...

  6. 基于python的游戏设计与实现-基于python的飞机大战小游戏毕业论文设计和代码

    python 飞机大战 论文 计说明: 完成敌机发射子弹功能(注意:子弹不是连发.移动速度不要太快) 实现敌机子弹和玩家飞机的碰撞检测实现敌机子弹和玩家飞机的碰撞检测 为消失的飞机添加爆炸效果为消失的 ...

  7. 网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码

    网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码 完整代码下载地址:网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码 核心代码 <!DOCTYPE html> <html> ...

  8. html+javascript实现的网页版飞机大战小游戏源码

    html+javascript实现的网页版飞机大战小游戏源码 完整代码下载地址: html+javascript实现的网页版飞机大战小游戏源码 index.html <!DOCTYPE html ...

  9. Python版基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式

    基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式 按空格进入单人模式,按't'进入双人模式,双人模式下玛丽1采用空格键上跳,玛丽2采用方向上键上跳. 完整代码下载地址:Pyth ...

最新文章

  1. 串口上升时间标准_JESD204B 串行接口时钟需要及其实现
  2. 怎么装python的keras库_matlab调用keras深度学习模型(环境搭建)
  3. php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解
  4. elasticsearch 根据条件更新数据
  5. No toolchains found in the NDK toolchains folder for ABI with prefix: aarch64-linux-android
  6. jboss4.2.3_JBoss 4.2.x Spring 3 JPA Hibernate教程
  7. 全文服务(Microsoft 搜索)不可用。系统管理员必须启动此服务
  8. 雾计算精华问答 | 雾计算与云计算的区别?
  9. (44)常用终端命令总结
  10. python模拟登陆 验证码el_8-python模拟登入(无验证码)
  11. 大数据时代下的信息安全
  12. Android中JNI调用过程简述
  13. ReentrantLock加锁解锁线程入队源码分析
  14. 什么是水仙花数python_什么是水仙花数python
  15. 你所不知道的那些阿里面试|原来我也可以从小白到年薪百万!
  16. Java的时间类库joda教程
  17. jquery canvas网页画布画图
  18. GoogleVR与unity2019(cardboard)
  19. 云原生CI/CD:Tekton之trigger介绍
  20. 改oracle 密码,如何修改oracle用户密码

热门文章

  1. okhttp原理分析(持续更新),包含okio了解,拦截器以及断点下载的使用
  2. C语言常用表格--表在手,跟我走!
  3. ARM7、ARM9和ARM11的区别
  4. BatBot智慧电力(运维)云平台
  5. 还不知道这几个流行的人工智能API?快来了解一下吧
  6. 2022-05-20 工作记录--React-多个className的三元表达式写法
  7. 考研复试-上机考试备考
  8. android+平板哪家强,安卓平板哪个好
  9. DBC文件解析——基于DBCView工具
  10. 团队-排课软件-项目总结