今天我们用python和pygame实现一个乒乓球的小游戏,或者叫弹珠球游戏。

笑脸乒乓球游戏功能介绍

乒乓球游戏功能如下:

乒乓球从屏幕上方落下,用鼠标来移动球拍,使其反弹回去,并获得得分,如果没有接到该球,则失去一条命。玩家有一定数量的命如5。

游戏设计思路

根据游戏规则,我们需要

1、初始化游戏环境

2、画出乒乓球,球拍等

3、设置乒乓球的运动,并监听鼠标,以移动球拍

4、判断乒乓球被接住与否

5、游戏是否结束,是否再玩。

代码实现

import pygame

pygame.init()

screen_width=800

screen_height=600

screen=pygame.display.set_mode([screen_width,screen_height])

pygame.display.set_caption("笑脸乒乓球")

keepGoing=True

pic=pygame.image.load("CrazySmile.bmp")

colorkey = pic.get_at((0,0))

pic.set_colorkey(colorkey)

picx=0

picy=0

BLACK=(0,0,0)

WHITE=(255,255,255)

timer=pygame.time.Clock()

paddle_width=200

paddle_height=25

paddle_x=300

paddle_y=550

speedx=5

speedy=5

#图片的高度和宽度

pic_width=pic.get_width()

pic_height=pic.get_height()

#分数和命

points=0

lives=5

font=pygame.font.SysFont("Times",24)

pop = pygame.mixer.Sound("pop.wav")

while keepGoing:

for event in pygame.event.get():

if event.type==pygame.QUIT:

keepGoing=False

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_F1: # F1 = New Game

points = 0

lives = 5

picx = 0

picy = 0

speedx = 5

speedy = 5

pop.play()

picx += speedx

picy += speedy

if picx <= 0 or picx >= 700:

speedx = -speedx * 1.1

if picy <= 0:

speedy = -speedy + 1

if picy >= 500:

lives -= 1

speedy = -5

speedx = 5

picy = 499

# if picx <= 0 or picx + pic_width > screen_width:

# speedx = -speedx

# if picy <= 0:

# speedy = -speedy

# if picy >= 500:

# lives -= 1

# speedy = -speedy

screen.fill(BLACK)

screen.blit(pic, (picx, picy))

# 画出球拍

paddle_x = pygame.mouse.get_pos()[0]

paddle_x -= paddle_width / 2

pygame.draw.rect(screen, WHITE, (paddle_x, paddle_y, paddle_width, paddle_height))

#判断接住乒乓球

if picy + pic_width > paddle_y and picy + pic_height < paddle_y + paddle_height and speedy > 0:

if picx + pic_width / 2 > paddle_x and picx + pic_width / 2 < paddle_x + paddle_width:

points += 1

speedy = -speedy

# 在屏幕上画出得分

draw_string = "Lives: " + str(lives) + " Points: " + str(points)

if lives<1:

draw_string="Game Over. Your scores is "+str(points)

draw_string+="press F1 to play again"

text = font.render(draw_string, True, WHITE)

text_rect = text.get_rect()

text_rect.centerx = screen.get_rect().centerx

text_rect.y = 10

screen.blit(text, text_rect)

pygame.display.update()

timer.tick(60)

pygame.quit()

代码中用的乒乓球是如下图片。

总结

1、通过上述代码,功能基本实现

2、可以有很多改进,如通过键盘来操控球拍,如给游戏加上背景音乐,其中加音乐的方法是

pop = pygame.mixer.Sound("pop.wav")

pop.play()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。

Linux乒乓球游戏,python使用pygame实现笑脸乒乓球弹珠球游戏相关推荐

  1. python 乒乓球_python使用pygame实现笑脸乒乓球弹珠球游戏

    今天我们用python和pygame实现一个乒乓球的小游戏,或者叫弹珠球游戏. 笑脸乒乓球游戏功能介绍 乒乓球游戏功能如下: 乒乓球从屏幕上方落下,用鼠标来移动球拍,使其反弹回去,并获得得分,如果没有 ...

  2. 【Python游戏】基于Python的pygame模块实现的天天酷跑游戏 | 附带源码

    前言 我相信很多小伙伴都玩过的第一个腾讯游戏,那就是天天酷跑,还记得之前为了凑齐钻石买小单车.人物.坐骑,小编可是花费了老长时间去弄这个的!!不过现在的天天酷跑随便冲个钱都能上大几百万分,没有了以前的 ...

  3. python编程小游戏-python趣味入门——写几个常玩的游戏

    文档介绍 利用python写"猜数字","猜词语","谁是卧底"这三个游戏,从而快速掌握python编程的入门知识,包括python语法/列 ...

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

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

  5. python猜大小游戏,Python实现的摇骰子猜大小功能小游戏示例

    搜索热词 本文实例讲述了Python实现的摇骰子猜大小功能小游戏.分享给大家供大家参考,具体如下: 最近学习Python的随机数,逻辑判断,循环的用法,就想找一些练习题,比如小游戏猜大小,程序思路如下 ...

  6. python弹球游戏实验报告_弹珠小游戏课程设计实验报告

    摘要: 这个小程序是关于弹珠的小游戏, 游戏比较简单, 以小球的速度来区分游戏的难易. 该小程序是用左右键控制游戏的开始和挡板的方向,不让小球落到底端,当然,小球的 速度越快,该游戏的难度也就越大.此 ...

  7. Pygame之接小弹珠

    目录 游戏介绍 效果展示 游戏代码 项目资源 游戏介绍 小学生都不一定会晚的游戏,用挡板接住会反弹的小球,随着次数的增多,速度变快,分数增多. 效果展示 游戏代码 import pygame as p ...

  8. 碰球游戏java课设实验体会_对碰球游戏教案

    活动目标:1.能合拍地随音乐边拍手唱歌边走步.2.用不同的动作方式与同伴相"碰",学会按指令做出迅速准确的反应.3.体验与同伴合作.交流的友好情感和愉快心情.活动准备:1.在日常活 ...

  9. Java(awt)实现弹珠小游戏

    package Dzgame;import javax.swing.border.Border; import java.awt.*; import java.awt.event.*; import ...

最新文章

  1. Linux 常用命令九 tar
  2. 如何使用gnvm自动更新Windows10操作系统上的nodejs
  3. qq流浏览器网页版_如何使QQ浏览器浏览简洁
  4. 如何用blend创建自定义窗口
  5. 前端开发之功能封装大全
  6. html表格编辑器退出编辑状态,易优后台编辑器取消html标签(比如表格属性等)过滤解决方法...
  7. 如何在不知道密码的情况下卸载趋势防毒墙网络版
  8. 简单奥数题 c语言基础
  9. 《托福写作——100 个替换词汇》
  10. 【清华大学】深入理解操作系统(陈渝) 第二章
  11. 一张电影票引发的思考,谈谈边际成本和机会成本
  12. AutoIt:常用文件操作
  13. unity 获取本地视频/下载网络视频
  14. 可编程定时/计数器 8253/8254
  15. IEEE Transactions on Industrial Informatics(TII)投稿须知
  16. 安卓开发SlidingDrawer实现抽屉效果
  17. 流媒体的几种播放方式
  18. 杭电oj11页 (c++) 31-40
  19. [root@localhost ~]#每个字符的意思
  20. 红外热成像检测的缺陷

热门文章

  1. 把HTML5静态网页部署到阿里云服务器
  2. 9.Metasploit制作木马后门
  3. Gluster部署及ganesha导出实践
  4. docker制作个人博客
  5. Word2013中进行拼写和语法检查时如何设置默认校对语言
  6. springboot实现excel的上传并解析文件内容
  7. 汉得笔试题oracle,【汉得java开发笔试回忆总结】
  8. Thread守护线程判断每位员工是否可以下班,要求员工时间大于或等于8小时才能够下班
  9. 通过14个示例彻底掌握 linux ls 命令的使用
  10. 银行、证券行业云计算身份识别服务器深度开发