Python如何实现打乒乓小游戏
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章给大家分享的是有关Python如何实现打乒乓小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。源码奉上:import sysimport cfgimport py
千家信息网最后更新 2025年01月18日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安全错误
数据库的锁怎样保障安全
数据库系统的特点不包括____
网络安全的特性应具有
盈克网络技术推广
浙江网络技术转让优点
网络安全法考试考什么
国内外网络安全培训 大纲
免费服务器vps
计算机等级证书网络技术
对日软件开发干多久跳槽
如何给数据库表中数据改名
数据库应用中创建连接对象
网络安全的征文500
网络安全同步建设
计算机网络技术c类网络地址
moxa串口服务器配置
吉利科技卫星互联网
无法连接云端服务器有啥影响
软件开发创新发展过程
广东公安厅网络安全监察处
我的世界里的修仙服务器
链环科技怎么转型互联网
华硕软件开发工资
软件开发模板文件管理
软件开发中的ccr
数据库 测试数据
局域网服务器架设全过程
肥城软件开发价格
内蒙古学生网络技术咨询哪家好
浏览器数据库太大了怎么办
网银数据库安全吗