pygame开发基础

2017-06-26  本文已影响0人  进击的鸭子

python开发环境

OS系统上装过xcode的,都会自带python的开发环境,默认的python版本为2.7.10,可以用来实现基本的python执行,但是作为开发还是有所不便。在终端输入python --version可查询python的版本信息,输入python命令如果进入到>>>符号下面,则说明环境成功,这里就不详细描述了。

另外就是自主安装的python,可以进入python的下载官网下载 https://www.python.org/downloads/mac-osx/。 也可以通过brew安装,基本安装的过程都比较简单,大家可以自行参考。小编自己安装的就是python 3.6版本。


python语言简介

python功能强大,而且用途广泛,一旦你熟悉了它,会对它的功能感到吃惊。目前,python除了移动端没有涉及以外,在各方面的开发应用都很广泛。在语法上,python中没有开始括号和结束括号,而是通过缩进对齐来判断是否包含或者串行关系。python也没有可以识别的函数名,python类的构造函数不是很好看,但是也不至于让你觉得犯难。此外,IDLE是python安装包中包含的非常有用的文本编辑器,对于我个人而言,大家不需要花过大的精力在编辑器的选择上,个人倾向于前期使用一些简单干净的编辑器就可以了。

python是面向对象的编程语言,所以,多少回支持一些面向对象的编程概念。接下来,小编将花一些时间来介绍一下这些概念,这是一种便携代码的高效方式。面向对象编程(OOP)是一种方法学,也就是做事情的方式。

OOP的特性示例

多态:

多态就是指具备多种形态的能力,在类的环境中,这种体现就是我们可以使用多种形态的方法,方法包含多种不同的参数集合,例如

def __init__(self,name="Bug",legs=8):

                 self.name = name

                 self.legs = legs

def __init__(self) :这个方法开始了类的构造函数,也就是说,类的实例化运行的第一个方法就是这个函数。关键字self就是用来描述当前的类,注意!所有的类变量前面必须有一个self,从而可以让计算机识别出来这是一个类的成员。

数据封装

python不允许变量和方法的声明是私有的或者受保护的,因为python中所有的内容都是共有的,但是,如果想要代码像数据隐藏一样的工作,我们就需要对数据进行封装

def GetDistance(self):

           return p_distance

def setDistance(self,value):

           p_distance = value

如上想要用来访问并修改distance变量的时候,这样做就意味着将distance重命名为p_distance, 看上去像是私有变量,然后通过这种方法去访问。

单继承

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 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) + "}"

如上,

class Circle(Point):首先通过Circle类继承Point类

super().__init__(x,y)来初始化Point类(即父类)中 的类对象

super().ToString()来调用Point类(即父类)中的对象方法。


多继承

多继承的道理和单继承相似,例如:

1、class Circle(Point,Size)首先在Circle类后面增加需要继承的多个类名。

2、Point__init__(self,x,y) /Size__init__(self,width,height) 通过这两句来分别实现每个父类的初始化,因为是多继承,所以像单继承直接用super() 来初始化类的话,计算机是分不清的。

3、Point.ToString()/Size.ToString() 通过父类名直接调用父类的函数即可调取到对应的比如Point类中的ToString方法或者Size类中的ToString方法。当前函数的方法依旧使用self.XXX()来调用函数即可。

以上就是在进入python游戏开发之前最主要的一些python语法,包括初始化、继承、调用,不需要完全记下来,但是对开发人员的要求是基本能看懂代码实现的操作。


python游戏开发环境

在进入Pygame之前,必需要先安装pygame。因为pygame并没有和python一起打包,所以我们需要另外下载。当然,python的版本也是要和pygame的版本匹配的,就像python3.6版本对应的就是pygame1.9。

pygame不仅提供了针对图形和位图的绘制函数,还提供了用于获取用户输入、处理音频播放和监控鼠标和键盘的服务之类的服务。

安装:

以下都在终端输入

sudo pip install pygame,即可安装默认python2.7版本所对应的pygame库。(1、终端输入 python回车    2、出现>>>后,输入 import pygame回车   3、出现>>>则证明pygame库安装成功,如果失败,则会报错)

sudo pip3 install pygame,即可安装自主安装的python3.X对应的pygame库(在IDLE内,输入import pygame,同样,如果报错就证明安装失败)

接下来小编将带大家走进python游戏开发的世界! 在进入下一章之前,先来熟悉一下pygame最初的GUI吧。

Hello Pygame

import pygame

from pygame.locals import *


pygame.init()   #必须先初始化pygame

screen = pygame.display.set_mode((600,500)) #屏幕大小

pygame.display.set_caption("Hello") #窗口标题

myfont = pygame.font.Font(None,60)#定义字体 None 可以用字体类型替代

white = 255,255,255

blue = 0,0,255 #定义颜色


textImage = myfont.render("Hello pygame", True,white) #字体渲染

screen.fill(blue) #屏幕背景颜色

screen.blit(textImage,(100,100)) #添加文本

pygame.display.update() # 刷新


当然,在下一章的时候,小编将教告知怎么进一步优化现在的代码。

上一篇下一篇

猜你喜欢

热点阅读