Olen aloittanut koodaamaan peliä pygame-pelikirjastolla:
import pygame naytto = pygame.display.set_mode((640, 400)) pygame.display.set_caption("Piirtäminen") def piirraKuva(kuvatiedosto, x, y): naytto.blit(kuvatiedosto, (x, y)) def piirtaminen(naytto, hahmot): naytto.fill((0, 0, 0)) for hahmo in hahmot: if hahmo[4] == True: kuva = pygame.image.load(hahmo[0]).convert() naytto.blit(kuva, (hahmo[2], hahmo[3])) pygame.display.flip() def kontrolli(hahmot, tapahtuma): if tapahtuma.type == pygame.KEYDOWN: if tapahtuma.key == pygame.K_SPACE: for hahmo in hahmot: hahmo[4] = True elif tapahtuma.key == pygame.K_d: päähahmo = hahmot[0] päähahmo[2] += 10 elif tapahtuma.key == pygame.K_a: päähahmo = hahmot[0] päähahmo[2] -= 10 elif tapahtuma.key == pygame.K_w: päähahmo = hahmot[0] päähahmo[3] -= 10 elif tapahtuma.key == pygame.K_s: päähahmo = hahmot[0] päähahmo[3] += 10 def main(): oravahahmo = ["orava.png", "siili.png", 100, 100, False] hahmot = [oravahahmo] while True: tapahtuma = pygame.event.poll() if tapahtuma.type == pygame.QUIT: break kontrolli(hahmot, tapahtuma) piirtaminen(naytto, hahmot) main()
Haluaisin, että hahmo ei voi liikkua näytön rajojen ulkopuolelle. Miten se pitäisi tehdä?
Hahmon koko olkoon 76 pikseliä leveyä ja 68 pikseliä korkea. Tällöin hahmon näkökulmasta liikkumisalueen rajat ovat. (38, 34), (602, 34), (602, 606), (38, 606). Nyt sinun tulee tarkistaa ennen hahmon liikuttamista meneekö hahmon keskipisteen sijainti noiden reunaehtojen ulkopuolelle. x-suunnassa sallittu alue on siis 38 - 602 ja y-suuntaan hahmo saa liikkua välillä 34 - 606. Tarkistusta varten kannattaa varmaan kirjoittaa oma funktionsa.
Kiitos
Kannattaa kiinnittää huomiota koodin rakenteeseen. Lataat nyt esimerkiksi piirrettävän kuvan uudestaan jokaisella ruudun päivityksellä ihan turhaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.