Python Spiele
Python Spiele
Hier will ich einmal meine Spiele in Python vorstellen.
Damit diese hier auch wirklich funktionieren, braucht man Python 2 und Pygame.
Ich habe bisher sämtliche Spiele, die hier erscheinen werden, auf einem Raspberry Pi programmiert.
1. Spiel
Bei diesem Spiel, welches ich "Creep" genannt habe (die Grafiken sehen *creepy* aus), geht es darum, einen Creep über den Bildschirm fahren zu lassen und dabei die Personen einzufangen. Die Personen bewegen sich jedoch nicht. Das ganze wäre an sich ja so ziemlich langweilig, also habe ich eine Figur, den Hunter, eingefügt. Diese Figur verfolgt den Creep und versucht ihn zu schnappen, bevor er die Personen gefangen hat. Es gibt unendlich viele Personen, also man kann das Spiel sozusagen für immer spielen. Der Hunter ist etwas langsamer als der Creep, darum hat man noch eine Chance, vor ihm zu entkommen. Das Spiel ist dennoch recht schwer.
Der Code ist soweit durchkommentiert, sodass jeder ihn verstehen kann, der sich ein wenig mit Python auskennt. Es gibt sicherlich noch andere Methoden wie man dieses Spiel verbessern kann. Wenn ich die Zeit finde, werde ich das tun und dann vielleicht einen Hintergrund und Gegenstände hinzufügen, damit es schwerer wird.
Um das Spiel zum Laufen zu bringen, muss man die von mir hier eingefügten .PNG Bilder speichern und in den Ordner mit dem Programm einfügen. Dann werden diese geladen. Bitte die Figuren mit "hunter.png", "creep.png" und "person.png" abspeichern. Unter dem dritten Bild befindet sich ein komplett weißes Bild, das wird auch benötigt, wie dem Programmcode zu entnehmen ist. Das sollte man "blank.png" nennen.
Bilder:
<--- hier ist ein Bild
CODE:
"""
Creep
Use the arrow keys for movement
11.2.2018
"""
#imports
import pygame
from pygame.locals import *
import random
from sys import exit
#initialisation of pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption('CREEEEEEP !!')
screen.fill((255,255,255))
BACKGROUND_COLOR = (255,255,255)
clock = pygame.time.Clock()
#image loading
creep = pygame.image.load('creep.png').convert()
hunter = pygame.image.load('hunter.png').convert()
person = pygame.image.load('person.png').convert()
blank = pygame.image.load('blank.png').convert()
def display(message):
screen.fill(BACKGROUND_COLOR)
#Write something onto the Screen
font = pygame.font.Font(None,36)
text = font.render(message, 0, (10,10,10))
screen.blit(text, (0,0))
def game():
#Variables
hunter_x = random.randint(1,600)
hunter_y = random.randint(1,600)
creep_x = random.randint(1,600)
creep_y = random.randint(1,600)
x_change = 0
y_change = 0
person_x = 0
person_y = 0
score = 0
end = False
iscaught = True
while not end:
#Stop routine
for event in pygame.event.get():
if event.type == QUIT:
end = True
#### Creep Movement ###
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -2
elif event.key == pygame.K_RIGHT:
x_change = 2
elif event.key == pygame.K_UP:
y_change = -2
elif event.key == pygame.K_DOWN:
y_change = 2
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
y_change = 0
#### END Creep Movement ###
#real game
#set a person somewhere if actual person is caught
if iscaught == True:
screen.blit(blank, (person_x, person_y))
person_x = random.randint(1,600)
person_y = random.randint(1,600)
screen.blit(person, (person_x, person_y))
iscaught = False
if person_x != 0 and person_y !=0:
screen.blit(person, (person_x, person_y))
screen.blit(creep, (creep_x,creep_y))
screen.blit(hunter, (hunter_x,hunter_y))
creep_x += x_change
creep_y += y_change
#movement of the Hunter
if hunter_x > creep_x:
hunter_x -= 1
if hunter_x < creep_x:
hunter_x += 1
if hunter_y > creep_y:
hunter_y -= 1
if hunter_y < creep_y:
hunter_y += 1
#end Hunter Movement
#test if Hunter caught creep
if hunter_x == creep_x and hunter_y == creep_y:
display("You Lost!")
end = True
#Test if Creep caught person
if creep_x >= person_x and creep_y >= person_y and creep_x < person_x+20 and creep_y < person_y+20:
score += 1
display("Score = " + str(score))
iscaught = True
pygame.display.update()
clock.tick(50)
#Start the game
game()
pygame.quit()
exit()
Das wäre das erste Spiel. Demnächst kommen neue hinzu