La rotation que je fait ne ce fait pas depuis le centre
Résolu/Fermé
dragonchate_35
Messages postés
18
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
13 février 2020
-
4 févr. 2020 à 15:39
trifou - 5 févr. 2020 à 20:18
trifou - 5 févr. 2020 à 20:18
A voir également:
- La rotation que je fait ne ce fait pas depuis le centre
- Rotation ecran pc - Guide
- Rotation video - Guide
- Centre de messagerie - Guide
- Centre d'aide instagram compromis - Accueil - Guide piratage
- Comment mettre le centre de controle sur l'écran - Guide
2 réponses
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
Ambassadeur
1 556
4 févr. 2020 à 18:05
4 févr. 2020 à 18:05
bonjour, peux-tu partager ton code?
dragonchate_35
Messages postés
18
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
13 février 2020
Modifié le 5 févr. 2020 à 11:11
Modifié le 5 févr. 2020 à 11:11
le voila:
#!/usr/bin/python import pygame from pygame.locals import * import random import time pygame.init() fenetre = pygame.display.set_mode((340, 620), RESIZABLE) font =pygame.image.load("font.png").convert() font =pygame.transform.scale(font,(340,620)) fenetre.blit(font,(0,0)) pygame.display.flip() cd = [390, 3270] td = [190, 1270, 290, 2270, 40, 4180, 50, 5180, 60, 6180] dt = [10, 1180, 20, 2180, 490, 4270, 590, 5270, 590, 5270, 690, 6270] uc = [30, 3180] dd = [70, 790, 7180, 7270] xpiece = 160 ypiece = 0 p = 0 while p == 0 : idbox = 0 piece = random.randint(1, 7) xpiece = 160 ypiece = 0 if piece == 1 : font2 =pygame.image.load("l.png") font2 =pygame.transform.scale(font2,(40,60)).convert_alpha() font2 = pygame.transform.rotate(font2, 90) fenetre.blit(font2,(xpiece,ypiece)) piece = 10 elif piece == 2 : font2 =pygame.image.load("j.png") font2 =pygame.transform.scale(font2,(40,60)).convert_alpha() fenetre.blit(font2,(xpiece,ypiece)) piece = 20 elif piece == 3 : font2 =pygame.image.load("i.png") font2 =pygame.transform.scale(font2,(20,80)).convert_alpha() fenetre.blit(font2,(xpiece,ypiece)) piece = 30 elif piece == 4 : font2 =pygame.image.load("t.png") font2 =pygame.transform.scale(font2,(60,40)).convert_alpha() fenetre.blit(font2,(xpiece,ypiece)) piece = 40 elif piece == 5 : font2 =pygame.image.load("z.png") font2 =pygame.transform.scale(font2,(60,40)).convert_alpha() fenetre.blit(font2,(xpiece,ypiece)) piece = 50 elif piece == 6 : font2 =pygame.image.load("s.png") font2 =pygame.transform.scale(font2,(60,40)).convert_alpha() fenetre.blit(font2,(xpiece,ypiece)) piece = 60 elif piece == 7 : font2 =pygame.image.load("o.png") font2 =pygame.transform.scale(font2,(40,40)).convert_alpha() fenetre.blit(font2,(xpiece,ypiece)) piece = 70 pygame.display.flip() ypiece2 = 0 while ypiece2 != 600: ypiece += 0 if piece in cd: xpiece2 = xpiece + 80 ypiece2 = ypiece + 20 elif piece in td: xpiece2 = xpiece + 60 ypiece2 = ypiece + 40 elif piece in dt: xpiece2 = xpiece + 40 ypiece2 = ypiece + 60 elif piece in uc: xpiece2 = xpiece + 20 ypiece2 = ypiece + 80 elif piece in dd: xpiece2 = xpiece + 40 ypiece2 = ypiece + 40 time.sleep(0.01) for event in pygame.event.get() : print xpiece if event.type == KEYDOWN: if event.key == K_LEFT : if xpiece != 20: xpiece -= 10 elif event.key == K_RIGHT : if xpiece2 != 320: xpiece += 10 elif event.key == K_DOWN : if ypiece2 != 590: ypiece += 20 elif event.key == K_r : font2 = pygame.transform.rotate(font2, 90) print 1 fenetre.blit(font,(0,0)) fenetre.blit(font2,(xpiece,ypiece)) pygame.display.flip() time.sleep(1)
dragonchate_35
Messages postés
18
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
13 février 2020
5 févr. 2020 à 10:32
5 févr. 2020 à 10:32
voila le "l.png"
https://media.discordapp.net/attachments/669181663368052786/674547642235355136/unknown.png
https://media.discordapp.net/attachments/669181663368052786/674547642235355136/unknown.png
Bonjour,
Vu que tu es inscrit, modifie ton message et utilise les balises codes du forum afin de respecter la mise en forme de ton code.
Maintenant ton problème.
Regarde ce qu'il se passe en réalité, prends un objet rectangulaire (par ex. ton téléphone) et fais le pivoter, sachant que ce qui doit englober l'aire de ton téléphone est un rectangle élastique, au visuel tu constateras que ce rectangle change de dimension à chaque rotation de x degrés.
Avec pygame, c'est pareil, le rectangle de la surface change de dimension à chaque rotation, alors il suffit de repositionner la coordonnée x, y du rectangle.
Un exemple
Vu que tu es inscrit, modifie ton message et utilise les balises codes du forum afin de respecter la mise en forme de ton code.
Maintenant ton problème.
Regarde ce qu'il se passe en réalité, prends un objet rectangulaire (par ex. ton téléphone) et fais le pivoter, sachant que ce qui doit englober l'aire de ton téléphone est un rectangle élastique, au visuel tu constateras que ce rectangle change de dimension à chaque rotation de x degrés.
Avec pygame, c'est pareil, le rectangle de la surface change de dimension à chaque rotation, alors il suffit de repositionner la coordonnée x, y du rectangle.
Un exemple
import pygame as pg SCREEN_BACKGROUND = pg.Color('pink') SQUARE_BACKGROUND = pg.Color('purple') FPS = 10 def square_update(angle): rotate_square = pg.transform.rotate(square, angle) rotate_square_rect = rotate_square.get_rect() rotate_square_rect.center = square_rect.center screen.fill(SCREEN_BACKGROUND) screen.blit(rotate_square, rotate_square_rect) pg.display.update() screen = pg.display.set_mode((400, 400)) screen.fill(SCREEN_BACKGROUND) square = pg.surface.Surface((100, 100)).convert_alpha() square.fill(SQUARE_BACKGROUND) square_rect = square.get_rect() square_rect.center = 200, 200 screen.blit(square, square_rect) pg.display.update() ROTATE_EVENT = pg.USEREVENT rotate_state = False pg.time.set_timer(ROTATE_EVENT, 50) clock = pg.time.Clock() running = True angle = 0 while running: clock.tick(FPS) for evt in pg.event.get(): if evt.type == pg.QUIT or ( evt.type == pg.KEYUP and evt.key == pg.K_ESCAPE ): running = False break elif evt.type == ROTATE_EVENT: angle += 5 angle %= 360 square_update(angle) pg.quit()
dragonchate_35
Messages postés
18
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
13 février 2020
>
trifou
5 févr. 2020 à 11:05
5 févr. 2020 à 11:05
merci de ta reponce
au final quelle ligne je doit rajouter et où
au final quelle ligne je doit rajouter et où
trifou
>
dragonchate_35
Messages postés
18
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
13 février 2020
Modifié le 5 févr. 2020 à 20:18
Modifié le 5 févr. 2020 à 20:18
C'est ton code, c'est toi qui vois, mais de toute façon, tout ton code est à refaire. Je ne vois pas comment tu pourrais continuer de cette façon. Coder un tétris sans utiliser de fonctions, ça va pas du tout le faire.
5 févr. 2020 à 10:29