# September updates

**URL:** https://ps.zoethical.org/t/september-updates/7084
**Category:** Jeu vidé-A
**Tags:** residence-videa-ceve
**Created:** [September 29, 2023, 1:51pm UTC](https://ps.zoethical.org/t/september-updates/7084 "2023-09-29T13:51:12Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![lula](https://ps.zoethical.org/user_avatar/ps.zoethical.org/lula/32/2386_2.png) [@lula](https://ps.zoethical.org/u/lula)
#### Post date: [September 29, 2023, 1:51pm UTC](https://ps.zoethical.org/t/september-updates/7084/1 "2023-09-29T13:51:12Z")

</div>

hello  
je note ici les progrès qu’on a fait avec @natacha en Godot pendant la semaine de [La Tenaille](https://latenaille.org).

## Players / Camera

On garde la demo single player.  
**On n’a pas besoin de touches lettres** sur le clavier pour bouger les persos, on reste avec les flèches.  
On aimerait définir une **classe Player.gd** à partir de laquelle on instancie les persos.  
Using @export keyword allows to set values inside Inspector menu.  
On atterrit sur l’astéroïde et on retrouve **2 persos cote à cote**.  
HeLa nous donne la bienvenue et nous invite à essayer de changer de perso en même temps qu’elle explique comment les bouger (flèches). On change de perso en sélectionnant avec la souris/le trackpad. **La caméra bouge de conséquence.**  
Chaque scène player est construite à partir d’un CharacterBody2D, auquel on associe: 1 AnimatedSprite, 1 CollisionShape, 1 Camera2D, 1 script héritant de la classe Player. Quand on change de perso, on désactive la caméra courante et on active celle du nouveau choix.

## TileMap

On garde un fond sobre, pour l’instant un fichier .png – un fond plus dynamique par la suite ?  
La première couche de TileMap ce sont les rochers et les plantes.  
On gère les **CollisionShapes à la main** : en dessinant toutes les tiles du contour des graphiques.  
**TODO Y-sorting ?**

## Display

To prevent player from wandering off: **set camera limits + create CollisionShapes along the edges** of the world.

**TODO in Player.gd** :

> Now that we have a movement direction, we can update the player’s position. We can also use `clamp()` to prevent it from leaving the screen. _Clamping_ a value means restricting it to a given range. Add the following to the bottom of the `_process` function (make sure it’s not indented under the else):
> 
> position += velocity \* delta  
> position = position.clamp(Vector2.ZERO, screen\_size)
