[Aide] SPHIT/SPCOL

Poster un nouveau sujet   Répondre au sujet

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Aide] SPHIT/SPCOL

Message par Adriendu92 le Ven 4 Avr - 15:49

Salut j'aimerais un peu d'aide sur SPHIT/SPCOL c'est encore pour SPACE EMERALD.
1-Y a t-il une différence entre SPHIT et SPCOL  confused ?
Perso j'utilise SPHIT([Nombre])
2-Peut on détecter quand un sprite précis touches un autre sprite  confused  ?
Exemple :
Code:
SPHIT(1)
Cela detecte quand le sprite 1 touche n'importe quel autre sprite .
Je voudrais savoir quand le sprite 1 touche le sprite 3.
Voila c'est tout ce que je voudrais savoir .
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par fenixelf le Sam 5 Avr - 16:41

Je n'utilise pas SPCOL, néanmoins, je sais que si tu fais SPHIT (1,3)
SPHIT=1 lorsque le sprite 1 cogne le sprite 3 ou 4 ou 5... Jusqu’à 99.
Pour être parfaitement précis tu peux faire un truc comme ça :
Code:
IF SPHIT(1,4)==1 THEN GOSUB @NUL
IF SPHIT(1,3)==1 THEN (actionquetuchoisis)
@NUL
RETURN
en faisant ça, si le sprite 1 cogne le sprite 3, ton autre commande s'active,
si le sprite 1 cogne le sprite 2 , rien ne se passe évidement,
et si le sprite 1 cogne le sprite 3 ou un autre, il và vers @NUL et revient immédiatement sans activer autre chose.

_________________
Get Ready... Twisted Evil
avatar
fenixelf

Messages : 226
Date d'inscription : 08/03/2014
Age : 17
Localisation : Île de France - La ville du bois

Voir le profil de l'utilisateur http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Sam 5 Avr - 17:09

Tu as tout simplement la fonction SPHITSP (ID_Sprite1,ID_Sprite2)
Retourne 1 si les deux se touchent sinon retourne 0.

SPCOL crée une boîte de collision qui peut être plus grosse que le Sprite.
SPHIT c'est quand deux sprites entrent en collision.
Sans boîte de collision, ce sera quand deux sprites se chevauchent. (c'est comme ça que je le comprends)

_________________
Statut (MàJ:29 Avril 2017): Sur le projet "Virtual Bébête" (avancée ~26%).
Mes BDs et mes dessins, c'est sur Webcomics, http://www.webcomics.fr/member/J8B

And i'm here too: http://petitcomputer.wikia.com/wiki/User:J8B
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par fenixelf le Sam 5 Avr - 18:18

Si SPHITSP existe, alors à quoi sert le SPHIT tout court?
Ah, à selectionner le plus grand nombre D'IDs possible?

_________________
Get Ready... Twisted Evil
avatar
fenixelf

Messages : 226
Date d'inscription : 08/03/2014
Age : 17
Localisation : Île de France - La ville du bois

Voir le profil de l'utilisateur http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Sam 5 Avr - 20:32

Exactement. Imagine un grand vaisseau qui te tire 10 missiles à la fois. Tous ces missiles n'auront pas la même ID donc faire SPHITSP pour chaque serait fatiguant (dans une boucle, ce serait faire des calculs inutiles) alors qu'ils ont tous le même effet celui de provoquer des dégâts, donc il est préférable d'utiliser SPHIT.

_________________
Statut (MàJ:29 Avril 2017): Sur le projet "Virtual Bébête" (avancée ~26%).
Mes BDs et mes dessins, c'est sur Webcomics, http://www.webcomics.fr/member/J8B

And i'm here too: http://petitcomputer.wikia.com/wiki/User:J8B
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Adriendu92 le Dim 6 Avr - 8:20

Merci beaucoup je comprend vraiment mieux (ça serait bien de transférer les choses dites ici vers les tutos )
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par fenixelf le Dim 6 Avr - 11:18

On devrait faire un grand tuto sur tout ce qui concerne les sprites et les background .

_________________
Get Ready... Twisted Evil
avatar
fenixelf

Messages : 226
Date d'inscription : 08/03/2014
Age : 17
Localisation : Île de France - La ville du bois

Voir le profil de l'utilisateur http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Mer 2 Juil - 12:14

Bonjour, je suis nouveau sur ce site et je voudrai savoir pourquoi quand j'utilise SPHIT, la collision est détectée avant que les sprites se touchent et au moment où ils se touchent la collision n'est plus detectée. J'ai d'abord pensé qu'il avait déjà calculé les déplacements avant que l'image ne s'affiche mais après avoir testé avec les commandes VSYNC et WAIT après SPOFS ça ne marche toujours pas ! Aidez-moi s'il vous plait, j'ai cherché partout !
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par RayTro le Mer 2 Juil - 12:16

Je suis pas un expert en sprites, mais peut-être c'est parce que tes sprites ne sont pas totalement transparents, donc il y a des pixels de la même couleur que le fond qui sont sur le sprite.

je vais faire des images pour illustrer, j'arrive !
avatar
RayTro
Admin

Messages : 333
Date d'inscription : 09/08/2013
Age : 21

Voir le profil de l'utilisateur http://petitcomputer-france.forumactif.org

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par RayTro le Mer 2 Juil - 12:22


à gauche, un sprite de ballon en rouge, avec en noir des pixels de la même couleur que le fond, donc le sprite ne fait pas la taille du ballon, mais des contours de la même couleur que le fond.
d'où l'illustration en bas de l'image où la collision ne s'effectue pas au contact du ballon, mais bien des pixels autour qui ne sont pas transparent !
Voilà, c'est peut-être ça mais je suis pas un expert en sprites, alors je peux aussi dire n'importe quoi.
avatar
RayTro
Admin

Messages : 333
Date d'inscription : 09/08/2013
Age : 21

Voir le profil de l'utilisateur http://petitcomputer-france.forumactif.org

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Mer 2 Juil - 13:38

Merci pour votre réponse très rapide (la mienne non car je poste de ma 3ds qui a buguée) merci aussi pour le shéma mais ce n'est pas la solution car la collision est détectée environ 5cm avant la "vraie" sur l'écran et j'avais déjà vérifié cette hypothèse. Merci quand même !
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Mer 2 Juil - 20:51

Tu as peut-être mal utilisé la commande SPCOL. Les sprites par défaut font 16x16 pixels dont la boîte de collision doit faire la même taille aux coordonnées 0,0.


_________________
Statut (MàJ:29 Avril 2017): Sur le projet "Virtual Bébête" (avancée ~26%).
Mes BDs et mes dessins, c'est sur Webcomics, http://www.webcomics.fr/member/J8B

And i'm here too: http://petitcomputer.wikia.com/wiki/User:J8B
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Mer 2 Juil - 21:19

A vrai dire, je n'ai pas utilisé SPCOL mais seulement SPHIT, pourtant ça devrait marcher, non ?
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Jeu 3 Juil - 1:41

Oui ça devrait marcher, essayes avec la commande SPHITSP qui ne fonctionne qu'avec seulement 2 sprites contrairement à SPHIT qui fonctionne avec plus.
Si ça fonctionne toujours pas, c'est ton code qui doit avoir un problème, vérifie qu'il fait bien ce que tu désires. Sinon poste-le ici, et moi ou quelqu'un d'autre vérifiront d'où vient le problème.

Test Code Collision SPHITSP:
  'Initialisation de 2 sprites
SPSET 0,64,1,0,0,0:SPOFS 0,120,156:X=120:Y=156
SPSET 1,65,4,0,0,0:SPOFS 1,64,64
@M   'déplacement du sprite 0 et repositionnement du sprite 1 avec la touche B
IF BUTTON() AND 4 THEN X=X-1
IF BUTTON() AND 8 THEN X=X+1
IF BUTTON() AND 1 THEN Y=Y-1
IF BUTTON() AND 2 THEN Y=Y+1
IF BUTTON()>0 THEN VSYNC 1:SPOFS 0,X,Y:GOSUB @COL
IF BUTTON()==32 THEN SPOFS 1,128,128
GOTO @M
@COL   'vérifie si collision en affichant "CHAT! A"
IF SPHITSP(0,1)==TRUE THEN ?"CHAT! A":GOSUB @LOOP
RETURN
@LOOP   'Boucle où la touche A repositionne le sprite 1 en haut à gauche du sprite 0
IF BTRIG()==16 THEN CLS:SPOFS 1,X-16,Y-16:RETURN
GOTO @LOOP
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Jeu 3 Juil - 8:03

J'ai déjà essayé SPHITSP.
Je vais recopier mon programme tout de suite !
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Jeu 3 Juil - 8:26

J'ai écris :

ACLS:CLEAR
SPSET 0,40,0,0,0,1,16,16
SPHOME 0,-10,-100
SPSET 2,45,0,0,0,1,16,16
SPHOME 2,-70,-100

FOR I=1 TO 200
SPOFS 2,-K,0,0
IF SPHIT(1)==1 THEN PRINT "TEST"
WAIT 1
NEXT

A noter que la boucle FOR permet de faire déplacer le sprite progresssivement pour ne pas que le calcul soit fait avant le déplacement mais j'ai le même résultat en mettant SPOFS 2,-200,0,200 et en enlevant la boucle FOR
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Jeu 3 Juil - 20:53

Le soucis vient peut-être de SPHOME, j'ai un peu de mal à bien appréhender cette commande.
Après quelques tests, je pense que SPHOME change la position 0,0 qui se situe en haut à droite du sprite.

Par défaut le départ du sprite (0,0) est le coin supérieur gauche du carré jaune.
SPHOME 0,-5,-5 met le départ du sprite au coin supérieur gauche du carré bleu.
SPHOME 0,8,-10 met le départ du sprite au coin de la bouche du sprite.



C'est peut-être donc à cause de SPHOME que la collision est faussée. (mais je peux me tromper)
(je peux pas trop tester ton code car il manque certains éléments)
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Jeu 3 Juil - 22:48

Ça doit être ça. Je vais essayer sans.(au fait, dans mon code j'ai mis "-K" mais je voulais mettre "-I" à SPOFS).
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Jeu 3 Juil - 23:17

C'est ça, c'est SPHOME qui fausse tout. Mais du coup, SPHOME n'a pas vraiment d'interêt... Merci énormément car je cherchais depuis un moment sans trouver la solution.
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Ven 4 Juil - 1:20

Ravi d'avoir pu t'aider. En même temps ça m'a permis de tester un peu SPHOME, faudra que je change la définition dans mon fichier d'aide qui est un peu erroné.
Comme on dit, une pierre deux coups.
SPHOME sert juste à déplacer le point d'affichage du sprite. C'est très différent de l'emplacement sur l'écran.

Dans ton exemple de code les deux sprites sont en fait affichés tous les deux à l'emplacement (0,0) mais leur point d'affichage étant différent, tu les vois l'un en face de l'autre. Comme tu as laissé les boîtes de collision par défaut, elles commencent toutes les deux aux points d'affichage de leurs sprites respectifs c'est à dire qu'elles occupent la même place à (0,0) donc c'est normal qu'il y a collision entre les sprites.
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Ven 4 Juil - 6:37

Du coup pour déplacer un sprite il faut faire SPOFS ou SPHOME + SPCOL pour definir la boîte de collision, c'est ça ?
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par J8B le Ven 4 Juil - 17:45

Pour déplacer un sprite c'est SPOFS et c'est tout.
SPHOME ne déplace pas du tout le sprite, il change seulement son point d'affichage.
Prend par exemple une affiche (représentant ton sprite) et une punaise (représentant le point d'affichage), SPHOME ne fera se déplacer que la punaise.
Bien entendu si tu utilises SPHOME, il faut utiliser SPCOL pour la boîte de collision.


_________________
Statut (MàJ:29 Avril 2017): Sur le projet "Virtual Bébête" (avancée ~26%).
Mes BDs et mes dessins, c'est sur Webcomics, http://www.webcomics.fr/member/J8B

And i'm here too: http://petitcomputer.wikia.com/wiki/User:J8B
avatar
J8B

Messages : 402
Date d'inscription : 27/10/2013
Localisation : Tarn

Voir le profil de l'utilisateur http://webcomics.fr/member/J8B

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par fenixelf le Ven 4 Juil - 18:40

Moi je n'ai JAMAIS utilisé SPHOME et je n'en ai jamais eu besoin... Finalement, on peut la remplacer facile par SPOFS.

_________________
Get Ready... Twisted Evil
avatar
fenixelf

Messages : 226
Date d'inscription : 08/03/2014
Age : 17
Localisation : Île de France - La ville du bois

Voir le profil de l'utilisateur http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Raven94 le Ven 4 Juil - 20:01

OK, merci !
avatar
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 16

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Adriendu92 le Sam 5 Juil - 11:14

Bon ça n'as rien a voit mais j'annonce que j'arrête Space Emerald le temps d'apprendre a faire les IA et que demain ou après demain je vais poster un programme bien pratique Wink
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Aide] SPHIT/SPCOL

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum