Ich programmiere momentan dieses Spiel: http://vinh.home.t-link.de/spiel.zip
---------------------------------------------------------------------------
Code: Alles auswählen
import sys, pygame
import pygame.mixer, pygame.time
from pygame.locals import *
pygame.init()
size = width, height = 640, 480
speed = [3, 3]
black = 0, 0, 0
mixer = pygame.mixer
time = pygame.time
screen = pygame.display.set_mode(size)
pygame.mixer.music.load("mukke.mp3")
pygame.mixer.music.play(5,0.0)
pygame.mixer.music.get_volume()
pygame.mixer.music.set_volume(100)
background = pygame.image.load("background.jpg")
backgroundrect = background.get_rect()
ball = pygame.image.load("ball.bmp")
ballrect = ball.get_rect()
ball.set_colorkey(black)
balken = pygame.image.load("balken.bmp")
balkenhoehe = balken.get_height()
balkenbreite = balken.get_width()
balkenx = width/2-balkenbreite/2
balkeny = height-20
stein1 = pygame.image.load("stein1.bmp")
steinbreite = stein1.get_width()
steinhoehe = stein1.get_height()
stein1rect = stein1.get_rect()
stein1rect.bottom = 270
stein1rect.right = 200
stein2 = pygame.image.load("stein2.bmp")
stein2rect = stein2.get_rect()
stein2rect.bottom = 270
stein2rect.right = 200+steinbreite+2
stein3 = pygame.image.load("stein3.bmp")
stein3rect = stein3.get_rect()
stein3rect.bottom = 270
stein3rect.right = 200+2*steinbreite+2*2
stein4 = pygame.image.load("stein4.bmp")
stein4rect = stein4.get_rect()
stein4rect.bottom = 270
stein4rect.right = 200+3*steinbreite+3*2
stein5 = pygame.image.load("stein5.bmp")
stein5rect = stein5.get_rect()
stein5rect.bottom = 270
stein5rect.right = 200+4*steinbreite+4*2
stein6 = pygame.image.load("stein6.bmp")
stein6rect = stein6.get_rect()
stein6rect.bottom = 270
stein6rect.right = 200+5*steinbreite+5*2
merker=1
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): sys.exit()
keystate = pygame.key.get_pressed()
balkenxmove = keystate[K_RIGHT]-keystate[K_LEFT]
balkenymove = keystate[K_DOWN]-keystate[K_UP]
balkenx+=2.5*balkenxmove
balkeny+=balkenymove
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0:
speed[1] = -speed[1]
merker=merker or (ballrect.bottom < balkeny or ballrect.top > balkeny+balkenbreite)
if ballrect.right > balkenx and ballrect.left < balkenx+balkenbreite:
if merker and ((ballrect.bottom > balkeny and speed[1]>0 ) or (ballrect.top < balkeny+balkenhoehe and speed[1]<0)):
speed[1] = -speed[1]
merker=0
else:
if ballrect.bottom > height:
print '>>> GAME OVER <<<'
sys.exit()
screen.fill(black)
screen.blit(background, backgroundrect)
screen.blit(ball, ballrect)
screen.blit(balken,(balkenx,balkeny))
screen.blit(stein1, stein1rect)
screen.blit(stein2, stein2rect)
screen.blit(stein3, stein3rect)
screen.blit(stein4, stein4rect)
screen.blit(stein5, stein5rect)
screen.blit(stein6, stein6rect)
pygame.display.flip()
1. Ich will nicht die Steine immer alle einzeln aufrufen, müsste ja sonst ca 100 mal sowas reinschreiben.
2. Springt der Ball nicht richtig vom Balken ab und ich weiß momentan nicht, wie es klappen könnte, obwohl mein Code richtig sein müsste. Außerdem soll der Ball von den Seiten des Balken natürlich auch natürlich abspringen.
3. Der Ball soll je nachdem wo er auf dem Balken ankommt, verschieden abspringen, sprich wenn er mehr auf der linken Seite des Balken ankommt, nach links und auf der rechten Seite nach rechts. Ich müsste wohl dazu den Balken in X-Werte aufteilen und dann speed des x-Wertes ändern, hab aber atm kein Peil :/ Need HELP!