一个python游戏源码
#finalPyPong.py import pygame,sys class MyBallClass(pygame.sprite.Sprite):
def __init__(self,image_file,speed,location=[0,0]):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(image_file)
self.rect = self.image.get_rect()
self.rect.left,self.rect.top = location
self.speed = speed def move(self):
global points,score_text self.rect = self.rect.move(self.speed) if self.rect.left < 0 or self.rect.right > screen.get_width():
self.speed[0] = -self.speed[0] if self.rect.top < screen.get_height():
hit_wall.play() if self.rect.top <=0 : self.speed[1] = -self.speed[1]
points = points + 1
score_text = font.render(str(points),1,(0,0,0))
get_point.play() class MyPaddleClass(pygame.sprite.Sprite):
def __init__(self,location=[0,0]):
pygame.sprite.Sprite.__init__(self)
image_surface = pygame.surface.Surface([100,20])
image_surface.fill([0,0,0])
self.image = image_surface.convert()
self.rect = self.image.get_rect()
self.rect.left,self.rect.top = location pygame.init()
pygame.mixer.init() pygame.mixer.music.load("bg_music.mp3")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(-1) hit = pygame.mixer.Sound("hit_paddle.wav")
hit.set_volume(0.4) new_life = pygame.mixer.Sound("new_life.wav")
new_life.set_volume(0.5) splat = pygame.mixer.Sound("splat.wav")
splat.set_volume(0.6) hit_wall = pygame.mixer.Sound("hit_wall.wav")
hit_wall.set_volume(0.4) get_point = pygame.mixer.Sound("get_point.wav")
get_point.set_volume(0.2) bye = pygame.mixer.Sound("game_over.wav")
bye.set_volume(0.6) screen = pygame.display.set_mode([640,480])
clock = pygame.time.Clock() myBall = MyBallClass("wackyball.bmp",[12,6],[50,50])
ballGroup = pygame.sprite.Group(myBall)
paddle = MyPaddleClass([270,400])
lives = 3
points = 0 font = pygame.font.Font(None,50)
score_text = font.render(str(points),1,(0,0,0))
textpos = [10,10]
done = False while 1:
clock.tick(30)
screen.fill([255,255,255]) for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.MOUSEMOTION:
paddle.rect.centerx = event.pos[0] if pygame.sprite.spritecollide(paddle,ballGroup,False):
hit.play() myBall.speed[1] = -myBall.speed[1] myBall.move() if not done:
screen.blit(myBall.image,myBall.rect)
screen.blit(paddle.image,paddle.rect)
screen.blit(score_text,textpos) for i in range(lives):
width = screen.get_width()
screen.blit(myBall.image,[width-40*i,20])
pygame.display.flip() if myBall.rect.top >= screen.get_rect().bottom:
if not done:
splat.play()
lives = lives - 1 if lives <= 0:
if not done:
pygame.time.delay(1000)
bye.play() final_text1 = "Game Over"
final_text2 = "Your final socre is: " + str(points) ft1_font = pygame.font.Font(None,70)
ft1_surf = font.render(final_text1,1,(0,0,0)) ft2_font = pygame.font.Font(None,50)
ft2_surf = font.render(final_text2,1,(0,0,0)) screen.blit(ft1_surf,[screen.get_width()/2 - ft1_surf.get_width()/2,100])
screen.blit(ft2_surf,[screen.get_width()/2 - ft2_surf.get_width()/2,200]) pygame.display.flip()
done = True pygame.mixer.music.fadeout(2000)
else:
pygame.time.delay(1000)
new_life.play() myBall.rect.topleft = [50,50]
screen.blit(myBall.image,myBall.rect)
pygame.display.flip() pygame.time.delay(1000)
一个python游戏源码的更多相关文章
- 随手用python写一个下载jdk源码爬虫
最近在研读jdk源码,网上找了下资源,发现都不完整. 后来新发现了一个有完整源码的地方,主要包括了java,c,c++的东西,装逼需要,就想拿来玩玩.但是,找了好多种下载打开的方式,发现都不对.于是, ...
- 比较不错的一个ios找茬游戏源码
找茬游戏源码 ,这个是一款非常不错的ios找茬游戏源码,该游戏的兼容性非常好的,并且还可以支持ipad和iphone,UI界面设计得也很漂亮,游戏源码真的是一款非常完美,而且又很完整的一款休闲类的游戏 ...
- html5 canvas简易版捕鱼达人游戏源码
插件描述:html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠标移出背景图,再移入的时候就可以控制炮的转动,因为是用的mouseover触 ...
- ios跑酷游戏源码完整版
今天在网上看到了一个很流行的ios游戏源码,酷跑游戏源码,个人下载感觉非常不错,运行起来非常不错的,大家可以研究一下吧,由于源码文件较大,没有上传,请大家见谅. 由于文件较大,没有上传了,大家可以到这 ...
- ios源码-ios游戏源码-ios源码下载
游戏源码 一款休闲类的音乐小游戏源码 该源码实现了一款休闲类的音乐小游戏源码,该游戏的源码很简单,而且游戏的玩法也很容易学会,只要我们点击视图中的grid,就可以 人气:2943运行环境:/Xco ...
- android版猜拳游戏源码分享
android版猜拳游戏源码分享安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的 ...
- 飞翔的圆(Flappy Bird)游戏源码
这个源码是一个不错的休闲类的游戏源码,飞翔的圆(Flappy Bird)游戏源码V1.0,本项目是一个仿Flappy Bird的小游戏,只不过是把Flappy Bird里面的鸟替换成了简单的圆.感兴趣 ...
- ios水果风暴游戏源码下载
游戏源码是从那个IOS教程网IOS.662p.com分享给大家的. 这是一款ios水果风暴游戏源码下载,介绍给大家一下,喜欢的朋友可以下载学习一下吧.应用介绍:这是一个以获得高分和挑战更高难度为目的的 ...
- Android版的疯狂猜图游戏源码完整版分享
这个游戏源码是在安装教程网那么分享过来的,Android版的疯狂猜图游戏源码完整版分享,也是本人之前很早以前发的一款游戏源码的,大家如果想了解一下,可以看看吧,不说多了,上一个图先吧. > ...
随机推荐
- Linux中查看已安装内存与交换空间使用情况
目录 1. free查看内存使用量 2. 查看 /proc/meminfo 文件获取物理内存信息 3. top命令获取内存用量 1. free查看内存用量命令 该命令是专门用于查看内存用量 ...
- SI - 硬件 - 服务器 - 知识科普
服务器对每个从事IT工作的人来说并不陌生,但是服务器所涉及的各种知识细节,并非大家都十分清楚,为了让大家深入了解服务器的关键知识点,笔者特意抽时间总结了这篇科普文章,旨在帮助读者全面了解服务器.今天内 ...
- CSS基础全荟
一.CSS概述 1.css是什么?? 层叠样式表 2.css的引入方式 1.行内样式 在标签上加属性style="属性名1:属性值1;属性名2:属性值2;..." 2.内嵌式 ...
- 关于<meta name="viewport" content="width= device-width,user-scalable= 0,initial-scale= 1.0,minimum-scale= 1.0">
<meta name="viewport" content=" width= device-width, user-scalable= 0, initial-sca ...
- visual studio 2015密钥
Visual Studio Professional 2015简体中文版(专业版)KEY:HMGNV-WCYXV-X7G9W-YCX63-B98R2Visual Studio Enterprise 2 ...
- Python练习笔记(2)
文件读写,多线程.多进程 import time,os,threading,random def file_read(path): try: with open(path, 'r') as f: # ...
- 第一个python代码
# -*- coding:utf-8 -*- user = raw_input("请输入用户名") passwd = raw_input("请输入密码") if ...
- C语言实例解析精粹学习笔记——32
实例32: 编制一个包含姓名.地址.邮编和电话的通讯录输入和输出函数. 思路解析: 1.用结构体来完成姓名.地址.邮编和电话的组合. 2.结构体指针的使用. 3.malloc的使用 4.scanf函数 ...
- 10-C++远征之模板篇-学习笔记
C++远征之模板篇 将会学到的内容: 模板函数 & 模板类 -> 标准模板类 友元函数 & 友元类 静态数据成员 & 静态成员函数 运算符重载: 一切皆有可能 友元函数 ...
- C# 控制台应用程序输出颜色字体
最佳解决方案的代码: static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.W ...