NuGuN 2 Denunciar mensagem Publicado 14 de Março de 2010 Boas! O meu problema é o seguinte... Preciso rodar uma imagem e para isso comecei por utilizar algo deste genero: ... self.image = pygame.transform.rotate(self.baseImage, -self.direction.angle) ... self.imageW, self.imageH = self.image.get_size() ... drawPosition = self.image.get_rect().move(self.position.x - self.imageW / 2, self.position.y - self.imageH / 2) self.screen.blit(self.image, drawPosition) Esse código funciona, mas, roda a imagem em torno do seu proprio eixo. Agora imaginando que eu quero roda por exemplo a torre de um tanque de guerra... o ponto que eu quero que sirva para eixo de rotação não é o centro da imagem mas sim um bocado mais atraz... Imaginando que isto é uma torre, onde o X é a 'cabeça' da torre, os '-' são o cano e o '|' é o eixo de rotação. Com esse código que eu tenho, o esquema seria algo deste genero: X------- | E eu queria algo deste genero X------- | Algém me consegue dizer como posso fazer isto? Cumps Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
chuckytuh 0 Denunciar mensagem Publicado 28 de Junho de 2010 eu de python nada sei mas vendo drawPosition = self.image.get_rect().move(self.position.x - self.imageW / 2, self.position.y - self.imageH / 2) algo me diz que deves mudar ai os parametros para a funçao move, nao? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
flyingFox99 0 Denunciar mensagem Publicado 8 de Novembro de 2018 Não sei se já resolveu, mas eu estava com um problema parecido recentemente para resolver eu fiz o seguinte: Eu usei conceitos de trigonometria kkk olha esse método que usei para fazer órbitas: usei a biblioteca math para calcular o seno e cosseno e obter o Pi. def orbita(self, velocidade, Raio, sizeImage): self.pos_x = self.wCenter + Raio * math.cos(velocidade*self.angulo/180*math.pi) self.pos_y = self.hCenter + Raio * math.sin(velocidade*self.angulo/180*math.pi) self.angulo += 1 if self.angulo == 360: self.angulo = 0 return (self.pos_x, self.pos_y) Qualquer duvida é só falar. obs: 8 anos depois Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites