地球挣脱了太阳的束缚,发疯了,人类早就彻底灭亡了?以下是完整源代码。本程序面向有一定Python基础的人士阅读,至少要学过面向对象编程的继承。
""" 继承自Turtle类的碰到边缘有会反弹随机移动的球. """ from turtle import * from random import randint from time import sleep class Ranger(Turtle): def __init__(self,image,x,y): Turtle.__init__(self,shape = image,visible=False) self.penup() self.screen_width = self.screen.window_width() self.screen_height = self.screen.window_height() self.xspeed = randint(-10,10) self.yspeed = randint(-10,10) self.dead = False self.timecounter = 0 # 延迟计数器 self.timeamount = 3 # 总共延迟时间 self.goto(x,y) self.onclick(self.hide) self.setheading(randint(1,360)) self.st() self.move() def move(self): if not self.dead: if randint(1,30) == 1 : self.set_random_heading() self.setx( self.xcor() + self.xspeed) self.sety( self.ycor() + self.yspeed) x = self.xcor() y = self.ycor() if abs(x) > self.screen_width//2 - 50: self.xspeed = - self.xspeed if abs(y) > self.screen_height//2 - 50: self.yspeed = - self.yspeed self.screen.ontimer(self.move,10) def hide(self,x,y): """隐藏自己""" self.dead = True def set_random_heading(self): """随机设定水平速度和垂直速度""" self.xspeed = randint(-10,10) self.yspeed = randint(-10,10) if __name__ == "__main__": screen = Screen() screen.bgpic('太空.png') screen.title(' 继承自Turtle类的碰到边缘有会反弹随机移动的球') screen.delay(0) image = "星球\\0.gif" screen.addshape(image) r = Ranger(image,0,100) screen.mainloop()
发表评论