Python 3 – die neusten Beiträge

Pygame hängt sich bei while True: loop auf?

Hallo,

ich programmiere gerade ein Spiel in Pygame. Auf jeden Fall möchte ich den Ninja Wurfsternen (&anderen Waffen)Ammo geben, dass man eine bestimmte Anzahl von diesen hat und diese nicht spammen kann. Wenn man Space drückt, wird der Ammo Variable eins abgezogen und wenn der Ammo (heißt es der Ammo? ) höher als 0 ist, wird der Befehl self.shoot() ausgeführt. Jetzt mein Problem: Egal, welche Nummer die Variable hat (außer Null), kann ich einmal schießen und danach nicht mehr, auch wenn ich Space drücke. Ich weiß nur nicht wieso. Wenn ich es in einen while True, loop packe, hängt sich pygame auf. Nur wie kann ich das fixen, dass ich öfter als 1 Mal schießen kann. Hier mein benötigter Code (ohne den While True loop):

class Player(pg.sprite.Sprite):

def __init__(self, game, x, y):

self.weapon = 'blowpipe'

self.shurikan = False

self.blowpipe = False

self.xp = PLAYER_XP

self.shoot_ammo = True

self.BLOWPIPE_AMMO = 5

self.SHURIKAN_AMMO = 5

def get_keys(self):

keys = pg.key.get_pressed()

if keys[pg.K_SPACE]:

if self.weapon == 'blowpipe' and self.shoot_ammo == True:

self.BLOWPIPE_AMMO -= 1

if self.BLOWPIPE_AMMO < 0:

self.BLOWPIPE_AMMO = 0

if self.BLOWPIPE_AMMO == 0:

self.shoot_ammo = False

if self.BLOWPIPE_AMMO > 0:

self.shoot()

if self.weapon == 'shurikan' and self.shoot_ammo == True:

self.SHURIKAN_AMMO -= 1

if self.SHURIKAN_AMMO < 0:

self.SHURIKAN_AMMO = 0

if self.SHURIKAN_AMMO == 0:

self.shoot_ammo = False

if self.SHURIKAN_AMMO > 0:

self.shoot()

def shoot(self):

if self.shoot_ammo == True:

now = pg.time.get_ticks()

if now - self.last_shot > WEAPONS[self.weapon]['rate']:

self.last_shot = now

dir = vec(1, 0).rotate(-self.rot)

EinegleicheListegibtesfürBlowpipe.

pos = self.pos + BARREL_OFFSET.rotate(-self.rot)

self.vel = vec(-WEAPONS[self.weapon]['rate'], 0).rotate(-self.rot)

for i in range(WEAPONS[self.weapon]['count']):

spread = uniform(-WEAPONS[self.weapon]['spread'], WEAPONS[self.weapon]['spread'])

Blowpipe(self.game, pos, dir.rotate(spread))

Außerdem gibt es eine Weapons Liste in einem anderen File:

WEAPONS['blowpipe'] = {'img': 'blowpipe.png',

'speed': 500,

'lifetime': 600,

'rate': 300,

'kickback': 0,

'spread': 5,

'damage': 3,

'size': 'blowpipe',

'count': 1}

Eine ähnliche Liste benutze ich für den Shurikan. Thx

Computer, Mac, programmieren, Informatik, Python, Python 3, Pygame, VS Code

Python function wird zweimal aufgerufen?

Guten Morgen,

Ich habe ein problem mit meinem skript. Ich möchte gerne, dass wenn man einen kliptaster betätigt dieser in einem array gespeichert wird. Leider wird die Zahl des Tasters doppelt im array angezeigt. Er ruft bei mir die function zweimal auf.

import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library
import time
import sys, traceback
 
#https://raspberrypihq.com/use-a-push-button-with-raspberry-pi-gpio/
 
tastenSeq=[]
 
 
def button_callback(channel):
       print("Taster 2: AN")
       GPIO.output(12,True)
       tastenSeq.append(2)
       time.sleep(1.0)
       GPIO.output(12,False)
       print("Taster 2: AUS")
 
 
def button_callback2(channel2):
       print("Taster 5: AN")
       GPIO.output(32,True)
       tastenSeq.append(5)
       time.sleep(1.0)
       GPIO.output(32,False)
       print("Taster 5: AUS")
       print tastenSeq
 
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12,GPIO.OUT)
GPIO.setup(32,GPIO.OUT)
 
GPIO.setwarnings(False) # Ignore warning for now
#GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
 
GPIO.setup(31, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set pin 10 to be an input pin and set initial value to be pulled low (off)
GPIO.add_event_detect(31,GPIO.RISING,button_callback) # Setup event on pin 10 rising edge
 
 
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set pin 10 to be an input p$
GPIO.add_event_detect(15,GPIO.RISING,callback=button_callback2) # Setup event on p$
 
message = input("Press enter to quit\n\n") # Run until someone presses enter
GPIO.cleanup() # Clean up

 

 

Bild zum Beitrag
Computer, Computerspiele, programmieren, Informatik, Python 3, Raspberry Pi, Raspberry, Raspberry Pi 3

In Python Ton und anderer Befehl gleichzeitig ausführen?

Moin Leute,

wir schreiben gerade ein Programm mit Python , wo wir einen Ball von einem Schläger abprallen lassen und sobald er einen Block trifft soll das Programm einen Ton abspielen. Jetzt ist aber das Problem aufgetreten, dass das Programm, solange der Ton abgespielt wird, pausiert wird. Wir wollten Euch fragen, wie man diese beiden Vorgänge gleichzeitig abspielen kann?

Quellcode:

class Block:

   def __init__(self, x, y, farbe, leben):

       global canvas, STEINLAENGE, STEINBREITE

       self.x = x

       self.y = y

       self.farbe = farbe

       self.leben = leben

       self.rec = canvas.create_rectangle(self.x-STEINLAENGE/2, self.y, self.x+STEINLAENGE/2, self.y+STEINBREITE, fill=self.farbe)

   def move(self, x ,y):

       global canvas, STEINLAENGE, STEINBREITE

       self.x = x

       self.y = y

       canvas.coords(self.rec, self.x-SCHLAEGERLAENGE/2, self.y, self.x+SCHLAEGERLAENGE/2, self.y+SCHLAEGERBREITE)

   def Bloecke(self, ballx, bally):

       global schlaege, bewegungx, bewegungy, STEINBREITE, STEINLAENGE

       if (bally + RADIUS >= self.y) and (bally - RADIUS <= self.y + STEINBREITE):

           if(ballx > self.x - (STEINLAENGE/2)) and (ballx < self.x + (STEINLAENGE/2)):

               self.leben = self.leben-1

               bewegungy = bewegungy * -1

               bewegungx = bewegungx * 1

               schlaege += 1

               canvas.dchars(schlaegecounter, 0, 99999999)

               canvas.insert(schlaegecounter, 0, schlaege)

               print("gh")

               winsound.PlaySound("", winsound.SND_ALIAS)#Hier wird gesagt, dass sobald der Ball auf die Blöcke stößt, der Ball abprallt, und verschoben wird. Hierbei entsteht das Problem da der Ball unterbricht, um den Ton abzuspielen

           if self.leben < 1:

               self.move(10000000000000,1000000000000)

Computer, Schule, programmieren, gleichzeitig, Python, Python 3

Meistgelesene Beiträge zum Thema Python 3