Forum >> Programmazione Python >> Videogames >> Pygame girare linea come lancette orologio

Pagina: 1

Messaggio annotato da Daniele aka Palmux :
Questa discussione è stata spostata dalla categoria Principianti.
Pygame.draw.line= (Windows, green,pos1, pos2)
Come faccio a fare in modo che la pos1 rimanga invariata e invece pos2 si modifichi per far girare la linea come una lancetta in senso orario o antiorario
Pygame.draw.line= (Windows, green,pos1, pos2)
Come faccio a fare in modo che la pos1 rimanga invariata e invece pos2 si modifichi per far girare la linea come una lancetta in senso orario o antiorario
Pertick ormai lo sai come funziona su questo forum.

1. Provi a postare del codice manifestando i tuoi dubbi specifici;
2. Evidenzi la parte e cosa non comprendi;
3. Aggiungi gli eventuali messaggi di errore restituiti e tutte le informazioni utili.
Arrivati a questo punto si intavola una discussione.

Su questo forum non siamo dei distributori a comando di codice, sarebbe deleterio oltretutto per la tua formazione, potrai non crederci ma è così.

A presto.

Devo per forza usare il metodo math con i gradi o posso fare diversamente??
questo è il codice mi appare una specie di radar ma vorrei che non si vedessero tutte le linee ruotate ma solo una linea che ruota in senso antiorario
ps ci sono anche altre linee che non servono

import sys
import math
import pygame
from pygame.locals import *
print "ciao"
pygame.init()
win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("First Game")
x = 50
FPS = pygame.time.Clock()

startpo = pygame.math.Vector2(320, 240)
endpo = pygame.math.Vector2(170, 0)
angle = 0
y = 50
green = (20, 220, 10)
run = True
while run:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    angle = (angle+5) % 360
    current_endpo = startpo + endpo.rotate(angle)
    
    pygame.draw.line(win, green, startpo, current_endpo, 2)
    pygame.display.flip()
    FPS.tick(30)
    pygame.draw.line(win, green, (200, 400), (200, 470))
    pygame.draw.line(win, green, (200, 400), (200, 470))
    pygame.draw.line(win, green, (200, 325), (200, 395))
    pygame.draw.line(win, green, (200, 325), (200, 395))
    pygame.draw.line(win, green, (200, 220), (200, 320))
    pygame.draw.line(win, green, (300, 220), (300, 260))
    pygame.draw.line(win, green, (300, 265), (300, 335))
    pygame.draw.line(win, green, (200, 195), (200, 215))
    pygame.draw.circle(win, green, (200, 170), 17)
    for i in range (1, 500):
        pygame.draw.line(win, green, (400, 400), (400, 400))
    pygame.display.update()


pygame.quit()
sys.exit(0)



Ho postato il codice
Salve, devi provare a colorare lo schermo dentro il while . Te l'ho segnato con una freccia: (consiglio: aggiorna lo schermo solo una volta e fallo alla fine del loop così il programma sarà più fluido)




import sys

import math

import pygame

from pygame.locals import *

pygame.init()

win = pygame.display.set_mode((500, 500))

pygame.display.set_caption("First Game")

x = 50

FPS = pygame.time.Clock()




startpo = pygame.math.Vector2(320, 240)

endpo = pygame.math.Vector2(170, 0)

angle = 0

y = 50

green = (20, 220, 10)

run = True

while run:

win.fill((0,0,0)) #<--- (0,0,0) sta per nero

pygame.time.delay(100)


for event in pygame.event.get():

if event.type == pygame.QUIT:

run = False

angle = (angle+5) % 360

current_endpo = startpo + endpo.rotate(angle)



pygame.draw.line(win, green, startpo, current_endpo, 2)

FPS.tick(30)

pygame.draw.line(win, green, (200, 400), (200, 470))

pygame.draw.line(win, green, (200, 400), (200, 470))

pygame.draw.line(win, green, (200, 325), (200, 395))

pygame.draw.line(win, green, (200, 325), (200, 395))

pygame.draw.line(win, green, (200, 220), (200, 320))

pygame.draw.line(win, green, (300, 220), (300, 260))

pygame.draw.line(win, green, (300, 265), (300, 335))

pygame.draw.line(win, green, (200, 195), (200, 215))

pygame.draw.circle(win, green, (200, 170), 17)

for i in range (1, 500):

pygame.draw.line(win, green, (400, 400), (400, 400))

pygame.display.update()







pygame.quit()

sys.exit(0)











pygame.quit()

sys.exit(0)




--- Ultima modifica di AlessandroV in data 2020-04-17 11:13:23 ---


Pagina: 1



Esegui il login per scrivere una risposta.