Moorhuhn ähnliches spiel braucht eine schussfunktion

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Dr.Tran
User
Beiträge: 1
Registriert: Donnerstag 18. Juni 2009, 21:24

Folgendes:
Ich ein Spiel in dem man Schafe abschießen muss programiert.
Ich hab ein Schaf, dass sich mit rect.move bewegt, ein Fadenkreuz, das auf der Maus-Position liegt.
Mir fehlt aber das wichtigste nähmlich die Schuss-Funktion.
Ich krieg es einfach diese 3 Dinge in eine schleife einzubauen:

Wenn Schaf_pos = Mauszeigerposition und Mausklick, dann Schaf stoppen und Bild mit sheep_rt_dh.bmp ersetzten.

Code: Alles auswählen

import pygame
from pygame.locals import *
import pygame, sys
pygame.init()
window = pygame.display.set_mode((800, 600))
pygame.display.set_caption ("Schaf-Grippe")
screen = pygame.display.get_surface()
pygame.mouse.set_visible(0)

#Hintergrund
bg = pygame.image.load("gras.bmp")

#Schaf-Bilder mit colorkeys:

#rechts
sheep_rt = pygame.image.load("sheep_rt.bmp")
sheep_rtrect = sheep_rt.get_rect()

#rechts-tod
sheep_rt_dh = pygame.image.load("sheep_rt_dh.bmp")
sheep_rt_dhrect = sheep_rt_dh.get_rect()

#fadenkreuz
aimpoint = pygame.image.load("ap.bmp")
aimpointrect = aimpoint.get_rect()

sheep_rt.set_colorkey((0, 255, 0), RLEACCEL)
sheep_rt_dh.set_colorkey((0, 225, 0), RLEACCEL)
aimpoint.set_colorkey((0, 255, 0), RLEACCEL)

clock = pygame.time.Clock()
    
keepGoing = True
while keepGoing:

    #Time
    clock.tick(30)
    #Bewegungen

    speed0 = [0, 0]
    speed = [6, 0]

    sheep_rtrect = sheep_rtrect.move(speed)
    sheep_rt_dhrect =sheep_rt_dhrect.move(speed0)       

    for event in pygame.event.get():
        mouseX, mouseY = pygame.mouse.get_pos ()
        mpos = pygame.mouse.get_pos()
        pos = (mouseX -60, mouseY -60)

    screen.blit(bg, (0, 0))
    screen.blit(sheep_rt, sheep_rtrect)
    screen.blit(sheep_rt_dh, sheep_rt_dhrect)
    screen.blit(aimpoint, (pos)) 
    pygame.display.flip()
Ich bin wirklich ratlos und würde mich über jede Hilfe freuen!
Daher:
Danke im Vorraus an jeden der mir hilft oder es versucht... :)
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Du solltest dir erstmal mehr Grundlagen aneignen. Das offizielle python Tutorial auf docs.python.org und das Nutzen der Suchfunktion hier im Forum sollten dir da behilflich sein. Ebenso wird PEP8 eine Hilfe sein. while keepGoing riecht sich nach dem "while !done" Codesmell. Deine forschleife greift auf Events gar nicht zu. Die Namen sind das totale Chaos und sehen aus wie zusammenkopiert. Und bei while keepGoing hat sich wohl auch kurz der Javaprogrammier eingeschlichen.
SyrischerRaubelefant
User
Beiträge: 14
Registriert: Sonntag 7. Januar 2007, 20:59

Teste doch einfach ob die Mausposition mit dem rect des Schafes kollidiert, wenn ja, benutze für das schaf ein bild eines toten schafs.

btw: sorge dafür dass als Mausposition die Mitte des Fadenkreuzes genommen wird.

also rect.x + rect.w / 2 und rect.y + rect.h / 2
Besuch uns im euIRC:
server: irc.euirc.net
channel: #alle_in_den_chat
Antworten