# Autres langages > Python > GUI >  Pygame les arcanes des collisions

## Pyjapa

Bonjour  tous, je suis en train de faire un petit jeu avec pygame.
mais voila, j'ai du mal  gerer les collisions, alors que jy suis presque.
je suis sr que certain d'entre vous connaissent pygame et je compte sur votre aide pour rsoudre mon problme^^

le problme :
pygame pense que mon personnage est constamment en collision et donc, je ne peux pas le dplacer !

voici mon code je compte sur vos rponses :


```

```

----------


## josmiley

J'ai pas test le code,  mais  vue de nez,  le personnage recule en permanence,  non ?

----------


## Pyjapa

Oui, mon personnage  recule ne permanence

----------


## josmiley

C'est normal,  tu as cod que s'il n'y a pas de collision alors il faut reculer d'un pixel.

----------


## Pyjapa

Ok, donc je doit remplacer :


```
if hero.position.collidelist(mescollisions) == -1:
```

par


```
if hero.position.collidelist(mescollisions) == 1:
```

 ?

EDIT : je pense ne pas avoir juste car j'ai test, et avec a, ds que je dplace mon personnage j'ai une erreur

----------


## josmiley

Relis bien la doc de la mthode collidelist; a retourne un indice s'il y a collision et -1 s'il n'y en a pas.

----------


## Pyjapa

Merci mais je ne comprend pas bien, qu'est-ce que l'indice ?

----------


## josmiley

Dans:

r.collidelist ([a, b, c, d, e])

Pygame parcours chaque rectangle de la liste et teste s'il entre en collision avec r.
Ds qu'il rencontre un lment entrant en collision avec r, il arrte de parcourir et retourne l'indice de l'lment. Par exemple si r entre en collision avec a, il retourne 0, si c'est avec c, il retourne 2, etc ...
S'il n'y a pas de collision,  pygame retourne -1.

----------


## Pyjapa

Merci beaucoup.
les collisions fonctionnent,
mais j'ai un problme :
ds que j'essaye de me dplacer vers le haut ou vers la droite j'ai cette erreur :

line 89, in <module>
   fenetre.blit(hero.image, hero.position)
typeError: argument 1 must be pygame.Surface, not builtin_function_or_method



```

```

----------


## josmiley

L'erreur se trouve ligne 86 dans ton copi/coll.

----------

