有些文章不一定是为了上首页投稿每周500字简书面面观

python小球弹弹2

2019-03-29  本文已影响21人  猛犸象和剑齿虎

(python漂亮的代码结构一粘到简书就花了)

在自学python的坑中,不知不觉有三个月了,最近总算有点感觉了。

我从vba语言入门,vba语言虽然也是面对对象语言,但需要自己定义类的情况并不多,对象大多是固定的,只需要用面向过程的思想(顺序,逐步执行,循环判断的分支都能按照本身的流程找到)调用即可。

而在学习面向对象过程中,其中一个坎就是如何凭空制作一个类,怎样定义属性和方法,在没有具体的实参和方法的情况下,总觉得难以处理。

期间做了个将excel数据自动填入erp系统的小程序,还是有点小得意的(总算跨越了只会用excel表格的限制),虽然是简单的应用,但至少没学python前是无法想象的,同样也觉得前路漫漫,不知道多久才能熟练并做出一些更为实用的项目。


__author__ = 'Administrator'

import pygame,sys

from random import *

class Myballclass(pygame.sprite.Sprite):

 def __init__(self,image_file,location,speed):

   pygame.sprite.Sprite. __init__(self)#继承的一种方式

   self.image=pygame.image.load(image_file)

   self.rect=self.image.get_rect()

   self.rect.left,self.rect.top=location

   self.speed=speed

 #定义方法

 def move(self):

   self.rect=self.rect.move(self.speed)

   if self.rect.left<0 or self.rect.right>width:

     self.speed[0]=-self.speed[0]

   if self.rect.top<0 or self.rect.bottom>height:

     self.speed[1]=-self.speed[1]

def animate(group):

 screen.fill([250,250,250])

 for ball in group:

   ball.move()

 for ball in group:

   group.remove(ball)

   if pygame.sprite.spritecollide(ball,group,False):

     ball.speed[0]=-ball.speed[0]

     ball.speed[1]=-ball.speed[1]

   group.add(ball)

   screen.blit(ball.image,ball.rect)

 pygame.display.flip()

 pygame.time.delay(20)

size=width,height=640,480

screen=pygame.display.set_mode(size)

screen.fill([250,250,250])

group=pygame.sprite.Group()

image_file='beach_ball.bmp'

for row in range(0,3):

 for column in range(0,3):

   location=[column*180+10,row*180+10]

   speed=[choice([-2,2]),choice([-2,2])]

   ball=Myballclass(image_file,location,speed)

   group.add(ball)

while True:

 for event in pygame.event.get():

   if event.type==pygame.QUIT:

     sys.exit()

 animate(group)

上一篇 下一篇

猜你喜欢

热点阅读