pygame实现王思聪吃热狗小游戏(双人版)

游戏介绍:

一款单人版的思聪吃热狗游戏,你可以自己调节思聪的位置,移动时会消耗能量10,游戏中吃到热狗分数加 1,能量加 20,最后的目标就是称霸世界咯,吃掉所有的热狗即游戏胜利。王思聪能量消耗完毕即游戏失败。

如何开始:

玩家:键盘方向键↑↓←→控制王思聪的移动。

游戏目标:

不断的吃掉热狗,不断的强大起来吧!

游戏素材:

                       

游戏要求:

1. 游戏背景可以为黑色或者其他图片(自定义即可);
2. 王思聪可以上下左右移动,热狗只能向左移动,当移动到最左边时, 穿越屏幕,到达最右端,继续向左移动。
3. 王思聪默认能量值(power)为 200,每移动一次消耗能量值 10,当吃到一个热狗, 能量值增加 20。
4. 王思聪只有一个,而热狗的个数是随机的(10~40 个之间)。
5. 当热狗被彻底消灭掉或者思聪毫无能量值时,游戏结束。

 游戏进阶要求:能否实现一个双人版吃热狗游戏?

在这大千世界里,现在的所有物种都是通过自身群体间的相互竞争进化而生存下来,物竞天择这个词就是这样的由来,生存环境发生了变化,要么尝试地去改变去适应它,要么就被无情地淘汰,最终陈列在博物馆内。我们的祖先经过几亿年的演变,适应了一个又一个的极端环境,才有了现在的我们,他们的坚韧体现的淋漓尽致。
emmmmmm,貌似扯远了....双人游戏很好的诠释了物竞天择这一点。

 进阶游戏要求:

我们刚开始是两个人物,一个玩家是你,一个玩家是王思聪,周围都是仅剩无几的热狗食物,为了生存两个玩家必须争夺仅有的热狗。 当热狗吃完时,谁的得分高,谁就是最终的赢家。 或者其中一方玩家体力消耗仅剩 0,另外一方玩家即为赢家。 

操作要求: 

玩家 1:键盘方向键↑↓←→控制移动。
玩家 2:键盘 WSAD 控制控制移动。 

编写代码如下,可供参考:

import random
import time
import sys
import pygame
from pygame.locals import *
from PIL import  Image
# 首先缩小游戏背景图片尺寸
filename = './img/background.jpg'
img = Image.open(filename)
out = img.resize((800, 600) , Image.ANTIALIAS)
out.save('./img/background_resize.jpg')width = 800
height = 600
pygame.init()
screen = pygame.display.set_mode([width, height])
pygame.display.set_caption('王思聪吃热狗(双人版)')
background = pygame.image.load('./img/background_resize.jpg').convert()
hotdogImg = pygame.image.load('./img/hotdog.png').convert_alpha()
wangImg = pygame.image.load('./img/wang.png').convert_alpha()count1 = 0
count2 = 0
font = pygame.font.SysFont("arial",40)
player1_score = font.render("player1 score:%d" %(count1), True, (255, 255, 255))
player2_score = font.render("player2 score:%d" %(count2), True, (255, 255, 255))w_width = wangImg.get_width() - 5
w_height = wangImg.get_height() - 5
h_width = hotdogImg.get_width() - 5
h_height = hotdogImg.get_height() - 5
fpsClock = pygame.time.Clock()class Wang1:def __init__(self):self.power = 200self.x = random.randint(0, width-w_width)self.y = random.randint(0, height-w_height)def move(self, new_x, new_y):if new_x < 0:self.x = 0 - new_xelif new_x > width:self.x = 0else:self.x = new_xif new_y < 0:self.y = 0 - new_yelif new_y > height:self.y = 0else:self.y = new_yself.power -= 10def eat(self):self.power += 20if self.power > 200:self.power = 200class Wang2:def __init__(self):self.power = 200self.x = random.randint(0, width-w_width)self.y = random.randint(0, height-w_height)def move(self, new_x, new_y):if new_x < 0:self.x = 0 - new_xelif new_x > width:self.x = 0else:self.x = new_xif new_y < 0:self.y = 0 - new_yelif new_y > height:self.y = 0else:self.y = new_yself.power -= 10def eat(self):self.power += 20if self.power > 200:self.power = 200class Hotdog:def __init__(self):self.x = random.randint(0, width - h_width)self.y = random.randint(0, height - h_height)def move(self):new_x = self.x + random.choice([-10])if self.x < 0:self.x = widthelse:self.x = new_xwang1 = Wang1()
wang2 = Wang2()
pygame.display.update()
hotdog = []
for item in range(random.randint(10,40)):newHotdog = Hotdog()hotdog.append(newHotdog)while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:wang1.move(wang1.x - 10, wang1.y)if event.key == pygame.K_RIGHT:wang1.move(wang1.x + 10, wang1.y)if event.key == pygame.K_UP:wang1.move(wang1.x, wang1.y - 10)if event.key == pygame.K_DOWN:wang1.move(wang1.x, wang1.y + 10)if event.key == pygame.K_a:wang2.move(wang2.x - 10, wang2.y)if event.key == pygame.K_d:wang2.move(wang2.x + 10, wang2.y)if event.key == pygame.K_w:wang2.move(wang2.x, wang2.y - 10)if event.key == pygame.K_s:wang2.move(wang2.x, wang2.y + 10)screen.blit(background, (0, 0))screen.blit(player2_score, (580, 20))screen.blit(player1_score, (0, 20))for item in hotdog:screen.blit(hotdogImg, (item.x, item.y))item.move()screen.blit(wangImg, (wang1.x, wang1.y))screen.blit(wangImg, (wang2.x, wang2.y))if wang1.power < 0:print("Player2 Win!")pygame.display.update()time.sleep(1)sys.exit(0)if wang2.power < 0:print("Player1 Win!")pygame.display.update()time.sleep(1)sys.exit(0)elif len(hotdog) == 0:if player1_score > player2_score:print("Player1 Win!")else:print("Player2 Win!")pygame.display.update()sys.exit(0)for item in hotdog:if  ((wang1.x < item.x + w_width) and (wang1.x + w_width > item.x)and (wang1.y < item.y + h_height) and (w_height + wang1.y > item.y)) :hotdog.remove(item)count1 = count1 + 1player1_score = font.render("player1 score:%d" % count1, True, (255, 0, 0))for item in hotdog:if  ((wang2.x < item.x + w_width) and (wang2.x + w_width > item.x)and (wang2.y < item.y + h_height) and (w_height + wang2.y > item.y)) :hotdog.remove(item)count2 = count2 + 1player2_score = font.render("player2 score:%d" % count2, True, (255, 0, 0))pygame.display.update()fpsClock.tick(10)

 运行之后,游戏的要求都可以实现,在这里放一张游戏操作界面的截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33918.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于C++实现惊险刺激的Flappy Bird设计

资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85941853 资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85941853 目录 1、 题目描述和题目要求 2 2、 需求分析 2 3、总体设计 5 3.1 功能模块设计 5 3. 状态信息栏&#x…

[COGS 2897] [THUPC 2017] 天天爱射击

COGS传送门 题目描述 小C爱上了一款名字叫做《天天爱射击》的游戏&#xff0c;在这款游戏中可以用子弹将木板打碎。如图所示&#xff0c;这个游戏有一些平行于x轴的木板。现在有一些子弹&#xff0c;按顺序沿着y轴方向向这些木板射去。第 i i i块木板被 S i S_i Si​个子弹击…

【选恐症安利】小熊猫C++原创配色

【选恐症安利】小熊猫C原创配色! 本人是超级强迫症和选择恐惧症&#xff01;经过三天的调色&#xff0c;成就了下面的情景&#xff1a; 哇&#xff0c;绝了&#xff01; 你可以在这里导入配色&#xff1a; 好了&#xff0c;放链接&#xff01; wwt.lanzoum.com/iv4VW0cbkep…

[day2]python网络爬虫实战:爬取美女写真图片(增强版)

l> 我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 1.开发环境2.第三方库3.实现1.分析url格式2.分析图片格式3.保存图片到本地4.输入页数 4.优化1.防止被封2.多线程下载3.便捷获取图片地址 5.效果6.G…

Python写网络爬虫(一)

文章目录 网络爬虫简介爬虫在使用场景中的分类爬虫的矛与盾需要知道的协议常用请求头信息常用响应头信息requests模块如何使用requests&#xff1a;&#xff08;requests模块的编码流程&#xff09;新手实战演练正式入门爬虫get 方法的常用参数&#xff1a;简易网页采集器 首先…

那个顶撞雷军还爱在办公室打乒乓的副总裁——周光平

文章原创来自洞见网&#xff1a;http://www.localonline.com.cn/start/people/712.html&#xff0c;转载请注明出处。 近日&#xff0c;东南大学(原南京工学院)1977级校友周光平、严星夫妇捐资2000万元&#xff0c;在母校设立“平星基金”&#xff0c;用于支持信息科学与工程学…

雷军—我十年的程序员生涯

内容转自&#xff1a;http://blog.sina.com.cn/s/blog_4b0e23c90100b2qf.html 最近&#xff0c;和UCWEB同事讨论&#xff0c;怎么才能把我们的UCWEB做到极致。我说&#xff0c;“手机上的平台非常多&#xff0c;如果想做好&#xff0c;需要足够多、足够优秀的程序员。优秀的程序…

雷军谈人生三段低谷:站店卖货、泡吧泡论坛、错失互联网第一波浪潮!

自2020年小米十周年雷军进行了人生首次公开演讲以来&#xff0c;他似乎想要养成一种习惯&#xff0c;每年都举办一次年度演讲。 继2020年“相信自己&#xff0c;一往无前”和2021年“我的梦想&#xff0c;我的选择”两场年度演讲后&#xff0c;这不&#xff0c;在小米迎来12周…

中国第一程序员求伯君,WPS之父,雷军也佩服的人

中国第一程序员求伯君&#xff0c;WPS之父&#xff0c;最强码农的传奇经历 转载知乎冷冷读书 https://www.zhihu.com/people/leng-leng-80-6 2018年底&#xff0c;金山举办创业三十年庆典&#xff0c;三位创始人&#xff0c;求伯君、雷军和张旋龙相继到场。庆生中&#xff0c;雷…

用互联网思想武装自己---雷军

两年前的4月6日&#xff0c;我们几个人&#xff0c;在北四环的银谷大厦静悄悄的创办了小米公司&#xff0c;一起喝了碗小米粥&#xff0c;就开始艰难的创业之旅。仅仅两年时间&#xff0c;小米在百度手机品牌排行榜排在前五名&#xff0c;也在淘宝销售排行榜名列前茅&#xff0…

身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君

他的前半生&#xff0c;值得我们每一个人深思。 在普通人眼里&#xff0c;他寂寂无名&#xff0c;只有年岁稍长的文化人&#xff0c;才听说过他传奇般的存在。 在IT人眼里&#xff0c;他是块活化石&#xff0c;中国第一的大旗除了他&#xff0c;没人敢抗&#xff01; 他是求…

雷军主导小米管理层变革:创业派隐退 职业经理人上位

雷递网 雷建平 12月23日 岁末之际&#xff0c;在京东零售大幅调整后&#xff0c;小米也进行了一轮大调整。 小米集团内部邮件所示&#xff0c;小米总裁王翔将在月底卸任集团总裁职务退休&#xff0c;同时&#xff0c;继续作为高级顾问为公司服务。 小米集团总裁一职将由2019年加…

雷军与周鸿祎:两个九头鸟的战争

一场 智能手机 的口水大战将雷军和周鸿祎推到风口浪尖。有一句俗话叫“天上九头鸟&#xff0c;地上湖北佬”&#xff0c;来形容湖北人的精明、睿智。 小米科技董事长兼CEO雷军、奇虎360董事长周鸿祎同是湖北人。雷军1969年12月16日于湖北仙桃&#xff0c;一个教师家庭&#…

雷军的演讲以及产品发布

8月11号是小米的发布会&#xff0c;还有雷军的年度演讲。 因为工作冲突我没看直播&#xff0c;晚上回来看了公众号文章和知乎上的内容讨论&#xff0c;也看了发布的新产品。 雷军那个年代能够做上程序员一定是非常牛逼的人&#xff0c;而雷军是这些牛逼人的公司总经理&#xff…

雷军写代码水平如何?

3月30日&#xff0c;小米集团发布公告&#xff0c;公司拟成立一家全资子公司&#xff0c;负责智能电动汽车业务。首期投资为100亿元人民币&#xff0c;预计未来10年投资额100亿美元&#xff0c;而智能电动汽车业务的首席执行官依然由雷军担任。 雷军说&#xff1a;我愿意押上我…

雷军 1994 年写的代码

&#xff08;给程序员的那些事加星标&#xff09; 整合整理&#xff1a;程序员的那些事&#xff08;id&#xff1a;iProgrammer&#xff09; 前些天&#xff0c;「程序员的那些事」在趣图栏目中分享了《趣图&#xff1a;雷军的代码像诗一样优雅》。 有些网友在评论中质疑&#…

从小米科技的创始人、董事长、首席执行官雷军的代码水平说起

作为小米科技的创始人、董事长和首席执行官&#xff0c;雷军的名字如雷贯耳。那么作为技术员出身的雷军&#xff0c;他的代码水平如何&#xff0c;最近也成为网上的一个热点议题。 伴随这个热点议题一起出现的是雷军写于1994年的RAMinit程序源码。 ; &#xff08;完整代码附后…

雷军 1994 年写的代码,你见过吗?厉害了!

作为小米科技的创始人、董事长和首席执行官&#xff0c;雷军的名字如雷贯耳。网上出现一篇“刘强东的代码水平如何”的文章&#xff0c;有网友在下面回复“代码只服雷军”。雷军的代码水平真的很牛吗? 原来雷军年轻的时候&#xff0c;也是一名程序员&#xff0c;而且一干就是…

Verilog面试题(一)——2020乐鑫科技数字IC(串转并、饮料售卖机)

文章目录 题目一&#xff1a;将一个串行执行的C语言算法转化为单拍完成的并行可综合verilog。思路代码知乎数字芯片实验室牛客讨论区 题目二&#xff1a;饮料售卖机思路E课网代码&#xff08;牛客讨论区&#xff09; 题目一&#xff1a;将一个串行执行的C语言算法转化为单拍完成…