python可以做游戏吗?

核心提示是可以的。python可用来Web开发数据科学:包括机器学习、数据分析和数据可视化脚本你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。我建议使用Unity的

是可以的。python可用来

Web开发

数据科学:包括机器学习、数据分析和数据可视化

脚本

你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。

我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。

求个Python小游戏

没有什么大型游戏。由于效率和稳定性的原因,几乎没有桌面软件和游戏会使用Python开发。

真正的商业游戏开发,从来都只有两种选择,C++和C#。另外用JS系列(含Typescript、Actionscript),可以制作一些页游项目。除了以上三者之外,其他语言(包括Python)只适合写一些俄罗斯方块之类的小游戏。

扩展资料:

Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。

Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。

python小游戏2048,上班摸鱼必备(附源码)

浅浅的笑着:“我会带着你的孩子,

顚节进入

Python程序开发之简单小程序实例 (11)小 游戏 -跳动的小球 一、项目功能 用户控制挡板来阻挡跳动的小球。 二、项目分析 根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。 三、程序源代码 源码部分截图: 源码: #!/usr/bin/python36 # -- coding: GBK -- #导入相应模块 from tkinter import import random import time #自定义小球的类 Ball class Ball: # 初始化 def __init__(self,canvas,paddle,color): #传递画布值 selfcanvas=canvas #传递挡板值 selfpaddle=paddle #画圆并且保存其ID selfid=canvascreate_oval(10,10,25,25,fill=color) selfcanvasmove(selfid,245,100) #小球的水平位置起始列表 start=[-3,-2,-1,1,2,3] #随机化位置列表 randomshuffle(start) selfx=start[0] selfy=-2 selfcanvas_heigh=selfcanvaswinfo_height()#获取窗口高度并保存 selfcanvas_width=selfcanvaswinfo_width() #根据参数值绘制小球 def draw(self): selfcanvasmove(selfid,selfx,selfy) pos=selfcanvascoords(selfid)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标) #使得小球不会超出窗口 pad=selfcanvascoords(selfpaddleid)#获取小球挡板的坐标 if pos[1]=selfcanvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]

用python做游戏用什么框架

话不多说,直接上菜

为了方便大家copy,我就不分段解释了

import turtle, random

# 定义一个类,用来画除了数字方块之外的图形

class BackGround(turtleTurtle):

    def __init__(self):

        super()__init__()

        selfpenup()

        selfht()

    def draw_block(self):

        selfshape('bggif')  # 画出背景方块

        for i in allpos:

            selfgoto(i)

            selfstamp()

        selfcolor('white', 'white')  # 画出其他背景

        selfgoto(-215, 120)

        selfbegin_fill()

        selfgoto(215, 120)

        selfgoto(215, 110)

        selfgoto(-215, 110)

        selfend_fill()

        selfshape('titlegif')

        selfgoto(-125, 210)

        selfstamp()

        selfshape('scoregif')

        selfgoto(125, 245)

        selfstamp()

        selfshape('top_scoregif')

        selfgoto(125, 170)

        selfstamp()

    # 游戏失败及达成2048的提示文字

    def judge(self):

        global flag_win, flag_win_lose_text

        selfcolor('blue')

        judge = 0  # 判断是否还有位置可以移动

        for i in block_dicvalues():

            for j in block_dicvalues():

                if inum == 0 or inum == jnum and idistance(j) == 100:

                    judge += 1

        if judge == 0:  # 无位置可移动,游戏失败

            selfwrite('    GAME OVERn重新开始请按空格键', align='center', font=('黑体', 30, 'bold'))

            flag_win_lose_text = False

        if flag_win is True:  # 此条件让2048达成的判断只能进行一次

            for k in block_dicvalues():

                if knum == 2048:  # 游戏达成

                    flag_win = False

                    selfwrite('    达成2048n继续游戏请按回车键', align='center', font=('黑体', 30, 'bold'))

                    flag_win_lose_text = False

    def win_lose_clear(self):

        global flag_win_lose_text

        selfclear()

        flag_win_lose_text = True

    def show_score(self):  # 分值的显示

        global score, top_score

        if score > top_score:

            top_score = score

            with open('scoretxt', 'w') as f:

                fwrite(f'{top_score}')

        selfcolor('white')

        selfgoto(125, 210)

        selfclear()

        selfwrite(f'{score}', align='center', font=('Arial', 20, 'bold'))

        selfgoto(125, 135)

        selfwrite(f'{top_score}', align='center', font=('Arial', 20, 'bold'))

# 数字方块类

class Block(turtleTurtle):

    def __init__(self):

        super()__init__()

        selfht()

        selfpenup()

        selfnum = 0

    def draw(self):

        selfclear()

        dic_draw = {2: '#eee6db', 4: '#efe0cd', 8: '#f5af7b',

                    16: '#fb9660', 32: '#f57d5a', 64: '#f95c3d',

                    128: '#eccc75', 256: '#eece61', 512: '#efc853',

                    1024: '#ebc53c', 2048: '#eec430', 4096: '#aeb879',

                    8192: '#aab767', 16384: '#a6b74f'}

        if selfnum > 0:  # 数字大于0,画出方块

            selfcolor(f'{dic_draw[selfnum]}')  # 选择颜色

            selfbegin_fill()

            selfgoto(selfxcor()+48, selfycor()+48)

            selfgoto(selfxcor()-96, selfycor())

            selfgoto(selfxcor(), selfycor()-96)

            selfgoto(selfxcor()+96, selfycor())

            selfgoto(selfxcor(), selfycor()+96)

            selfend_fill()

            selfgoto(selfxcor()-48, selfycor()-68)

            if selfnum > 4:  # 按照数字选择数字的颜色

                selfcolor('white')

            else:

                selfcolor('#6d6058')

            selfwrite(f'{selfnum}', align='center', font=('Arial', 27, 'bold'))

            selfgoto(selfxcor(), selfycor()+20)

class Game():

    def init(self):

        back = BackGround()  # 实例画出游戏的背景

        backdraw_block()

        for i in allpos:  # 画出16个海龟对应16个数字块

            block = Block()

            blockgoto(i)

            block_dic[i] = block

        gamegrow()

    def restart(self):  # 重开游戏的方法

        global score, flag_win_lose_text

        score = 0

        for i in block_dicvalues():

            inum = 0

            iclear()

        win_lose_textclear()

        gamegrow()

        flag_win_lose_text = True  # 此flag为游戏达成或失败出现提示语后的判断,要提示语被clear后才能继续move

    def grow(self):  # 随机出现一个2或4的数字块

        block_list = []

        for i in allpos:

            if block_dic[i]num == 0:

                block_listappend(block_dic[i])  # 挑出空白方块的海龟

        turtle_choice = randomchoice(block_list)  # 随机选中其中一个海龟

        turtle_choicenum = randomchoice([2, 2, 2, 2, 4])  # 赋属性num=2/4

        turtle_choicedraw()

        win_lose_textjudge()

        show_score_textshow_score()

        msupdate()

    def move_up(self):

        allpos1 = allpos[::4]  # 切片为四列

        allpos2 = allpos[1::4]

        allpos3 = allpos[2::4]

        allpos4 = allpos[3::4]

        selfmove_move(allpos1, allpos2, allpos3, allpos4)

    def move_down(self):

        allpos1 = allpos[-4::-4]

        allpos2 = allpos[-3::-4]

        allpos3 = allpos[-2::-4]

        allpos4 = allpos[-1::-4]

        selfmove_move(allpos1, allpos2, allpos3, allpos4)

    def move_left(self):

        allpos1 = allpos[:4]

        allpos2 = allpos[4:8]

        allpos3 = allpos[8:12]

        allpos4 = allpos[12:16]

        selfmove_move(allpos1, allpos2, allpos3, allpos4)

    def move_right(self):

        allpos1 = allpos[-1:-5:-1]

        allpos2 = allpos[-5:-9:-1]

        allpos3 = allpos[-9:-13:-1]

        allpos4 = allpos[-13:-17:-1]

        selfmove_move(allpos1, allpos2, allpos3, allpos4)

    def move_move(self, allpos1, allpos2, allpos3, allpos4):

        if flag_win_lose_text is True:

            count1 = selfmove(allpos1)  # 四列或四行依次移动

            count2 = selfmove(allpos2)

            count3 = selfmove(allpos3)

            count4 = selfmove(allpos4)

            if count1 or count2 or count3 or count4:  # 判断是否有方块移动,有才能继续出现新的数字块

                selfgrow()

    def move(self, pos_list):

        num_list = []  # 为某一列或行的数字块海龟的坐标

        for i in pos_list:

            num_listappend(block_dic[i]num)  #  把这些海龟的NUM形成list

        new_num_list, count = selflist_oper(num_list)  #  只是list_oper的方法形成新的list

        for j in range(len(new_num_list)):  # 把新的list依次赋值给对应的海龟num属性并调用draw()方法

            block_dic[pos_list[j]]num = new_num_list[j]

            block_dic[pos_list[j]]draw()

        return count

    def list_oper(self, num_list):  # num_list的操作,假设其为2,0,2,2

        global score

        count = True

        temp = []

        new_temp = []

        for j in num_list:

            if j != 0:

                tempappend(j)  # temp=[2,2,2]

        flag = True

        for k in range(len(temp)):

            if flag:

                if k < len(temp)-1 and temp[k] == temp[k+1]:

                    new_tempappend(temp[k]2)

                    flag = False

                    score += temp[k]

                else:

                    new_tempappend(temp[k])  # new_temp=[4,2]

            else:

                flag = True

        for m in range(len(num_list)-len(new_temp)):

            new_tempappend(0)  # new_temp=[4,2,0,0]

        if new_temp == num_list:

            count = False  # 此变量判断num_list没有变化,数字块无移动

        return(new_temp, count)

if __name__ == '__main__':

    ms = turtleScreen()  # 主窗口的设置

    mssetup(430, 630, 400, 50)

    msbgcolor('gray')

    mstitle('2048')

    mstracer(0)

    msregister_shape('bggif')

    msregister_shape('titlegif')

    msregister_shape('scoregif')

    msregister_shape('top_scoregif')

    block_dic = {}  # 放数字方块海龟的字典,位置坐标为key,对应海龟为value

    allpos = [(-150, 50), (-50, 50), (50, 50), (150, 50),

              (-150, -50), (-50, -50), (50, -50), (150, -50),

              (-150, -150), (-50, -150), (50, -150), (150, -150),

              (-150, -250), (-50, -250), (50, -250), (150, -250)]

    flag_win = True  # 达成2048的判断,让达成的文字仅出现一次

    flag_win_lose_text = True  # 用来判断失败或成功的提示文字是否有被清除,不清除不能继续移动方块

    score = 0

    with open('scoretxt', 'r') as f:

        top_score = int(fread())  #  读取score中的数据

    show_score_text = BackGround()

    win_lose_text = BackGround()

    game = Game()

    gameinit()

    mslisten()

    msonkey(gamemove_up, 'Up')

    msonkey(gamemove_down, 'Down')

    msonkey(gamemove_left, 'Left')

    msonkey(gamemove_right, 'Right')

    msonkey(win_lose_textwin_lose_clear, 'Return')

    msonkey(gamerestart, 'space')

    msmainloop()

这是游戏界面:

欢迎挑战最高分。

要运行出来,必须本地要有这些文件:bggif,scoregif,titlegif,top_scoregif,scoretxt

我把这些文件放在了群里,还有一些学习的资料,群号642109462,欢迎对python感兴趣的进群讨论。

支持作者的,可以关注和点赞。感谢你们!

python能做什么游戏

恰好我目前所在的项目,用的就是 NeoX,服务端用 ,这两个都以 Python 为核心。

很多人应该不了解所以简单说下,算是交流交流。

游戏服务端

完全 Python,没错,一行 C 都没有。

纯粹的 Python 有相当多的优势,各个项目组在分享经验的时候,常常说到 XXX 天不停服。

越是火的游戏,就越是一天 24 小时都有人玩,任何时候停服都是损失。

这时候热更的优势就体现出来了。

而用 Python 实现热更也是非常自然。

游戏客户端

核心引擎部分当然是 C,但是提供的功能很少。

只有基本的渲染,和一些为了提升速度而用 C 实现的库,比如数学库。

所有的逻辑全部 Python 实现。

用惯了 Python 来写逻辑之后,是不太想用其他语言的。

你需要什么能力?

算法,数据结构,C,系统结构,组成原理。。。

画风突变有木有,然而这就是现实,你需要校招表现好,才能去更好的平台发挥。

既然你有 ACM 的经验,那就好好利用这一点。

主流引擎?

Unity ,毫无疑问,Unity 在游戏圈就像 Python 一样流行。

如果你评估自己觉得进大厂很难,那么提前熟悉下 Unity 总没坏处。

推荐书籍?

校招的话,就是老生常谈的那些计算机专业书籍,相关回答已经很多了。

Unity的话,首选官网教程以及项目实践。

一定要看书的话,推荐 《Unity In Action》,目前最好的入门书籍。

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模块,用来编写游戏,可支持Python37,游戏例子有:纸牌游戏、超级马里奥、击球等多种游戏。

4、Pyogre:ogre 3D渲染引擎的Python绑定,可以用来开发游戏和仿真程序等任何3D应用,它的API更加稳定,也非常快速灵活。

5、RenPy:一个视觉小说引擎,被世界各地的成千万的创造者所使用,它可以帮助你使用文字、图像和声音来讲述电脑和移动设备上的故事。RenPy是开放源码的,可免费的商业用途,易于学习的脚本语言任何人都能有效地编写大型视觉小说,它的Python脚本足以用来模拟游戏。

有什么著名的游戏是用Python编写的

谷歌:Google App Engine、http://codeGooglecom、Google earth、谷歌爬虫、Google广告等项目都在大量使用Python开发

CIA:美国中情局网站就是用Python开发的

NASA:美国航天局(NASA)大量使用Python进行数据分析和运算。美国宇航局从1994年起把python作为主要开发语言。

YouTube:世界上最大的视频网站YouTube就是Python开发的

Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载。

Instagram:美国最大的分享社交网站,每天超过3千万张照片被分享,全部用Python开发

Facebook:大量的基础库均通过Python实现的

Redhat:世界上最流行的Linux发新版本中的yum包管理工具就是用Python开发的

豆瓣:公司几乎所有的业务均是通过Python开发的

知乎:国内最大的问答社区,通过Python开发(Quora)

春雨医生:国内知名的在线医疗网站是用Python开发的

除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。

魔兽世界、坦克世界,星战前夜,文明帝国4,战地风云2是用Python编写的。

Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品。

Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

相关资料

Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和Javascript之上。

 
友情链接
鄂ICP备19019357号-22