Giter VIP home page Giter VIP logo

sprites's Introduction

Lors d'un stage chez Thingz j'ai pu contribué à la création d'une librairie pour leur carte Galaxia. La carte sort bientôt.

📖 Présentation

sprites est une librairie Python, elle permet d'affichier des éléments sur l'écran de la Galaxia. Vous pouvez l'installer en ajoutant le dossier sprites dans /GALAXIA/lib/.

Pour programmer la carte, vous pouvez utiliser l'interface en ligne et cliquer sur "Texte" ou le fichier code.py qui est dans votre Galaxia.

Télécharger la librairie

Télécharger l'utilitaire d'image

⚙️ Utilisation

💾 Importer la libraire :

import sprites

Les différents types de sprite de la librarie sont rectangle, icon et image.

🟨 Rectangle

On commence par créer un rectangle et le stocker dans une variable (ici sprite).

sprite = sprites.rectangle(x=0, y=0, color=0xFF0000, width=20, height=20, scale=1, hidden=False)

Vous pouvez définir de nombreux arguments:

x et y : position du rectangle (en nombres entiers)

color : couleur du rectangle (en hexadécimal)

width et height : longueur et hauteur du rectangle (en nombres entiers) (non modifiable)

scale : échelle du rectangle, elle multiplie les dimensions du rectangle (en nombre entier supérieur ou égal à 1)

hidden : si le rectangle est caché, lorsque cette variable est à False le rectangle est visible (en booléen, True ou False)

♥️ Icon

On commence par créer une image et la stocker dans une variable (ici sprite2).

sprite2 = sprites.icon(x=0, y=0, scale=1, name="cross", color=0xFFFFFF, hidden=False)

x et y : position de l'icône (en nombres entiers)

scale : échelle de l'icône, elle multiplie les dimensions de l'image (en nombre entier supérieur ou égal à 1)

name : nom de l'icône, il peut être : "cross", "circle", "heart" ou "emoji" (non modifiable) Comment ajouter ses propres icônes ?

color : couleur de l'icône (en hexadécimal)

hidden : si l'icône est caché, lorsque cette variable est à False l'icône est visible (en booléen, True ou False)

🌅 Image

On commence par créer une image et la stocker dans une variable (ici sprite3).

sprite3 = sprites.image(x=0, y=0, scale=1, path="/thingz.bmp", hidden=False)

x et y : position de l'image (en nombres entiers)

scale : échelle de l'image, elle multiplie les dimensions de l'image (en nombre entier supérieur ou égal à 1)

path : chemin du fichier en .bmp à l'intérieur de la Galaxia (non modifiable)

hidden : si l'image est caché, lorsque cette variable est à False l'image est visible (en booléen, True ou False)

ℹ️

Afin de sauvegarder une image dans la Galaxia dans le bon format, les bonnes dimensions, les bonnes couleurs... Vous pouvez utiliser l'utilitaire d'image Galaxia.

Si vous souhaiter ajouter une icône il faut qu'elle soit blanche sur fond noir et en 20x20, puis, il faut la déplacer dans /GALAXIA/lib/sprites/icons/ .

Autres commandes

Tous les attributs peuvent être récupérés.

Exemples:

sprite.x 
>>> 30 # valeur x de sprite
sprite.name 
>>> "emoji" # nom de l'icône utilisée

Presque tous les attributs sont modifiables (hormis ceux marqués "non modifiable").

Exemples:

sprite.x += 10 # déplace le sprite vers la droite
sprite.color = 0xFFFF00 # modifie la couleur d'une icône

Renvoie True si les deux sprites fournis sont en collision.

sprites.collision(sprite,sprite2)

Renvoie True si le sprite fourni est en collision avec la bordure du haut (north). border peut être "n"(north), "s"(south), "w"(west) ou "e"(east).

sprites.border_collision(border="n",sprite)

Indique la version.

sprites.version()

🗄 Exemples

1• Exemple d'affichage des éléments

⌨️ Voir le code
# Importer les librairies
import sprites 
import time

# Créer un rectangle
forme = sprites.rectangle(x=15, y=40, color=0x00FFFF, width=20, height=50, scale=1, hidden=False)

# Créer une icône de coeur
coeur = sprites.icon(x=110, y=55, scale=1, name="heart", color=0xFF0000, hidden=False)

# Créer les images de l'animation
anim1 = sprites.image(x=50,y=30,path="/walk1.bmp", hidden=True)
anim2 = sprites.image(x=50,y=30,path="/walk2.bmp", hidden=True)
anim3 = sprites.image(x=50,y=30,path="/walk3.bmp", hidden=True)
anim4 = sprites.image(x=50,y=30,path="/walk4.bmp", hidden=True)

# Mettre les images de l'animation dans une liste
anims = [anim1,anim2,anim3,anim4]

# Alterner indéfiniment entre cacher et montrer les images
while True:
    for anim in anims:
        anim.hidden = False
        time.sleep(0.3)
        anim.hidden = True
🎥 Voir la vidéo
demo.mov

📂 Accéder aux fichiers

2• Exemple de déplacement d'un sprite

⌨️ Voir le code
# Importer les librairies
from thingz import accelerometer
import time
import sprites

# Créer un rectangle
sprite = sprites.rectangle(x=30,y=40,color=0xffff00, width=20, height=20 )

# Répéter indéfiniment
while True:

    # Si l'accéléromètre penche vers le bas et que le carré de touche pas le bas de l'écran
    if accelerometer.get_y() > 150 and not sprites.border_collision('s',sprite):
        # Déplacer le sprite vers le bas
        sprite.y += 1
    
    # Si l'accéléromètre penche vers le haut et que le carré de touche pas le haut de l'écran
    if accelerometer.get_y() < 150*-1 and not sprites.border_collision('n',sprite):
        # Déplacer le sprite vers le haut
        sprite.y -= 1 
    
    # Si l'accéléromètre penche vers la droite et que le carré de touche pas la droite de l'écran
    if accelerometer.get_x() > 150 and not sprites.border_collision('e',sprite):
        # Déplacer le sprite vers la droite
        sprite.x += 1
    
    # Si l'accéléromètre penche vers la gauche et que le carré de touche pas la gauche de l'écran
    if accelerometer.get_x() < 150*-1 and not sprites.border_collision('w',sprite):
        # Déplacer le sprite vers la gauche
        sprite.x -= 1

    # Attendre 0,005s
    time.sleep(0.005)
🎥 Voir la vidéo
demo.mov

📂 Accéder aux fichiers

📎 Autres...

🖥 Mon compte Twitter

twitter.com/emilien_barde

💰 Me soutenir

paypal.com/emilienb31

📚 Documentation

Documentation de la librarie sur laquelle je me suis basé

FAQ sur la Galaxia

sprites's People

Contributors

emilien-b avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.