ich bin neu im Forum und will mich zunächst einmal vorstellen:
Ich bin 14 Jahre alt und bin gerade dabei mir das Programmieren beizubringen.
Als Einstiegsprogrammiersprache habe ich deswegen Python gewählt.
Ich habe mir vorgenommen das Spiel Snake zu programmieren um mein logisches Denken zu erweitern und mich
hinsichtlich meiner Programmierkenntnisse zu erweitern.
Ich will mein erstes Spiel vorstellen und würde mich auf Verbesserungsvorschläge freuen.
Mir ist bei meinem Spiel jedoch aufgefallen, dass meine CPU sehr schnell überhitzt.
Könnte es daran liegen, weil ich Threads benutze oder ist es ein anderer.
Vielen Dank!
Code: Alles auswählen
import pygame
import threading
import random
pygame.init()
fenster = pygame.display.set_mode([500,500])
pygame.display.set_caption("Mein Spiel")
hoehe = 25
breite = 25
go = True
rechtsgedrueckt= False
linksgedrueckt = False
obengedrueckt = False
untengedrueckt = False
schlange = [[7,5],[6,5],[5,5],[4,5],[3,5],[2,5],[1,5]]
schlangenkopf = schlange[0]
startevent=False
kollision = False
futter = [12,12]
def ereignis():
global kollision, schlangenkopf, rechtsgedrueckt, linksgedrueckt
while go:
i = len(schlange) - 1
if rechtsgedrueckt == True:
while(i>0):
schlange[i][0] = schlange[i-1][0]
schlange[i][1] = schlange[i-1][1]
i = i - 1
schlangenkopf[0]+=1
if linksgedrueckt == True:
while(i>0):
schlange[i][0] = schlange[i-1][0]
schlange[i][1] = schlange[i-1][1]
i = i - 1
schlangenkopf[0]-=1
if obengedrueckt == True:
while(i>0):
schlange[i][0] = schlange[i-1][0]
schlange[i][1] = schlange[i-1][1]
i = i - 1
schlangenkopf[1]-=1
if untengedrueckt == True:
while(i>0):
schlange[i][0] = schlange[i-1][0]
schlange[i][1] = schlange[i-1][1]
i = i - 1
schlangenkopf[1]+=1
##################################################################
m = 1
while(m<len(schlange)):
if((schlangenkopf[0]==schlange[m][0] and schlangenkopf[1]==schlange[m][1])
or (schlangenkopf[0]>19 or schlangenkopf[0]<0 or schlangenkopf[1]<0
or schlangenkopf[1]>19)):
kollision = True
break
m = m + 1
if kollision == True:
break
##################################################################
f = 0
if (schlangenkopf[0] == futter[0] and schlangenkopf[1] == futter[1]):
schlange.insert(0,[futter[0],futter[1]])
schlangenkopf = schlange[0]
futter[0] = int(random.random() *20)
futter[1] = int(random.random() *20)
while(f < len(schlange)):
if(schlange[f][0]==futter[0] and schlange[f][1]==futter[1]):
futter[0] = int(random.random() *20)
futter[1] = int(random.random() *20)
f = f + 1
fenster.fill((0,0,0))
for a in schlange:
pygame.draw.rect(fenster, (255,80,9),(a[0]*25,a[1]*25,hoehe,breite))
pygame.draw.rect(fenster, (100,89,8),(futter[0]*25,futter[1]*25,25,25))
pygame.display.update()
pygame.time.delay(100)
while go:
for event in pygame.event.get():
if event.type == pygame.QUIT:
go = False
keys = pygame.key.get_pressed()
if linksgedrueckt == False:
if keys[pygame.K_RIGHT]:
rechtsgedrueckt = True
linksgedrueckt = obengedrueckt = untengedrueckt = False
if rechtsgedrueckt == False:
if keys[pygame.K_LEFT]:
linksgedrueckt = True
rechtsgedrueckt = obengedrueckt = untengedrueckt = False
if untengedrueckt == False:
if keys[pygame.K_UP]:
obengedrueckt = True
linksgedrueckt = rechtsgedrueckt = untengedrueckt = False
if obengedrueckt == False:
if keys[pygame.K_DOWN]:
untengedrueckt = True
linksgedrueckt = obengedrueckt = rechtsgedrueckt = False
pygame.time.delay(20)
if startevent == False:
startevent = True
t = threading.Thread(target = ereignis)
t.daemon = True
t.start()
pygame.quit()