python不适合游戏编程。
其原因有几点:
第一点,游戏引擎限制了实现的技术方案。现代游戏的开发,绝大多数情况下都要借助于游戏引擎和编辑器。而流旁闹尺行的游戏引擎非常有限,它们采用的编程语言自然也就被限制在那几种,如目前开发游戏经常使用的语言主要有c++、c#、c、java语言等等。
第二点,python在执行效率、多线程、内存管理方面确实存在一些瑕疵,而这些瑕疵是高性能游戏客户端很介意的,所以Python很难运高成为首选方案。
第三点,python执行速度慢。python是解释型语言,而解释型语言的缺点就是速度慢,功耗大。解释型语言和编译型语言的区别。使用编译器对编译语言编译后生成elf或者bin文件是计算机可以直接执行的,而解释型语言不需要编译器,它是通过解释器在程序运行时实时解释执行。
python不适合游戏编程
按照一般理解,Python主要适合写小程序,用少量的代码,快速解决一些小问题。不适合编写比较大的程序,即便连Python的创造者Guido也是这么认为的。
而几乎任何游戏弯正,都是大程序。即便是《斗地主》《连连看》这种"小游戏”。代码量也至少在5,6千行以上。
2. 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++,效果更好,网上也有相关资料和教程可供参考,感兴趣的话,可以搜一下。
3. 求个Python小游戏
Python3X\Lib\turtledemo\nim.py自带的尼姆游戏
4. python能做什么游戏
Python是一门高级且有趣的编程语言,除了网络爬虫、人工智能、数据分析之外,Python还可以进行游戏开发,为大家介绍五个支持Python的2D、3D游戏开发库。
1、Cocos2d:是一系列开源软件框架,用于构建跨平台2D游戏和应用程序,由cocos2d-x、cocos2d-js、cocos2d-xna和cocos2d多种框架组成,像大鱼赌场、城堡冲突等小游戏,就是用此框架开发出来的。
2、Panda3D:是由迪士尼开发的3D游戏引擎,一个用于Python和C++程序的3D渲染和游戏开发框架,并由卡内基梅陇娱乐技术中心负责维护,使用C++编写的,针对Python进行了完全的封装。
3、Pygame:它是一组Python模块,用来编写游戏,可支持Python3.7,游戏例子有:纸牌游戏、超级马里奥、击球等多种游戏。
4、Pyogre:ogre 3D渲染引擎的Python绑定,可以用来开发游戏和仿真程序等任何3D应用,它的API更加稳定,也非常快速灵活。
5、RenPy:一个视觉小说引擎,被世界各地的成千万的创造者所使用,它可以帮助你使用文字、图像和声音来讲述电脑和移动设备上的故事。RenPy是开放源码的,可免费的商业用途,易于学习的脚本语言任何人都能有效地编写大型视觉小说,它的Python脚本足以用来模拟游戏。
5. python 怎么写双人弹球游戏
用python tkinter模块做一个击打反弹球和球拍的游戏。球在屏幕上飞,玩家需要把它击打回去,只要球落到屏幕底部,游戏就结束。
首先我们做一个在屏幕上到处移动的小球:
#coding:utf-8
fromtkinterimport*
importrandom
importtime
classBall:
#创建一个球类
def__init__(self,canvas,color):
self.canvas=canvas
self.id=canvas.create_oval(10,10,25,25,fill=color)
#返回刚好划小球的id,create_oval创建一个椭圆
self.canvas.move(self.id,245,100)
#把椭圆移动到画布
starts=[-3,-2,-1,1,2,3]
random.shuffle(starts)
#随机排列
self.x=starts[0]
self.y=-3
self.canvas_height=self.canvas.winfo_height()
#获取画布当前高度
self.canvas_width=self.canvas.winfo_width()
#获取画布当前宽度
defdraw(self):
self.canvas.move(self.id,self.x,self.y)
#让小球水平和垂直移动
pos=self.canvas.coords(self.id)
#coords返回画布上画好的x和y坐标
#判断小球是否撞到画布顶部或者底部,保证小球反弹回去,不消失
ifpos[1]<=0:
self.y=3
ifpos[3]>=self.canvas_height:
self.y=-3
ifpos[0]<=0:
self.x=3
ifpos[2]>=self.canvas_width:
self.x=-3
tk=Tk()
tk.title("Game")
tk.resizable(0,0)
#窗口大小不可调整
tk.wm_attributes("-topmost",1)
#使画布窗口置于所有窗口之前
canvas=Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)
#bd和highlighttthickness是为了保证画布没有边框
canvas.pack()
tk.update()
#动画初始化
ball=Ball(canvas,'red')
while1:
#画布一出现会马上消失,为了防止画布消失,用tkinter一直重画
ball.draw()
tk.update_idletasks()
tk.update()
time.sleep(0.01)
一个会动的小球就做好啦
效果图如下,只是它会动<( ̄3 ̄)> !