Python如何实现打乒乓小游戏
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章给大家分享的是有关Python如何实现打乒乓小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。源码奉上:import sysimport cfgimport py
千家信息网最后更新 2025年11月08日Python如何实现打乒乓小游戏
这篇文章给大家分享的是有关Python如何实现打乒乓小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
源码奉上:
import sysimport cfgimport pygamefrom modules import * '''定义按钮'''def Button(screen, position, text, button_size=(200, 50)): left, top = position bwidth, bheight = button_size pygame.draw.line(screen, (150, 150, 150), (left, top), (left+bwidth, top), 5) pygame.draw.line(screen, (150, 150, 150), (left, top-2), (left, top+bheight), 5) pygame.draw.line(screen, (50, 50, 50), (left, top+bheight), (left+bwidth, top+bheight), 5) pygame.draw.line(screen, (50, 50, 50), (left+bwidth, top+bheight), (left+bwidth, top), 5) pygame.draw.rect(screen, (100, 100, 100), (left, top, bwidth, bheight)) font = pygame.font.Font(cfg.FONTPATH, 30) text_render = font.render(text, 1, (255, 235, 205)) return screen.blit(text_render, (left+50, top+10)) '''Function: 开始界面Input: --screen: 游戏界面Return: --game_mode: 1(单人模式)/2(双人模式)'''def startInterface(screen): clock = pygame.time.Clock() while True: screen.fill((41, 36, 33)) button_1 = Button(screen, (150, 175), '1 Player') button_2 = Button(screen, (150, 275), '2 Player') for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: if button_1.collidepoint(pygame.mouse.get_pos()): return 1 elif button_2.collidepoint(pygame.mouse.get_pos()): return 2 clock.tick(10) pygame.display.update() '''结束界面'''def endInterface(screen, score_left, score_right): clock = pygame.time.Clock() font1 = pygame.font.Font(cfg.FONTPATH, 30) font2 = pygame.font.Font(cfg.FONTPATH, 20) msg = 'Player on left won!' if score_left > score_right else 'Player on right won!' texts = [font1.render(msg, True, cfg.WHITE), font2.render('Press ESCAPE to quit.', True, cfg.WHITE), font2.render('Press ENTER to continue or play again.', True, cfg.WHITE)] positions = [[120, 200], [155, 270], [80, 300]] while True: screen.fill((41, 36, 33)) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_RETURN: return elif event.key == pygame.K_ESCAPE: sys.exit() pygame.quit() for text, pos in zip(texts, positions): screen.blit(text, pos) clock.tick(10) pygame.display.update() '''运行游戏Demo'''def runDemo(screen): # 加载游戏素材 hit_sound = pygame.mixer.Sound(cfg.HITSOUNDPATH) goal_sound = pygame.mixer.Sound(cfg.GOALSOUNDPATH) pygame.mixer.music.load(cfg.BGMPATH) pygame.mixer.music.play(-1, 0.0) font = pygame.font.Font(cfg.FONTPATH, 50) # 开始界面 game_mode = startInterface(screen) # 游戏主循环 # --左边球拍(ws控制, 仅双人模式时可控制) score_left = 0 racket_left = Racket(cfg.RACKETPICPATH, 'LEFT', cfg) # --右边球拍(↑↓控制) score_right = 0 racket_right = Racket(cfg.RACKETPICPATH, 'RIGHT', cfg) # --球 ball = Ball(cfg.BALLPICPATH, cfg) clock = pygame.time.Clock() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit(-1) screen.fill((41, 36, 33)) # 玩家操作 pressed_keys = pygame.key.get_pressed() if pressed_keys[pygame.K_UP]: racket_right.move('UP') elif pressed_keys[pygame.K_DOWN]: racket_right.move('DOWN') if game_mode == 2: if pressed_keys[pygame.K_w]: racket_left.move('UP') elif pressed_keys[pygame.K_s]: racket_left.move('DOWN') else: racket_left.automove(ball) # 球运动 scores = ball.move(ball, racket_left, racket_right, hit_sound, goal_sound) score_left += scores[0] score_right += scores[1] # 显示 # --分隔线 pygame.draw.rect(screen, cfg.WHITE, (247, 0, 6, 500)) # --球 ball.draw(screen) # --拍 racket_left.draw(screen) racket_right.draw(screen) # --得分 screen.blit(font.render(str(score_left), False, cfg.WHITE), (150, 10)) screen.blit(font.render(str(score_right), False, cfg.WHITE), (300, 10)) if score_left == 11 or score_right == 11: return score_left, score_right clock.tick(100) pygame.display.update() '''主函数'''def main(): # 初始化 pygame.init() pygame.mixer.init() screen = pygame.display.set_mode((cfg.WIDTH, cfg.HEIGHT)) pygame.display.set_caption('pingpong -- 九歌') # 开始游戏 while True: score_left, score_right = runDemo(screen) endInterface(screen, score_left, score_right) '''run'''if __name__ == '__main__': main()感谢各位的阅读!关于"Python如何实现打乒乓小游戏"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
界面
模式
控制
小游戏
内容
更多
球拍
篇文章
不错
实用
九歌
函数
右边
得分
按钮
文章
游戏界面
源码
玩家
球运动
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全行业盛会2020
网络安全为人民团课课件
软件开发逾期是普遍现象
广东酒店软件开发常见问题
哪个服务器搭建发卡平台好
醴陵市软件开发学校
web服务器 tcp
我的世界java版海贼王服务器
战地五怎么成为服务器管理员
欧洲最新网络安全事件
软件开发数据库架构模板
远程登录服务器怎么安全退出
计算机网络安全工作经历
软件开发黑科
base数据库怎么用
开源网络安全公司
非洲软件开发工作机会
oracle如何查看数据库用户
提高服务器租用安全性
御龙网络安全插画
大数据库怎么删除
40岁到光谷做软件开发
软件开发外包公司挣钱多吗
网络安全的征文4年级
查询数据库的科目编码
汝州市网络安全宣传
籽岷服务器pvp
光网络技术可分
江西赣州网络安全宣传
游戏多服 数据库同步