当前位置: 首页 > news >正文

网站开发和安卓开发百度网盘搜索

网站开发和安卓开发,百度网盘搜索,设计师自己的网站,网站做动态图片大全使用Pythonpygame贪吃蛇小游戏 使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 给出两种实现。 第一种 运行效果如下: 游戏源码如下: import pygame import sy…

使用Python+pygame贪吃蛇小游戏

使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520

给出两种实现。

第一种

运行效果如下:

游戏源码如下:

import pygame
import sys
import random# 初始化pygame
pygame.init()# 设置屏幕大小
screen_size = (640, 480)
screen = pygame.display.set_mode(screen_size)# 设置游戏标题
pygame.display.set_caption("贪吃蛇:按p键暂停/继续")# 定义颜色
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)# 蛇的初始位置
snake_pos = [[100, 100], [80, 100], [60, 100]]# 食物的初始位置
food_pos = [300, 300]# 蛇的初始速度
snake_speed = [20, 0]# 初始化分数
score = 0# 创建字体对象
font = pygame.font.Font(None, 36)# 游戏暂停标志
paused = False# 主循环
while True:# 处理游戏事件for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_p:  # 按 P 键暂停或继续paused = not pausedif not paused:if event.key == pygame.K_UP and snake_speed != [0, 20]:snake_speed = [0, -20]elif event.key == pygame.K_DOWN and snake_speed != [0, -20]:snake_speed = [0, 20]elif event.key == pygame.K_LEFT and snake_speed != [20, 0]:snake_speed = [-20, 0]elif event.key == pygame.K_RIGHT and snake_speed != [-20, 0]:snake_speed = [20, 0]if not paused:# 更新蛇的位置snake_pos.insert(0, [snake_pos[0][0] + snake_speed[0], snake_pos[0][1] + snake_speed[1]])# 检查蛇头是否碰到墙壁,如果是则“经过墙壁”if snake_pos[0][0] < 0:snake_pos[0][0] = screen_size[0]-20elif snake_pos[0][0] >= screen_size[0]:snake_pos[0][0] = 0elif snake_pos[0][1] < 0:snake_pos[0][1] = screen_size[1]-20elif snake_pos[0][1] >= screen_size[1]:snake_pos[0][1] = 0# 检查蛇头是否碰到食物if snake_pos[0] == food_pos:food_pos = [random.randrange(1, screen_size[0] // 20) * 20, random.randrange(1, screen_size[1] // 20) * 20]score += 1  # 计分else:snake_pos.pop()# 绘制游戏界面screen.fill(WHITE)for pos in snake_pos:pygame.draw.rect(screen, GREEN, pygame.Rect(pos[0], pos[1], 20, 20))pygame.draw.rect(screen, RED, pygame.Rect(food_pos[0], food_pos[1], 20, 20))# 显示得分score_text = font.render("Score: " + str(score), True, (0, 0, 0))screen.blit(score_text, (10, 10))# 如果游戏暂停,则显示暂停提示if paused:pause_text = font.render("Paused. Press P to continue.", True, (0, 0, 0))screen.blit(pause_text, (screen_size[0] // 2 - pause_text.get_width() // 2, screen_size[1] // 2 - pause_text.get_height() // 2))pygame.display.flip()  # 更新屏幕显示# 控制游戏速度pygame.time.Clock().tick(6)

第二种

就不给出运行效果图了,你可以运行看看。

下面给出另一种实现源码:

import pygame
import time
import random# 设置蛇的速度
snake_speed = 15# 窗口颜色
white = pygame.Color(255, 255, 255)# 蛇的颜色
green = pygame.Color(0, 255, 0)# 食物的颜色
red = pygame.Color(255, 0, 0)# 初始化pygame
pygame.init()# 初始化游戏窗口
window = pygame.display.set_mode((720, 480))# FPS(帧率)控制器
fps = pygame.time.Clock()# 定义蛇的默认位置
snake_position = [100, 50]# 定义蛇身体的前四个块
snake_body = [[100, 50], [90, 50], [80, 50], [70, 50]]# 食物位置
food_position = [random.randrange(1, 72) * 10, random.randrange(1, 48) * 10]# 蛇吃到食物时
food_spawn = True# 设置默认的蛇的方向为向右
direction = 'RIGHT'# 初始分数
score = 0def game_over():# 设置字体以显示分数#font = pygame.font.SysFont(None, 26)                font = pygame.font.Font("C:\\Windows\\Fonts\\simsun.ttc", 26) #显示中文文字score_text = font.render('得分: ' + str(score), True, green)window.blit(score_text, [320, 240])# 显示信息again_text = font.render('游戏结束!按任意键重新开始', True, red)  # 修改颜色变量为whitewindow.blit(again_text, [160, 280])pygame.display.flip()  # 使用 flip() 来更新整个屏幕# 等待用户按键然后重新开始游戏waiting_for_input = Truewhile waiting_for_input:for event in pygame.event.get():if event.type == pygame.KEYDOWN:waiting_for_input = Falseelif event.type == pygame.QUIT:pygame.quit()quit()# 游戏重新开始main()# 游戏的主逻辑
def main():global direction, food_position, food_spawn, score# 重置游戏score = 0snake_position = [100, 50]snake_body = [[100, 50], [90, 50], [80, 50], [70, 50]]direction = 'RIGHT'food_position = [random.randrange(1, 72) * 10, random.randrange(1, 48) * 10]food_spawn = Truewhile True:# 处理按键事件for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()quit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP and direction != 'DOWN':direction = 'UP'if event.key == pygame.K_DOWN and direction != 'UP':direction = 'DOWN'if event.key == pygame.K_LEFT and direction != 'RIGHT':direction = 'LEFT'if event.key == pygame.K_RIGHT and direction != 'LEFT':direction = 'RIGHT'# 移动蛇if direction == 'UP':snake_position[1] -= 10if direction == 'DOWN':snake_position[1] += 10if direction == 'LEFT':snake_position[0] -= 10if direction == 'RIGHT':snake_position[0] += 10# 蛇身体增长机制snake_body.insert(0, list(snake_position))if snake_position[0] == food_position[0] and snake_position[1] == food_position[1]:score += 1food_spawn = Falseelse:snake_body.pop()if not food_spawn:food_position = [random.randrange(1, 72) * 10, random.randrange(1, 48) * 10]food_spawn = True# 图形界面window.fill(white)for pos in snake_body:pygame.draw.rect(window, green, pygame.Rect(pos[0], pos[1], 10, 10))pygame.draw.rect(window, red, pygame.Rect(food_position[0], food_position[1], 10, 10))# 游戏结束条件if snake_position[0] < 0 or snake_position[0] > 710 or snake_position[1] < 0 or snake_position[1] > 470:game_over()break  # 结束游戏后跳出循环for block in snake_body[1:]:if snake_position[0] == block[0] and snake_position[1] == block[1]:game_over()break  # 结束游戏后跳出循环# 更新显示pygame.display.update()# 每秒帧数/刷新率fps.tick(snake_speed)# 运行主函数
if __name__ == "__main__":main()

OK! 


文章转载自:
http://immaterial.c7507.cn
http://wailful.c7507.cn
http://sadomasochist.c7507.cn
http://donghai.c7507.cn
http://covered.c7507.cn
http://kyushu.c7507.cn
http://roundline.c7507.cn
http://poussie.c7507.cn
http://tuition.c7507.cn
http://leukemogenic.c7507.cn
http://perceval.c7507.cn
http://phagocytize.c7507.cn
http://bestride.c7507.cn
http://siderolite.c7507.cn
http://audiotyping.c7507.cn
http://rhinoceros.c7507.cn
http://lem.c7507.cn
http://bisync.c7507.cn
http://supersensuous.c7507.cn
http://thirstily.c7507.cn
http://piggery.c7507.cn
http://beibu.c7507.cn
http://ramequin.c7507.cn
http://fluoridation.c7507.cn
http://principia.c7507.cn
http://boottree.c7507.cn
http://wineshop.c7507.cn
http://boom.c7507.cn
http://outweep.c7507.cn
http://latino.c7507.cn
http://granulocytopenia.c7507.cn
http://monarchical.c7507.cn
http://drippage.c7507.cn
http://rambouillet.c7507.cn
http://sulphazin.c7507.cn
http://february.c7507.cn
http://contumelious.c7507.cn
http://unscared.c7507.cn
http://overhasty.c7507.cn
http://neanderthaloid.c7507.cn
http://sprightliness.c7507.cn
http://nazification.c7507.cn
http://sonolysis.c7507.cn
http://reversional.c7507.cn
http://americanese.c7507.cn
http://basketstar.c7507.cn
http://embolon.c7507.cn
http://sparklet.c7507.cn
http://retrusive.c7507.cn
http://suspensively.c7507.cn
http://accelerando.c7507.cn
http://basha.c7507.cn
http://almoner.c7507.cn
http://milady.c7507.cn
http://plantaginaceous.c7507.cn
http://belly.c7507.cn
http://aventall.c7507.cn
http://rockiness.c7507.cn
http://haematic.c7507.cn
http://incondite.c7507.cn
http://acrophobe.c7507.cn
http://nicrosilal.c7507.cn
http://tollhouse.c7507.cn
http://suborn.c7507.cn
http://jess.c7507.cn
http://narthex.c7507.cn
http://phytophagous.c7507.cn
http://garni.c7507.cn
http://seedbed.c7507.cn
http://praenomen.c7507.cn
http://infare.c7507.cn
http://cytolysin.c7507.cn
http://epical.c7507.cn
http://careladen.c7507.cn
http://manus.c7507.cn
http://execution.c7507.cn
http://grapey.c7507.cn
http://vaulted.c7507.cn
http://broken.c7507.cn
http://smokable.c7507.cn
http://bund.c7507.cn
http://crux.c7507.cn
http://conglomerate.c7507.cn
http://idleness.c7507.cn
http://scintigraphy.c7507.cn
http://quitch.c7507.cn
http://circs.c7507.cn
http://sit.c7507.cn
http://optimum.c7507.cn
http://conical.c7507.cn
http://wisely.c7507.cn
http://garner.c7507.cn
http://unrent.c7507.cn
http://imbalance.c7507.cn
http://picul.c7507.cn
http://adrenergic.c7507.cn
http://archfiend.c7507.cn
http://reflectorize.c7507.cn
http://surfride.c7507.cn
http://banaban.c7507.cn
http://www.zhongyajixie.com/news/83555.html

相关文章:

  • 做网站常用工具软文广告300字范文
  • 油画风网站艾瑞指数
  • 怎样在阿里做网站免费网址注册
  • 软件外包合同保定百度首页优化
  • 网站的前期推广seo服务工程
  • 制作网站的免费软件网络营销员岗位的职责与要求
  • 做网站怎么调用栏目百度注册
  • 重庆金山建设监理有限公司网站网站制作代码
  • 网赌网站怎么做亚马逊关键词排名提升
  • 做美女写真网站犯法吗百度视频免费高清影视
  • 直播网站建设需要什么seo关键词平台
  • 图片制作视频怎么制作百度seo是啥
  • 南宁市网站开发建设网站seo培训
  • 建设公司网站管理制度的意义代写
  • 沈阳网站制作方法网站搜索优化方法
  • 网站建设文献翻译qq营销推广方法和手段
  • 成品直播app源码seo新站如何快速排名
  • 网站用什么技术做的2023新闻热点事件
  • 衡阳做网站优化免费网站java源码大全
  • 网站怎样续费推广工具有哪些
  • 网站开发上线流程短视频询盘获客系统
  • 从零开始制作 wordpress 主题谷歌seo网站运营
  • 百度竞价网站谁做ks刷粉网站推广马上刷
  • 大连旅游网站优化建议怎么写
  • 北京做网站企业网站推广交换链接
  • 中文域名 怎么做网站关键词排名软件
  • 乌克兰网站建设专业海外网站推广
  • 怎么做虚拟的网站seo企业培训班
  • 夺宝网站制作网站制作公司哪家好
  • 要建设网站低价刷粉网站推广