Beste Reinoud,
Het probleem is al opgelost.
Ik had het ‘print z’ commando ingegeven en had niet in de gaten dat de muis op
gebied stond (100,100) waar de z met een werd opgehoog en dit uitprintte.
Dat heb ik verholpen door de voorwaarden uit te breiden met ‘and click[0]==1’
. Dan moet je eerst klikken met de muis als je op dat specifieke gebied staat.
Alleen wordt de lus zo vaak ververst dat z al meteen na 1 muis klik naar waarde
6 springt en het na het eindscherm. Dit is waarschijnlijk te verhelpen door na
de pygame lus het commando ‘clock.tick(15)’ bij te voegen.
Hierbij is het probleem voorzover verholpen. Deze laatste bijgevoegde code is
de juiste. eind goed al goed.
Alsnog bedankt voor de moeite,
Marc Stevens
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((1200,1000))
lucifer = pygame.image.load("lucifer.png")
plofkip=pygame.image.load("plofkip.png")
aangebrandekip=pygame.image.load("aangebrande-kip.png")
kerstdiner=pygame.image.load("kerstdiner.png")
x = y = z = 0
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
mouse=pygame.mouse.get_pos()
click=pygame.mouse.get_pressed()
print (z)
screen.fill((0,0,0))
screen.blit(plofkip,(100,100))
screen.blit(plofkip,(800,100))
screen.blit(plofkip,(400,600))
screen.blit(lucifer, (mouse))
if x<100 and y<100 and click[0]==1:
screen.blit(aangebrandekip,(100,100))
z=z+1
elif x>800 and y<100 and click[0]==1:
screen.blit(aangebrandekip,(800,100))
z=z+1
elif 350<x<450 and 550<y<650 and click[0]==1:
screen.blit(aangebrandekip,(400,600))
z=z+1
elif z>3:
screen.blit(kerstdiner,(0,0))
pygame.display.update()
pygame.quit()
From: Reinoud van Leeuwen
Sent: Friday, November 28, 2014 12:44 AM
To: Dutch Python developers and users
Subject: Re: [python-nl] probleeemje
Wat je wilt is erg onduidelijk, maar ik vermoed dat je 'elif z>3' wilt
vervangen door 'if z>3'
Reinoud
On 28 Nov 2014, at 00:00, Marc Stevens <[email protected]> wrote:
Beste lui,
Ik mail voor de zoveelste keer over dit programmaatje dat ik heb geschreven,
maar ik geef niet op.
Na verschillende keren de code aan te passen blijkt dit het beste te werken.
En ik heb de clou!
In de while loop heb ik ‘print z’ voor de gein ingevoegd en wat blijkt: Hij
doorloopt de lus telkens en telt van nul op naar oneindig hoever je maar kunt
tellen!
Vandaar dat ‘elif z>3’ of ‘while z>3’ niet werkt. Hoe kan ik dat een halt toe
roepen?
Ik heb al verschillende mail verstuurd en heb de code verscheidende malen
herzien. Maar ben door jullie telkens op de verkeerde been gezet. (Al dan niet
opzettelijk)
Nu zou ik hieraan eindelijk een einde willen breien, zodat ik hier een punt
achter kan zetten.
Waarschijnlijk wordt de lus van pygame telkens opnieuw gelezen en tel hij dan
1 bij z op, terwijl niet aan de if of elif voorwaarde wordt voldaan!
De vraag is : hoe doorbreek ik dat probleem?
In afwachting op uw reactie,
Groetjes Marc Stevens
__________________________________________
Python-nl mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-nl
--------------------------------------------------------------------------------
_______________________________________________
Python-nl mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-nl
_______________________________________________
Python-nl mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-nl