add projekt
This commit is contained in:
parent
971fa8370d
commit
d11635e25f
160
.gitignore
vendored
Normal file
160
.gitignore
vendored
Normal file
@ -0,0 +1,160 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# poetry
|
||||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||
# commonly ignored for libraries.
|
||||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||
#poetry.lock
|
||||
|
||||
# pdm
|
||||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||
#pdm.lock
|
||||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||
# in version control.
|
||||
# https://pdm.fming.dev/#use-with-ide
|
||||
.pdm.toml
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
# PyCharm
|
||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
BIN
projekt/Bilder/Grass.jpg
Normal file
BIN
projekt/Bilder/Grass.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
projekt/Bilder/Hase.jpg
Normal file
BIN
projekt/Bilder/Hase.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
10
projekt/README.md
Normal file
10
projekt/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Installation
|
||||
## Voraussetzungen
|
||||
Siehe Kurs Informatik-E: Einstieg mit Python in itsLearning.
|
||||
## Starten des Spiels
|
||||
python starten.py
|
||||
|
||||
# Bildquellen:
|
||||
[Grass Image by macrovector on Freepik](https://www.freepik.com/free-vector/seamless-green-grass-pattern_13187581.htm#query=grass%20texture&position=0&from_view=keyword&track=ais&uuid=c689b011-652b-4ad1-a90a-bf3c50762622)
|
||||
|
||||
[Rabbit Symbol by torskaya on Freepik](https://www.freepik.com/icon/rabbit_2687160#fromView=search&page=1&position=19&uuid=3c377ca9-cb56-4be7-aebe-0bcac1702034)
|
||||
18
projekt/meinspiel.py
Normal file
18
projekt/meinspiel.py
Normal file
@ -0,0 +1,18 @@
|
||||
import pygame
|
||||
class MeinSpiel:
|
||||
bilder = ["Bilder/Grass.jpg","Bilder/Hase.jpg"]
|
||||
spielfeld = []
|
||||
|
||||
def __init__(self, felderX, felderY):
|
||||
for x in range(felderX):
|
||||
self.spielfeld.append([])
|
||||
for y in range(felderY):
|
||||
self.spielfeld[x].append(0)
|
||||
|
||||
def anfangsKonfiguration(self):
|
||||
self.spielfeld[5][5] = 1
|
||||
|
||||
def tasteGedrueckt(self, taste):
|
||||
if pygame.K_w == taste:
|
||||
print(taste)
|
||||
|
||||
50
projekt/starten.py
Normal file
50
projekt/starten.py
Normal file
@ -0,0 +1,50 @@
|
||||
# Importieren u. initialisieren der Pygame-Bibliothek
|
||||
from meinspiel import MeinSpiel
|
||||
import pygame
|
||||
from pygame.locals import *
|
||||
pygame.init()
|
||||
|
||||
|
||||
# Variablen/KONSTANTEN setzen
|
||||
Breite, Hoehe = 840, 840
|
||||
Pixel = 60
|
||||
FelderX, FelderY = int(Breite / Pixel), int(Hoehe / Pixel)
|
||||
FPS = 60
|
||||
SCHWARZ = ( 0, 0, 0)
|
||||
WEISS = ( 255, 255, 255)
|
||||
pyGameBilder = []
|
||||
|
||||
# Bilder aus meinSpiel werden für pygame vorbereitet
|
||||
meinSpiel = MeinSpiel(FelderX, FelderY)
|
||||
for fname in meinSpiel.bilder:
|
||||
pyGameBilder.append(pygame.image.load(fname))
|
||||
|
||||
#Anfangskonfiguration für das Spielfeld wird geladen
|
||||
meinSpiel.anfangsKonfiguration()
|
||||
|
||||
# Definieren und Öffnen eines neuen Fensters
|
||||
fenster = pygame.display.set_mode((Breite, Hoehe))
|
||||
pygame.display.set_caption("Mein erstes Spiel")
|
||||
clock = pygame.time.Clock()
|
||||
|
||||
# Schleife Hauptprogramm
|
||||
while True:
|
||||
# Überprüfen, ob Nutzer eine Aktion durchgeführt hat
|
||||
for event in pygame.event.get():
|
||||
# Beenden bei [ESC] oder [X]
|
||||
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
|
||||
pygame.quit()
|
||||
|
||||
# Spiellogik
|
||||
if event.type==KEYDOWN:
|
||||
meinSpiel.tasteGedrueckt(event.key)
|
||||
# Spielfeld löschen
|
||||
for x in range(FelderX):
|
||||
for y in range(FelderY):
|
||||
fenster.blit(pyGameBilder[meinSpiel.spielfeld[x][y]],(x*Pixel,y*Pixel))
|
||||
|
||||
# Spielfeld/figuren zeichnen
|
||||
|
||||
# Fenster aktualisieren
|
||||
pygame.display.flip()
|
||||
clock.tick(FPS)
|
||||
Reference in New Issue
Block a user