2016-04-26 2 views
1

私はPythonプログラミングの初心者です。私はpythonを使ってゲームを作るためのコースプロジェクトを持っています。私はパイゲームを使って卵とバスケットゲームを作りました。ゲームはある程度は機能しています。私は卵を倒してキープレスでバスケットを動かすことができますが、卵を連続的に作ることはできません。私は実際の試合のように卵が倒れるのを期待しています。卵とバスケットゲームのPython

そして、私はバスケットに卵が落ちたときと、バスケットに落ちたときにスコアを上げる方法を知りません。

私を助けてもらえますか?

Screenshot of my game

#The egg and basket game 

import pygame 
from pygame.locals import * 
import time 
import random 
clock = pygame.time.Clock() 
x=260 
y=500 
#Screen initialize 
pygame.init() 
pygame.font.init() 
screen=pygame.display.set_mode((600,600)) 
pygame.display.set_caption("egg") 

#Background 
cloud=pygame.image.load("clouds.jpg") 
cloud=pygame.transform.scale(cloud,(600,600)) 
screen.blit(cloud,(0,0)) 

#Basket 
basket=pygame.image.load("basket.jpg") 
basket=pygame.transform.scale(basket,(80,80)) 
screen.blit(basket,(x,y)) 
pygame.display.update() 

#egg 
egg=pygame.image.load("egg.jpg") 
egg=pygame.transform.scale(egg,(20,20)) 

#screen.blit(egg,(290,20)) 
pygame.display.update() 

#Movement of basket 
ychange=0 
xchange=0 
exiting=False 
for yegg in range(20,550): 

#for i in range(0,100): 
xegg=random.randrange(50,550) 
    while not exiting:  
    #xegg=random.randrange(50,550) 
    #for yegg in range(20,550): 
     if yegg<550: 
      ychange+=1 
      pygame.display.update() 
      clock.tick(60) 
      screen.blit(egg,(xegg,ychange)) 

     else: 
      yegg=20 
      yegg=yegg+ychange  
      pygame.display.update() 
      clock.tick(60) 
      screen.blit(egg,(xegg,yegg)) 
     #yegg=20      
     pygame.display.update() 
     clock.tick(60) 
    #yegg=20 

     for event in pygame.event.get(): 
      print(event) 
      if(event.type==pygame.QUIT): 
       exiting=True 
       pygame.quit() 
       quit() 
      if(event.type==pygame.KEYDOWN): 
       if(event.key==pygame.K_LEFT): 
        xchange=-5 
       if(event.key==pygame.K_RIGHT): 
        xchange=5 
      screen.blit(basket,(x,y)) 
      if(event.type==pygame.KEYUP): 
       if(event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT): 
        xchange=0 

      x=x+xchange 
      print(x) 
      screen.blit(cloud,(0,0)) 

      screen.blit(basket,(x,y)) 

      pygame.display.update() 
      clock.tick(60) 

    i=i+1 
    ychange=0 
    #random position of eggs 

    #MOVEMENT OF egg 

答えて

1

まず第一に消えて、画像の周りに白い四角形を作るために.PNG画像を使用しています。あなたは各繰り返しランダムなxの値を取得するよう 使用pygame.image.load("myimage.png").convert_alpha()

xegg=random.randrange(50,550) 

上記の行は、whileループ内でなければなりません。 私はコードにいくつかの変更を加えましたが、現在はランダムな位置から卵が倒れています。 それらを捕まえるには、バスケットと卵の衝突をチェックする必要があります。

#The egg and basket game 

import pygame 
from pygame.locals import * 
import time 
import random 
clock = pygame.time.Clock() 
x=260 
y=500 
#Screen initialize 
pygame.init() 
pygame.font.init() 
screen=pygame.display.set_mode((600,600)) 
pygame.display.set_caption("egg") 

#Background 
cloud=pygame.image.load("clouds.png").convert_alpha() 
cloud=pygame.transform.scale(cloud,(600,600)) 
screen.blit(cloud,(0,0)) 

#Basket 
basket=pygame.image.load("basket.png").convert_alpha() 
basket=pygame.transform.scale(basket,(80,80)) 
screen.blit(basket,(x,y)) 
pygame.display.update() 

#egg 
egg=pygame.image.load("eggs.png").convert_alpha() 
egg=pygame.transform.scale(egg,(20,20)) 

#screen.blit(egg,(290,20)) 
pygame.display.update() 

#Movement of basket 
ychange=0 
xchange=0 
exiting=False 


xegg = random.randrange(50,550) 
yegg = 20 
while not exiting: 
#xegg=random.randrange(50,550) 
#for yegg in range(20,550): 
    print yegg 
    if yegg<550: 
     yegg += 5 
     pygame.display.update() 
     clock.tick(60) 
     screen.blit(egg,(xegg,yegg)) 

    else: 
     yegg=20 
     xegg = random.randrange(50,550) 
     yegg=yegg+ychange 
     pygame.display.update() 
     clock.tick(60) 
     screen.blit(egg,(xegg,yegg)) 
    #yegg=20 
    pygame.display.update() 
    clock.tick(60) 
    #yegg=20 

    for event in pygame.event.get(): 
     print(event) 
     if(event.type==pygame.QUIT): 
      exiting=True 
      pygame.quit() 
      quit() 
     if(event.type==pygame.KEYDOWN): 
      if(event.key==pygame.K_LEFT): 
       xchange=-5 
      if(event.key==pygame.K_RIGHT): 
       xchange=5 
     screen.blit(basket,(x,y)) 
     if(event.type==pygame.KEYUP): 
      if(event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT): 
       xchange=0 

     x=x+xchange 
     print(x) 
     screen.blit(cloud,(0,0)) 

     screen.blit(basket,(x,y)) 

     pygame.display.update() 
     clock.tick(60) 

i=i+1 
ychange=0 
    #random position of eggs 

    #MOVEMENT OF egg 

pygame collisionsに行き、コリソンを学んでください。いくつかの非常に良い例については hereに行ってください。また、Pygameの優れたガイドのためのhere

関連する問題