python怎么让海龟隐身_pygame图像处理_隐形的海龟笔

e8c97818859d1c361fe095d35fdfcb7d.png

本人2018年写的pygame图像处理代码,免费发给读者。

import pygame

from math import sin,cos,radians

class Durtle():

"""Durtle取名自Draw与turtle的组合,它是用来生成图像的"""

def __init__(self,image,heading = 0,width=1,color=(0,0,0)):

self.__pensize__ = width # 笔迹宽度,对应的是draw.circle的半径

self.__color__ = color # rgb255颜色

self.__image__ = image # 在哪个图像上画

self.__heading__ = heading

self.__imagerect__ = self.__image__.get_rect() # 获取图像的rect,描述坐标与长高的

self.__width__ = self.__imagerect__.width # 图像的宽

self.__height__ = self.__imagerect__.height # 图像的高

self.x = self.__width__//2 # 起始x坐标

self.y = self.__height__//2 # 起始y坐标

def setheading(self,heading):

"""设定方向,以0度为向右,90度为向上,180度为向左,270度为向下"""

self.__heading__ = heading

def right(self,angle):

"""右转"""

self.__heading__ = (self.__heading__ - angle) % 360

def left(self,angle):

"""左转"""

self.__heading__ = (self.__heading__ + angle) % 360

def forward(self,step):

"""朝当前方向移动step像素"""

if step == 0 :return

length = abs(step)

k = length / step

for i in range(length):

pygame.draw.circle(self.__image__,self.__color__,(int(self.x),int(self.y)),self.__pensize__)

self.x = self.x + k * cos(radians(self.__heading__))

self.y = self.y - k * sin(radians(self.__heading__))

def save(self,filename = "test_demo2.png"):

pygame.image.save(self.__image__,filename)

if __name__ == "__main__":

image = pygame.Surface((1024,1024),pygame.SRCALPHA,32) #创建透明图像

p =Durtle(image,30,2,(15,250,55))

for i in range(36):

p.forward(100)

p.forward(-100)

p.right(10)

p.save()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值