Käyttäjän työkalut

Sivuston työkalut


perl

Erot

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

Linkki vertailunäkymään

Both sides previous revision Edellinen revisio
Seuraava revisio
Edellinen revisio
perl [2012/11/28 16:58]
moversti
perl [2015/08/13 04:20] (nykyinen)
Rivi 2: Rivi 2:
  
 Verrataan x- ja y-koordinaatteja. Verrataan x- ja y-koordinaatteja.
 +<code perl>
 +# -*- coding: utf-8 -*-
 +import pygame
 + 
 +naytto = pygame.display.set_mode((640,​ 400))
 +pygame.display.set_caption("​Laatikoiden törmäys"​)
 + 
 +def main():
 +    laatikko1_x = 100
 +    laatikko1_y = 50
 +
 +    laatikko1_korkeus = 100
 +    laatikko1_leveys = 100
 + 
 +    laatikko2_x = 250
 +    laatikko2_y = 100
 +
 +    laatikko2_korkeus = 50
 +    laatikko2_leveys = 50
 +
 +    while True:
 +        tapahtuma = pygame.event.poll()
 +        if tapahtuma.type == pygame.QUIT:​
 +            break
 + 
 +        naytto.fill((0,​ 0, 0))
 +        pygame.draw.rect(naytto,​ (255, 0, 0), (laatikko1_x,​ laatikko1_y,​ laatikko1_korkeus,​ laatikko1_leveys))
 + 
 +        if tapahtuma.type == pygame.KEYDOWN:​
 +            if tapahtuma.key == pygame.K_RIGHT:​
 +                laatikko2_x = laatikko2_x + 10
 +            if tapahtuma.key == pygame.K_LEFT:​
 +                laatikko2_x = laatikko2_x - 10
 +            if tapahtuma.key == pygame.K_DOWN:​
 +                laatikko2_y = laatikko2_y + 10
 +            if tapahtuma.key == pygame.K_UP:​
 +                laatikko2_y = laatikko2_y - 10
 +
 +        tormaa = False
 +
 +        # Testataan ensin, ovatko laatikoiden x-koordinaatit päällekkäin. Jos ovat, niin testataan y-koordinaatit
 +
 +        if laatikko1_x < laatikko2_x + laatikko2_leveys and laatikko2_x < laatikko1_x + laatikko1_leveys:​
 +            if laatikko1_y < laatikko2_y + laatikko2_korkeus and laatikko2_y < laatikko1_y + laatikko1_korkeus:​
 +                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.rect(naytto,​ (255, 255, 0), (laatikko2_x,​ laatikko2_y,​ laatikko2_korkeus,​ laatikko2_leveys))
 + 
 +        pygame.display.flip()
 + 
 +main()
 +</​code>​
  
 ====== Pallon ja suorakaiteen törmäys ====== ====== Pallon ja suorakaiteen törmäys ======
Rivi 46: Rivi 103:
         tormaa = False         tormaa = False
  
 +        #lasketaan keskipisteiden etäisyys toisistaan
         pallon_etaisyys_x = math.fabs(pallo_x - (laatikko_x + laatikko_leveys/​2))         pallon_etaisyys_x = math.fabs(pallo_x - (laatikko_x + laatikko_leveys/​2))
         pallon_etaisyys_y = math.fabs(pallo_y - (laatikko_y + laatikko_korkeus/​2))         pallon_etaisyys_y = math.fabs(pallo_y - (laatikko_y + laatikko_korkeus/​2))
Rivi 72: Rivi 130:
    
 main() main()
- 
 </​code>​ </​code>​
perl.txt · Viimeksi muutettu: 2015/08/13 04:20 (ulkoinen muokkaus)