① pygame中找不到stream:RuntimeError: Can't seek in stream
字体没有定义
可以使用体统自带的字体
pygame.font.SysFont("arial", 60) 替换 pygame.font.Font(None,60) 试试
② 在线等!求一个python 五子棋源代码,最好是有“人人对弈”和“人机对弈”功能的,不胜感谢!
试试这个吧。
import numpy as np
import pygame
import sys
import traceback
import
from pygame.locals import *
pygame.init()
pygame.mixer.init()
#颜色
background=(201,202,187)
checkerboard=(80,80,80)
button=(52,53,44)
#音乐
play_chess_sound = pygame.mixer.Sound("music/play_chess.wav")
play_chess_sound.set_volume(0.2)
button_sound = pygame.mixer.Sound("music/button.wav")
button_sound.set_volume(0.2)
victor_sound = pygame.mixer.Sound("music/victory.wav")
victor_sound.set_volume(0.2)
#绘制棋盘
def Draw_a_chessboard(screen):
#填充背景色
screen.fill(background)
Background=pygame.image.load("background.jpg").convert_alpha()
screen.blit(Background,(0,0))
#画棋盘
for i in range(21):
pygame.draw.line(screen, checkerboard, (40*i+3, 3), (40*i+3, 803))
pygame.draw.line(screen, checkerboard, (3, 40*i+3), (803, 40*i+3))
#画边线
pygame.draw.line(screen, checkerboard, (3, 3), (803, 3),5)
pygame.draw.line(screen, checkerboard, (3, 3), (3, 803),5)
pygame.draw.line(screen, checkerboard, (803, 3), (803, 803),5)
pygame.draw.line(screen, checkerboard, (3, 803), (803, 803),5)
#画定位点
pygame.draw.circle(screen, checkerboard, (163, 163), 6)
pygame.draw.circle(screen, checkerboard, (163, 643), 6)
pygame.draw.circle(screen, checkerboard, (643, 163), 6)
pygame.draw.circle(screen, checkerboard, (643, 643), 6)
pygame.draw.circle(screen, checkerboard, (403, 403), 6)
#画‘悔棋’‘重新开始’跟‘退出’按钮
pygame.draw.rect(screen,button,[900,350,120,100],5)
pygame.draw.rect(screen,button,[900,500,200,100],5)
pygame.draw.rect(screen,button,[900,650,200,100],5)
s_font=pygame.font.Font('font.ttf',40)
text1=s_font.render("悔棋",True,button)
text2=s_font.render("重新开始",True,button)
text3=s_font.render("退出游戏",True,button)
screen.blit(text1,(920,370))
screen.blit(text2,(920,520))
screen.blit(text3,(920,670))
#绘制棋子(横坐标,纵坐标,屏幕,棋子颜色(1代表黑,2代表白))
def Draw_a_chessman(x,y,screen,color):
if color==1:
Black_chess=pygame.image.load("Black_chess.png").convert_alpha()
screen.blit(Black_chess,(40*x+3-15,40*y+3-15))
if color==2:
White_chess=pygame.image.load("White_chess.png").convert_alpha()
screen.blit(White_chess,(40*x+3-15,40*y+3-15))
#绘制带有棋子的棋盘
def Draw_a_chessboard_with_chessman(map,screen):
screen.fill(background)
Draw_a_chessboard(screen)
for i in range(24):
for j in range(24):
Draw_a_chessman(i+1,j+1,screen,map[i][j])
#定义存储棋盘的列表,
#列表为24列24行是因为判断是否胜利函数里的索引会超出19
#列表大一点不会对游戏有什么影响
map=[]
for i in range(24):
map.append([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
#清零map列表
def clear():
global map
for i in range(24):
for j in range(24):
map[i][j]=0
#判断是否胜利
def win(i, j):
k = map[i][j]
p=[]
for a in range(20):
p.append(0)
for i3 in range(i-4,i+5):
for j3 in range(j-4,j+5):
if (map[i3][j3] == k and i3 - i == j3 - j and i3 <= i and j3 <= j):
p[0]+=1
if (map[i3][j3] == k and j3 == j and i3 <= i and j3 <= j):
p[1]+=1
if (map[i3][j3] == k and i3 == i and i3 <= i and j3 <= j):
p[2]+=1
if (map[i3][j3] == k and i3 - i == j3 - j and i3 >= i and j3 >= j):
p[3]+=1
if (map[i3][j3] == k and j3 == j and i3 >= i and j3 >= j):
p[4]+=1
if (map[i3][j3] == k and i3 == i and i3 >= i and j3 >= j):
p[5]+=1
if (map[i3][j3] == k and i - i3 == j3 - j and i3 <= i and j3 >= j):
p[6]+=1
if (map[i3][j3] == k and i3 - i == j - j3 and i3 >= i and j3 <= j):
p[7]+=1
if (map[i3][j3] == k and j - j3 == i - i3 and i3 <= i + 1 and i3 >= i - 3 and j3 <= j + 1 and j3 >= j - 3):
p[8]+=1
if (map[i3][j3] == k and j == j3 and i3 <= i + 1 and i3 >= i - 3 and j3 <= j + 1 and j3 >= j - 3):
p[9]+=1
if (map[i3][j3] == k and i == i3 and i3 <= i + 1 and i3 >= i - 3 and j3 <= j + 1 and j3 >= j - 3):
p[10]+=1
if (map[i3][j3] == k and j - j3 == i - i3 and i3 >= i - 1 and i3 <= i + 3 and j3 >= j - 1 and j3 <= j + 3):
p[11]+=1
if (map[i3][j3] == k and j == j3 and i3 >= i - 1 and i3 <= i + 3 and j3 >= j - 1 and j3 <= j + 3):
p[12]+=1
if (map[i3][j3] == k and i == i3 and i3 >= i - 1 and i3 <= i + 3 and j3 >= j - 1 and j3 <= j + 3):
p[13]+=1
if (map[i3][j3] == k and i - i3 == j3 - j and i3 <= i + 1 and i3 >= i - 3 and j3 >= j - 1 and j3 <= j + 3):
p[14]+=1
if (map[i3][j3] == k and i3 - i == j - j3 and i3 >= i - 1 and i3 <= i + 3 and j3 <= j + 1 and j3 >= j - 3):
p[15]+=1
if (map[i3][j3] == k and j - j3 == i - i3 and i3 <= i + 2 and i3 >= i - 2 and j3 <= j + 2 and j3 >= j - 2):
p[16]+=1
if (map[i3][j3] == k and j == j3 and i3 <= i + 2 and i3 >= i - 2 and j3 <= j + 2 and j3 >= j - 2):
p[17]+=1
if (map[i3][j3] == k and i == i3 and i3 <= i + 2 and i3 >= i - 2 and j3 <= j + 2 and j3 >= j - 2):
p[18]+=1
if (map[i3][j3] == k and i - i3 == j3 - j and i3 <= i + 2 and i3 >= i - 2 and j3 <= j + 2 and j3 >= j - 2):
p[19]+=1
for b in range(20):
if p[b]==5:
return True
return False
#绘制提示器(类容,屏幕,字大小)
def text(s,screen,x):
#先把上一次的类容用一个矩形覆盖
pygame.draw.rect(screen,background,[850,100,1200,100])
#定义字体跟大小
s_font=pygame.font.Font('font.ttf',x)
#定义类容,是否抗锯齿,颜色
s_text=s_font.render(s,True,button)
#将字放在窗口指定位置
screen.blit(s_text,(880,100))
pygame.display.flip()
#用于控制顺序
t=True
#用于结束游戏后阻止落子
running=True
#主函数
def main():
#将 t,map,running设置为可改的
global t,map,running,maps,r,h
#将map置零
clear()
#定义储存所有棋盘状态的列表(用于悔棋)
map2=.deep(map)
maps=[map2]
#定义窗口
screen = pygame.display.set_mode([1200,806])
#定义窗口名字
pygame.display.set_caption("五子棋")
#在窗口画出棋盘,提示器以及按钮
Draw_a_chessboard(screen)
pygame.display.flip()
clock=pygame.time.Clock()
while True:
#只有running为真才能落子,主要用于游戏结束后防止再次落子
if running:
if t:
color=1
text('黑棋落子',screen,54)
else:
color=2
text('白棋落子',screen,54)
for event in pygame.event.get():
#点击x则关闭窗口
if event.type ==pygame.QUIT:
pygame.quit()
sys.exit()
#点击窗口里面类容则完成相应指令
elif event.type == MOUSEBUTTONDOWN:
if event.button == 1:
x,y=event.pos[0],event.pos[1]
for i in range(19):
for j in range(19):
#点击棋盘相应位置
if i*40+3+20<x<i*40+3+60 and j*40+3+20<y<j*40+3+60 and not map[i][j] and running:
#在棋盘相应位置落相应颜色棋子
Draw_a_chessman(i+1,j+1,screen,color)
#播放音效
play_chess_sound.play(0)
#在map里面记录落子位置
map[i][j]=color
#将map存入maps
map3=.deep(map)
maps.append(map3)
#判断落子后是否有五子一线
if win(i,j):
if t:
text('黑棋胜利,请重新游戏',screen,30)
else:
text('白棋胜利,请重新游戏',screen,30)
#播放音效
victor_sound.play(0)
#阻止再往棋盘落子
running=False
pygame.display.flip()
t=not t
#如果点击‘重新开始’
if 900<x<1100 and 500<y<600:
#取消阻止
running=True
#播放音效
button_sound.play(0)
#重新开始
main()
#点击‘退出游戏’,退出游戏
elif 900<x<1100 and 650<y<750:
#播放音效
button_sound.play(0)
pygame.quit()
sys.exit()
#点击‘悔棋’
elif 900<x<1020 and 350<y<450 and len(maps)!=1:
#播放音效
button_sound.play(0)
#删除maps里最后一个元素
del maps[len(maps)-1]
#再将最后一个元素给map
map=.deep(maps[len(maps)-1])
#切换顺序
t=not t
#将map显示出来
Draw_a_chessboard_with_chessman(map,screen)
#悔棋完成,阻止再次悔棋
x,y=0,0
clock.tick(60)
if __name__ == "__main__":
try:
main()
except SystemExit:
pass
except:
traceback.print_exc()
pygame.quit()
input()
③ 有人用过pygame subset for android没
你好,很高兴为你解答,用得还不错,可以在pc上开发,不用开模拟器,~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。
④ python做游戏好用吗
Python做游戏是完全可以的,而且也非常简单,有一个专门针对游戏开发的平台(模块)—pygame,允许开发人员快速设计游戏而又摆脱了低级语言的束缚,下面我简单介绍一下这个模块的安装和使用:
1、首先,安装pygame模块,这个直接在cmd窗口中输入命令“pip install pygame”就行,如下,很快就能安装成功:
2、安装成功后,我们就可以在Python的site-packages里面找到刚才安装的pygame模块,下面就有pygame自带的游戏示例examples,如下:
相关推荐:《Python入门教程》
3、这里我们测试几个小示例,非常简单,类似于运行普通Python脚本一样,直接Python+脚本名运行就行:
第一个示例—alien.py,类似于打飞机的小游戏,可以左右移动,发射子弹:
效果如下,玩起来还不错:
第二个示例—liquid.py,类似于滚动的波纹一样,可以来回滚动:
效果如下,看着还不错:
当然,还有其他游戏脚本,像OpenGL 3D立体效果等,这里就不多说了,可以自行测试,命令都是一样的。
4、pygame官网也有许多丰富的游戏示例,都有对应的源码可供开发者学习和参考,感兴趣的朋友可以自己下载尝试一下:
至此,我们就完成了pygame模块的安装和简单使用。总的来说,这个模块非常不错,对于开发小型游戏来说,非常快速也非常容易,当然,你也可以把它当做Python桌面GUI库来使用,也非常不错,但是如果你想开发大型游戏,追求游戏性能和体验的话,建议还是使用Unity3D或者C++,效果更好,网上也有相关资料和教程可供参考,感兴趣的话,可以搜一下。
⑤ python 适合做什么开发
主要可以做小程序,爬虫程序,用于系统编程等等还是很广泛的。
Python 的应用领域分为下面几类。下文将介绍一些Python 具体能帮我们做的事情。但我们不会对各个工具进行深入探讨,如果你对这些话题感兴趣,请从老男孩python培训网站或其他一些资源中获取更多的信息。
1.python可以用于系统编程 Python 对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件(有时也被称为Shell 工具)的理想工具。
Python 程序可以搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等等。
2.python可以用于用户图形接口
Python 的简洁以及快速的开发周期十分适合开发GUI 程序。此外,基于C++ 平台的工具包wxPython GUI API 可以使用Python 构建可移植的GUI 。
诸如PythonCard 和Dabo 等一些高级工具包是构建在wxPython 和Tkinter 的基础API 之上的。通过适当的库,你可以使用其他的GUI 工具包,例如,Qt 、GTK 、MFC 和Swing 等。
3.python可以用于Internet 脚本
Python 提供了标准Internet 模块,使Python 能够广泛地在多种网络任务中发挥作用,无论是在服务器端还是在客户端都是如此。
而且网络上还可以获得很多使用Python 进行Internet 编程的第三方工具此外,Python 涌现了许多Web 开发工具包,例如,Django 、TurboGears 、Pylons 、Zope 和WebWare ,使Python 能够快速构建功能完善和高质量的网站。
4.python可以用于组件集成
在介绍Python 作为控制语言时,曾涉及它的组件集成的角色。Python 可以通过C/C++ 系统进行扩展,并能够嵌套C/C++ 系统的特性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为。
例如,将一个C库集成到Python 中,能够利用Python 进行测试并调用库中的其他组件;将Python 嵌入到产品中,在不需要重新编译整个产品或分发源代码的情况下,能够进行产品的单独定制。
5.python能用于数据库编程
对于传统的数据库需求,Python 提供了对所有主流关系数据库系统的接口,Python 定义了一种通过Python 脚本存取SQL 数据库系统的可移植的数据库API ,这个API 对于各种底层应用的数据库系统都是统一的。
所以一个写给自由软件MySQL 系统的脚本在很大程度上不需改变就可以工作在其他系统上(例如,Oracle )-- 你仅需要将底层的厂商接口替换掉就可以实现。
6.python 可以用于快速原型
对于Python 程序来说,使用Python 或C编写的组件看起来都是一样的。正因为如此,我们可以在一开始利用Python 做系统原型,之后再将组件移植到C或C++ 这样的编译语言上。
7.python 可以用于数值计算和科学计算编程
我们之前提到过的NumPy 数值编程扩展包括很多高级工具,通过将Python 与出于速度考虑而使用编译语言编写的数值计算的常规代码进行集成,其他一些数值计算工具为Python 提供了动画、3D 可视化、并行处理等功能的支持。
8.python 可以用于游戏、图像、人工智能、XML 、机器人等
Python 的应用领域很多,远比这里提到的多得多。
例如,可以利用pygame 系统使用Python 对图形和游戏进行编程;用PIL 和其他的一些工具进行图像处理;用PyRo 工具包进行机器人控制编程。
当然python能干的事情不止上面这么多领域,相信你在学完老男孩python自动化架构课程就能知道python应用的领域之多了。
Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNUGeneral Public License)许可。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
7月20日,IEEE发布2017年编程语言排行榜:Python高居首位 。
2018年3月,该语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。
⑥ linux 怎么安装pygame
直接通过源代码进行编译安装,方法如下:
I used
./configure --prefix=$HOME
make
make install
to install sdl2, after which I tried to install pygame by
cd ../pygame-1.9.1release/
python setup.py install
but I am getting an error:
linuxnx:~/python/library/pygame-1.9.1release> python setup.py install
WARNING, No "Setup" File Exists, Running "config.py"
Using UNIX configuration...
Hunting dependencies...
sh: sdl-config: command not found
WARNING: "sdl-config" failed!
sh: smpeg-config: command not found
WARNING: "smpeg-config" failed!
Unable to run "sdl-config". Please make sure a development version of SDL is insta
⑦ python 是什么类型的语言
一、python的定义
Python是一种计算机程序设计语言。翻译成中文是巨蛇的意思。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
二、python的特点
1、软件质量
在很大程度上,python更注重可读性、一致性和软件质量,python的设计致力于可读性,带来了比其他语言更优秀的可重用性和可维护性,python秉承了一种独特的简洁和高可读性的语法,以及一种高度一致的编程序模式。
2、提高开发者效率
相对于C、C++、Java等编辑/静态类型语言,python的开发效率提升了3-5倍,也就是说代码量是其他编程语言的1/5-1/3,而且无需编译、链接步骤,提高程序员效率
3、程序可移植性
绝大多数python程序能不做任何修改即可在所有主流计算机平台上运行,此外,python提供多种可选的独立程序,如用户图形界面、数据库接入、基于web系统、还提供了操作系统接口等。
(7)pygame源码编译android扩展阅读:
python的用途与应用:
1、Web应用开发
服务器端编程,具有丰富的Web开发框架,如Django和TurboGears,快速完成一个网站的开发和Web服务。典型如国内的豆瓣、果壳网等;国外的Google、Dropbox等。
2、系统网络运维
在运维的工作中,有大量重复性工作的地方,并需要做管理系统、监控系统、发布系统等,将工作自动化起来,提高工作效率,这样的场景Python是一门非常合适的语言。
3、科学与数字计算
Python被广泛的运用于科学和数字计算中,例如生物信息学、物理、建筑、地理信息系统、图像可视化分析、生命科学等,常用numpy、SciPy、Biopython、SunPy等。
4、3D游戏开发
Python有很好的3D渲染库和游戏开发框架,有很多使用Python开发的游戏,如迪斯尼卡通城、黑暗之刃。常用PyGame、Pykyra等和一个PyWeek的比赛。
⑧ 求一个python用pygame做的游戏skier的png图片,skier_down.png,sk
网页链接图片压缩包,直接下载就能用,不用去别的网站,不客气,哈哈哈,我最近刚好在编这个游戏,我也找了很久的,祝大家一遍成功哦
⑨ python3.5 的flappy bird pygame编的
总结几个关键词吧,将来如果看到这篇博文,自己还能对当时用到的技术有点印象:
1. 状态机:重构了游戏代码,主循环使用了状态机分接不同状态,update 游戏逻辑 , 使代码变得清晰利于维护
2. OBB 碰撞检测:AABB 碰撞检测 无法 达到需求,参考了 OBB 碰撞检测的原理,实现了游戏的碰撞检测
3. cx_Freeze:python 代码打包 exe ,使用了 cx_Freeze 这个库,这个库非常好用,更难得的是支持 python3
遇到的问题有:
1. 没有仔细研究 pygame 如何操作 surface 的 alpha 透明度
2. cx_Freeze 打包出来的 exe, 在遇到调用 pygame.mixer.music 的 load() 函数时,会报错。没有仔细查原因。
3. 对 python 语言本身的一些特性不熟悉,一些特性的实现可能并不符合 python 的标准用法。
总的来说,我对这套代码的质量还算满意,对这个游戏核心玩法的还原度也比较认可。写在这里,记录我第一次用 python 写了个行数较多的,面向对象的程序。
可惜用 pygame 写出来的东西没法移植到手机,每每想到这一点,就让我觉得这东西实在没啥前途。。我对 python 的理解 可能不够,但是我印象里 python 也是一个解释执行的语言,也可以和 c++ 相互调用,为啥不能在手机上 搞个python 解释器来运行 python 程序 ? 如果 python 解释器是 c++ 写的,python 不能像 lua 等脚本语言一样,内嵌到 手机 开发的 app 里?如果 python 程序可以移植到手机上执行的话, pygame 基于 SDL ,理论上 SDL 也是基于 OpenGL 的,那么理论上 pygame 写出来的游戏,应该也能移植到 手机上 才对。。
所以说。。我对 python 的理解还是不足,暂时没法从知识上解答上面的几个问题。下个目标还是专心本职工作,学习 iOS Android 原生开发,更深入的去学习平台跨越性更好的 游戏引擎,争取多写一些 在手机上跑的,完成度最少达到这次写的 flappy bird 的程度的 东西吧。
主要参考的文章地址是:
http //simple-is-better.com/news/361
全部代码以及打包出来的 exe 都上传在这里,给N年后回头看的自己留个念想,也提供给比我更新的手, 想了解 pygame 的人做个参考
http //download.csdn.net/detail/korekara88730/9416635