This shows you the differences between two versions of the page.
ii:lab:laborator3 [2016/11/24 08:42] iulian_gabriel.radu [Introducere] |
ii:lab:laborator3 [2020/11/25 10:25] (current) florin.stancu [Input de la utilizator] fix code |
||
---|---|---|---|
Line 6: | Line 6: | ||
PyGame este o bibliotecă Python folosită pentru creearea de jocuri și aplicații multimedia. PyGame este bazat pe biblioteca SDL. | PyGame este o bibliotecă Python folosită pentru creearea de jocuri și aplicații multimedia. PyGame este bazat pe biblioteca SDL. | ||
- | |||
- | |||
- | // Add this | ||
- | <code># -*- coding: utf-8 -*-</code> | ||
==== Creearea unei ferestre ==== | ==== Creearea unei ferestre ==== | ||
Line 82: | Line 78: | ||
<code python> | <code python> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | |||
import pygame | import pygame | ||
Line 87: | Line 85: | ||
# Încărcăm imaginea în memorie | # Încărcăm imaginea în memorie | ||
- | image = pygame.pygame.load('image.png') | + | image = pygame.image.load('image.png') |
# Transferăm pixelii imaginii în fereastră | # Transferăm pixelii imaginii în fereastră | ||
Line 101: | Line 99: | ||
<code python> | <code python> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | |||
import pygame | import pygame | ||
+ | from pygame import KEYDOWN | ||
screen = pygame.display.set_mode((800, 600)) | screen = pygame.display.set_mode((800, 600)) | ||
Line 113: | Line 114: | ||
if event.type == KEYDOWN: | if event.type == KEYDOWN: | ||
- | if event.key == K_UP: | + | if event.key == pygame.K_UP: |
print 'sageata sus' | print 'sageata sus' | ||
- | elif event.key == K_DOWN: | + | elif event.key == pygame.K_DOWN: |
print 'sageata jos' | print 'sageata jos' | ||
- | elif event.key == K_LEFT: | + | elif event.key == pygame.K_LEFT: |
print 'sageata stanga' | print 'sageata stanga' | ||
- | elif event.key == K_RIGHT: | + | elif event.key == pygame.K_RIGHT: |
print 'sageata dreapta' | print 'sageata dreapta' | ||
- | elif event.key == K_SPACE: | + | elif event.key == pygame.K_SPACE: |
print 'space' | print 'space' | ||
Line 155: | Line 156: | ||
- Din directorul C:\development puteți rula orice script folosind: | - Din directorul C:\development puteți rula orice script folosind: | ||
<code>python.exe $nume_script</code> | <code>python.exe $nume_script</code> | ||
- | |||
- | ===== Phaser ===== | ||
- | |||
===== Exerciții ===== | ===== Exerciții ===== | ||
- | Creeați un joc la alegere pornind de la unul dintre scheletele de cod de mai jos. | + | === Task-uri: === |
- | + | Creeați [[https://www.andoverpatio.co.uk/21/space-invaders/|Space Invaders]] plcand de la scheletul de cod de mai jos: | |
- | - Python/PyGame | + | - **[20p]** Jucator: poate sa se deplaseze stanga(A) / dreapta(D) si sa lanseze proiectile (Space) |
+ | - **[20p]** Bunkere destructibile | ||
+ | - **[20p]** Inamici mobili organizati in 5 randuri | ||
+ | - **[20p]** Cel mai apropiat inamic de pe fiecare coloana ataca | ||
+ | - **[20p]** Score si High-Score (salvat intre run-uri) | ||
+ | === Resurse aditionale: === | ||
+ | * Parcurgeti [[http://www.101computing.net/getting-started-with-pygame/|acest tutorial]] pentru informatii aditionale. | ||
+ | * Porniti de la acest schelet de cod: | ||
+ | <spoiler> | ||
<file python main.py> | <file python main.py> | ||
import pygame | import pygame | ||
+ | import sys | ||
WIDTH = 800 | WIDTH = 800 | ||
Line 175: | Line 182: | ||
COLOR_BLACK = (0, 0, 0) | COLOR_BLACK = (0, 0, 0) | ||
- | + | COLOR_RED = (255, 0, 0) | |
- | + | ||
- | """ Modify current game state """ | + | |
- | def update(): | + | |
- | pass | + | |
- | + | ||
- | """ Draw current game state """ | + | |
- | def render(): | + | |
- | pass | + | |
def main(): | def main(): | ||
Line 236: | Line 235: | ||
# Update game state | # Update game state | ||
- | update() | ||
# Render current game state | # Render current game state | ||
- | render() | + | pygame.draw.rect(background, |
+ | COLOR_RED, | ||
+ | pygame.Rect(100, 120, 200, 400)) | ||
+ | |||
+ | pygame.display.flip() | ||
+ | screen.blit(background, (0, 0)) | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
main() | main() | ||
- | |||
</file> | </file> | ||
- | + | </spoiler> | |
- | - JavaScript/Phaser | + | |
- | <file js main.js> | + | |
- | + | ||
- | </file> | + | |
- | + | ||
- | https://phaser.io/sandbox/ | + | |
- | + | ||
- | http://www.zekechan.net/getting-started-html5-game-development-pong1/ | + | |
- | + | ||
- | https://github.com/zekechan/phaser-html5-tutorial-pong | + |