Programmieren – die besten 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

ASSEMBLY UND NASM C:\Users\Rocke\Desktop\CoptixMW\Services\boot_window.asm:36: error: operation size not specified?

hi leute ich bedanke mich schon mal im voraus , denn dass hier bringt meinen kopf zum qualmen:

section .data

  window_class_name db "BlackScreenClass", 0

  window_title db "", 0

  WM_CLOSE equ 0x0010 ; Define WM_CLOSE

section .bss

  hwnd  resd 1

  hInstance resd 1

  lpMsg  resb 24

section .text

  global _start

  extern GetModuleHandleA, CreateWindowExA, ShowWindow, UpdateWindow, GetMessageA, TranslateMessage, DispatchMessageA, DefWindowProcA, ExitProcess, SetBkColor, GetSystemMetrics

_start:

  push  0

  call  GetModuleHandleA

  mov   [hInstance], eax

  push  0

  push  window_title

  push  window_class_name

  push  dword (WS_POPUPWINDOW | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)

  push  0

  push  0

  push  SM_CXSCREEN

  call  GetSystemMetrics

  push  eax

  push  SM_CYSCREEN

  call  GetSystemMetrics

  push  eax

  push  0

  push  0

  push  [hInstance]

  push  0

  call  CreateWindowExA

  mov   [hwnd], eax

  push  0

  push  [hwnd]

  call  SetBkColor

  push  SW_SHOWNORMAL

  push  [hwnd]

  call  ShowWindow

  push  [hwnd]

  call  UpdateWindow

message_loop:

  lea   esi, [lpMsg]

  push  0

  push  0

  push  0

  push  esi

  call  GetMessageA

  cmp   eax, 0

  je   exit

  push  esi

  call  TranslateMessage

  push  esi

  call  DispatchMessageA

  jmp   message_loop

window_proc:

  cmp   dword [esi + 0], WM_CLOSE

  je   handle_close

  push  dword [esi + 4]

  push  dword [esi + 0]

  push  dword [esi + 8]

  push  dword [esi + 12]

  call  DefWindowProcA

  ret

handle_close:

  push  0

  call  ExitProcess

  ret

exit:

  push  0

  call  ExitProcess

WS_POPUPWINDOW equ 80000000h

WS_CAPTION equ 00C00000h

WS_SYSMENU equ 00080000h

WS_THICKFRAME equ 00040000h

WS_MINIMIZEBOX equ 00020000h

WS_MAXIMIZEBOX equ 00010000h

SW_SHOWNORMAL equ 1

SM_CXSCREEN equ 0

SM_CYSCREEN equ 1

ich bin erst anfänger und möchte wenn mit nasm versuchen den asm code zu obj zu machen aber dort kommt ganze zeit dieser fehler:

C:\Users\Rocke\Desktop\CoptixMW\Services>set FILEPATH=C:\Users\Rocke\Desktop\CoptixMW\Services\

C:\Users\Rocke\Desktop\CoptixMW\Services>C:\Users\Rocke\Desktop\CoptixMW\Services\nasm.exe -f win32 C:\Users\Rocke\Desktop\CoptixMW\Services\boot_window.asm -o boot_window.obj

C:\Users\Rocke\Desktop\CoptixMW\Services\boot_window.asm:36: error: operation size not specified

C:\Users\Rocke\Desktop\CoptixMW\Services\boot_window.asm:42: error: operation size not specified

C:\Users\Rocke\Desktop\CoptixMW\Services\boot_window.asm:46: error: operation size not specified

C:\Users\Rocke\Desktop\CoptixMW\Services\boot_window.asm:49: error: operation size not specified

C:\Users\Rocke\Desktop\CoptixMW\Services>pause

Drücken Sie eine beliebige Taste . . .

naja wie es so ist habe ich ki um rat gefragt MEHRMALS, sie konnte mir nicht weiterhelfen

, dieses skript soll vor dem login fenster in windows, ein anderes fenster drücber einblenden , es soll oben rechts ein kreuz haben zum schliessen , einen schwarzen hintergrund haben und im vollbild, natürlich teste ich es auf einer vm

DANKE IM VORAUS

PC, Computer, Anfänger, programmieren, System, compiler, Assembler, Bug, Error, Operation, Privat, ASM, hartnäckig, Operating System, nervig

Informatik (Schule) erstes Java Projekt 3d Grafik + Pixelart zu schwer oder machbar?

Wer nicht lesen möchte guckt sich das beigefügte Video (Gameplay) an, inwiefern das machbar ist mit wenig Zeit.

Wir werden voraussichtlich in meinem Informatik Kurs ein Spiel programmieren. Jede einzelne Person ein eigenes. Ich hab nun aber noch nie mit Java gearbeitet und wollte fragen wie schwer es ist sich dort reinzufuchsen. Haben in der Schule mit java tutle und kara bisher gearbeitet und habe in Scratch so 30h an ein kleines Pixeladventure gearbeit (selber alles gezeichnet und animiert). Aber das war alles letztes Jahr, im Prinzip fange ich also wieder bei 0an.

Da ich auch die Grafik selber machen will (Charakterdesign, Animationen, Welt) wollte ich fragen wie schwer es ist. Ich wollte einen nach hinten gehenden Raum machen bei dem die Kamera dem Charakter nach hinten oder nach vorne folgt. Das selbe für einen weg von rechts nach links. Alles frei bewegbar.

ich füge mal gameplay von ANNO: Mutationem hier ein, so ähnlich möchte ich es haben, nur nicht so eine Crazy große Welt. (short story adventure eben)

https://www.youtube.com/watch?v=O0bkJArvYIE

wie sehr ist das zu hoch ambitioniert für ein Schulprojekt. Plane höchstens 30 Stunden Zuhause daran zu arbeiten (+30h für die künstlerischen Aspekte) und sonst haben wir ca 15h im Unterricht dafür.
Sollte ich lieber meine Ansprüche runterschrauben und was einfacheres machen, ein Spiel ohne 3d Perspektive? Habt ihr vielleicht Tipps von Tutorial Kanälen auf YouTube? Weiß noch nicht wie das Programm aussieht welches unser Lehrer geben wird, aber grundsätzlich erstmal java.

Schule, Technik, 3D, programmieren, Java, Gaming, Informatik, Programmiersprache, Pixel-Art

Meistgelesene Beiträge zum Thema Programmieren