Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 17, 2017 17:33:09

asdfr
Зарегистрирован: 2017-01-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по классам

сделал вот такую задачку

 import math
import pygame
from pygame.locals import *
f=open('11.txt','r')
window = pygame.display.set_mode((600, 600))
pygame.display.set_caption('Hello')
screen = pygame.Surface((600, 600))
class Triangle:
    def __init__(self, p1, p2, p3):
        self.poligon_color = (255, 0, 0)
        self.poligon_points = [p1, p2, p3]
        self.poligon_width = 0
    
    def render(self):
        pygame.draw.polygon(screen,self.poligon_color,self.poligon_points, self.poligon_width)
class Rect:
    def __init__(self, p,w):
        
        self.rect_color = (255,0,255)
        self.rect_pos = [p,w] #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
        self.rect_thickness = 0
        
    def render(self):
        pygame.draw.rect(screen,self.rect_color, self.rect_pos, self.rect_thickness)
    def uptade(self,p1):
        hero=True
        
        if hero==True:
            p1+=1
            if p1>500:
                hero=False
       
class Circle:
    def __init__(self,cp, r):
        self.circle_color =(255,100,255)
        self.circle_pos = (cp)
        self.circle_radius = r
        self.circle_width = 0
    
    def render(self):
        pygame.draw.circle(screen,self.circle_color,self.circle_pos,self.circle_radius,self.circle_width)
d=[]
for s in f:
    b=s.split(',') 
    
    if b[0] == "triangle":
        p1 = (int(b[1]), int(b[2]))
        p2 = (int(b[3]), int(b[4]))
        p3 = (int(b[5]), int(b[6]))
        d.append( Triangle(p1, p2, p3) )
        
        
    elif b[0] == "rect":
        p = (int(b[1]), int(b[2]))
        
        w = (int(b[3]), int(b[4]))
        d.append( Rect(p, w) )
        
    elif b[0] == "circle":
        cp = (int(b[1]), int(b[2]))
        r = (int(b[3]))
        c = Circle(cp, r)
        d.append(c)
        
done=True
while done:
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            done = False
    screen.fill((50,50,50))
    
    for obj in d:
        obj.render()
   
    window.blit(screen, (0, 0))
    c=Rect(p1,p1)
    c.uptade(p1)
    pygame.display.flip()
    pygame.time.delay(5)


нужно чтоб rect двигался по окну в pygame с лева на право.как это сделать я не пойму.
пытаюсь это сделать через
rectangle if hero==True:
p1+=1
if p1>500:
hero=False
к ординаты и размер прямоугольника я подгружаю из файла

Отредактировано asdfr (Фев. 17, 2017 17:39:19)

Офлайн

#2 Фев. 17, 2017 18:10:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

вопрос по классам

asdfr
А при чем здесь классы? Ваши не выполняют никакой полезной работы, они у вас тупо чтобы были. Учитывая кучу кода вне классов, зачем вы их вообще городите?



Офлайн

#3 Фев. 17, 2017 18:44:39

All123
Зарегистрирован: 2017-01-28
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по классам

FishHook
asdfrА при чем здесь классы? Ваши не выполняют никакой полезной работы, они у вас тупо чтобы были. Учитывая кучу кода вне классов, зачем вы их вообще городите?
Это я же но с другого аккаунта,классы сделанные потому что загрузка фигур идет из файла,и фигур может быть условно 100

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version