一、前期准备工作以及注意事项 Python游戏编程学习之路(持续更新)

注:开一个这样的专题只是为了更好的学习怎么用Python开发一款游戏,记录自己的学习过程,总结自己的学习收获,相当于做笔记吧!

一、安装Python

这一步非常简单,直接在官网:https://www.python.org/上下载适合自己的版本,推荐Python3.6版本以上。当然,下载这个只是为了配置好Python环境,它自带的IDLE文本编辑器功能不齐全,皆体验感极差,做项目是不推荐在上面做的,所以我们还要下载Pycharm,这是一款非常好用的软件,适合Python项目开发,具体可以自己去了解。

二、安装Pygame

由于我们是做游戏开发,所以我们必须要用到的一个库就是Pygame,这个Python是不自带的,我们需要下载安装,怎么安装呢?打开命令行提示符,我们安装我们需要的包是通过该命令来实现的pip install 包名或模块名,但这个时候我们发现下载速度是很慢的,因为Python的包是默认的国外资源,我们下载的时候如果没有使用特殊手段,那自然是很慢的。那该怎么办呢?我们需要使用国内的镜像源,我一般用的是清华的镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/,利用这个,我们可以直接输入这个指令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package,这个时候下载就非常快了。

三、编程思想

一定要注意编程规范,这是非常重要的,尤其是在Python中,更加严格。我们在声明变量的时候这个变量的名称尽量要和变量的含义相对应,这是一种非常好的习惯,应当遵守。
还有,由于Python是面向对象语言,且现在流行的编程方式就是OOP,所以我们制作项目最好是按模块制作,即万物皆对象。(读者可以自行去了解这两种编程方式的区别,这里贴一个链接供参考:https://zhuanlan.zhihu.com/p/75265007

四、Python基础知识

学这个之前首先要熟悉Python的基本语法,不用学得很深,对于Python来讲是分了很多方向的,有很多你都接触不到,我们要学完基本的章节,对于Pygame库的使用在后面会提到(博主也在学习。)。

五、Python入门编程挑战

题目前提
给定 Point类如下:

class Point():
    x=0.0
    y=0.0

    #构造函数
    def __init__(self,x,y):
        self.x=x
        self.y=y
        print("Point constructor")

    #输出方法
    def ToString(self):
        return "{X:"+str(self.x)+",Y:"+str(self.y)+"}"

Circle类如下:

class Circle(Point):
    radius=0.0
    def __init__(self,x,y,radius):
        super().__init__(x,y)
        self.radius=radius
        print("Circle constructor")
    def ToString(self):
        return super().ToString()+",{radius="+str(self.radius)+"}"

Size类如下:

class Size():
    width=0.0
    height=0.9

    def __init__(self,width,height):
        self.width=width
        self.height=height
        print("Size constructor")

    def ToString(self):
        return "{widht="+str(self.width)+",height="+str(self.height)+"}"

Rectangle类如下:

class Rectangle(Point,Size):
    def __init__(self,x,y,width,height):
        Point.__init__(self,x,y)
        Size.__init__(self,widht,height)
        print("Rectangle constructor")
    def ToString(self):
        return Point.ToString()+","+Size.ToString()

1.打开GemotryDemo.py程序,并且创建一个集成自Point的新类,名为Elipse。它有一个水平半径和垂直半径,而不是像Circle那样只有一个半径。

2.给Rectangle类添加一个名为CalcArea()的方法,它返回Rectangle的面积。计算公式是:Area=Width*Height。测试该方法以确保它能工作。

3.给Circle类添加一个名为CalcCircum()的新方法,它返回圆的周长。计算公式是Circumference=2*Pi*Radius(Pi=3.14159)。测试该方法以确保能工作。

1.参考答案

class Point():
    x=0.0
    y=0.0

    #构造函数
    def __init__(self,x,y):
        self.x=x
        self.y=y
        print("Point constructor")

    #输出方法
    def ToString(self):
        return "{X:"+str(self.x)+",Y:"+str(self.y)+"}"
class Elipse(Point):
    x_radius=0.0
    y_radius=0.0

    #构造函数,这里我们要调用基类的构造函数。
    def __init__(self,x,y,x_radius,y_radius):
        super().__init__(x,y)
        self.x_radius=x_radius
        self.y_radius=y_radius
        print("Elipse constructor")
    def ToString(self):
        return super().ToString()+",{x_radius="+str(self.x_radius)+"}"+",{y_radius="+str(self.y_radius) + "}"
p = Point(10,20)
print(p.ToString())

e=Elipse(100,100,50,40)
print(e.ToString())

2.参考答案

class Rectangle(Point,Size):
    def __init__(self,x,y,width,height):
        Point.__init__(self,x,y)
        Size.__init__(self,width,height)
        print("Rectangle constructor")
    def ToString(self):
        return Point.ToString(self)+","+Size.ToString(self)
    def CalcArea(self):
        return self.width*self.height
r=Rectangle(200,250,40,50)
print(r.ToString())
print(r.CalcArea())

输出
在这里插入图片描述

3.参考答案

class Circle(Point):
    radius=0.0
    def __init__(self,x,y,radius):
        super().__init__(x,y)
        self.radius=radius
        print("Circle constructor")
    def ToString(self):
        return super().ToString()+",{radius="+str(self.radius)+"}"
    def CalcCircum(self):
        Pi=3.14159
        return 2*Pi*self.radius
c=Circle(100,100,50)
print(c.ToString())
print(c.CalcCircum())

输出
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hzf0701/article/details/109071533