Käyttäjän työkalut

Sivuston työkalut


tormays

Erot

Tämä näyttää erot valitun ja nykyisen version kesken tästä sivusta.

Linkki vertailunäkymään

Seuraava revisio
Edellinen revisio
tormays [2012/11/29 06:57]
moversti luotu
tormays [2015/08/13 04:20] (nykyinen)
Rivi 131: Rivi 131:
 main() main()
 </​code>​ </​code>​
 +
 +====== Pallojen törmäys ======
 +
 +Verrataan keskipisteiden etäisyyksiä. Jos etäisyys on pienempi kuin yhteenlaskettu säteiden pituus, niin pallot koskettavat.
 +
 +<code python>
 +# -*- coding: utf-8 -*-
 +import pygame
 +import math
 + 
 +naytto = pygame.display.set_mode((640,​ 400))
 +pygame.display.set_caption("​Kaksi palloa"​)
 + 
 +def main():
 +    pallo1_x = 200
 +    pallo1_y = 100
 +    pallo1_sade = 40
 + 
 +    pallo2_x = 300
 +    pallo2_y = 200
 +    pallo2_sade = 40
 + 
 +    while True:
 +        tapahtuma = pygame.event.poll()
 +        if tapahtuma.type == pygame.QUIT:​
 +            break
 + 
 +        naytto.fill((0,​ 0, 0))
 +        pygame.draw.circle(naytto,​ (255, 0, 0), (pallo1_x, pallo1_y), pallo1_sade)
 + 
 +        if tapahtuma.type == pygame.KEYDOWN:​
 +            if tapahtuma.key == pygame.K_RIGHT:​
 +                pallo2_x = pallo2_x + 10
 +            if tapahtuma.key == pygame.K_LEFT:​
 +                pallo2_x = pallo2_x - 10
 +            if tapahtuma.key == pygame.K_DOWN:​
 +                pallo2_y = pallo2_y + 10
 +            if tapahtuma.key == pygame.K_UP:​
 +                pallo2_y = pallo2_y - 10
 +
 +        tormaa = False
 + 
 +        #lasketaan keskipisteiden etäisyys toisistaan
 +        pallojen_etaisyys_x = math.fabs(pallo1_x - pallo2_x)
 +        pallojen_etaisyys_y = math.fabs(pallo1_y - pallo2_y)
 + 
 +        if (pallojen_etaisyys_x )**2 + (pallojen_etaisyys_y)**2 <= (pallo1_sade + pallo2_sade)**2:​
 +                tormaa = True
 + 
 +        if (tormaa):
 +            pygame.draw.circle(naytto, ​ (0,255,0), (10, 10), 5)
 +        else:
 +            pygame.draw.circle(naytto, ​ (255,0,0), (10, 10), 5)
 + 
 +        pygame.draw.circle(naytto,​ (255, 255, 0), (pallo2_x, pallo2_y), pallo2_sade)
 + 
 +        pygame.display.flip()
 + 
 +main()
 +
 +</​code>​
 +
tormays.txt · Viimeksi muutettu: 2015/08/13 04:20 (ulkoinen muokkaus)