Script de Volets Roulants.

Répondre
Partager Rechercher
Ok
J'ai réussi à me débrouiller, le script fonctionne très bien, sauf que évidemment, il se rétréci par le milieu, ce qui fait une grosse barre pas très esthétique en plein milieu de la fenêtre. Que dois-je ajouter pour qu'il se rétrécisse par le haut.
voilà mon script :
Code:
default
{
	touch_start(integer total_number)
	{
		llSetPrimitiveParams([PRIM_SIZE, <7.743, 0.250, 3.787>]);
		state tickled;
	}
}
state tickled
{
	touch_start(integer total_number)
	{
		llSetPrimitiveParams([PRIM_SIZE, <7.743, 0.250, 0.5>]);
 
		state default;
	}
}
i se rétrécira toujours par les 2 bords, puisque tu réduis sa taille, et que ça se fait symétriquement par rapport au centre de l'objet.

Tu dois le déplacer en même temps que tu le réduis, simplement.
C'est ok, ça marche très bien, sauf que j'ai choisi d'utiliser llSetpos et donc, vu qu'il y a plus d'une dizaine de fenêtre, je n'ai trouvé que le moyen d'adapter chaque script à chaque fenêtre, ce qui me fait plus d'une dizaine de scripts différents.

Y-a t'il un moyen de faire varier la position par rapport à la position précédente; et non avec une position définie ?
oui, tu peux.

genre:
Code:
vector dep = (0, 0, 0.5); // monte de 0.5m vers le haut

default {
	touch_start(integer total_number) {
		llSetPos(llGetPos() + dep);
		state tickled; } }

state tickled {
	touch_start(integer total_number) {
		llSetPos(llGetPos() - dep);
		state default; } }
Bon, après avoir modifié, voilà le résultat :
Code:
default
{
	touch_start(integer total_number)
	{
		llSetPrimitiveParams([PRIM_SIZE, <8.265, 0.250, 3.942>]); //sets the size of the prim to 1x1x1
		llSetPos(llGetPos() + 0, 0, 0.5);
		state tickled;
	}
}
state tickled
{
	touch_start(integer total_number)
	{
		llSetPrimitiveParams([PRIM_SIZE, <8.265, 0.250, 0.5>]);
		llSetPos(llGetPos() - 0, 0, 0.5);
		
		state default;
	}
}
Et là il me met "Type Mismatch" entre le + et le 0
plus ou moins.
on peut bricoler des déplaceurs, des TP, en utilisant llSetPos() et le fait de s'asseoir sur un prim.

un vrai ascenseur, c'est bien plus compliqué, puisque les prims doivent être physiques si on veut éviter que les passagers passent à travers la cabine
Je viens de faire quelques essais, et mon avatar pas à travers si je ne l'assois pas sur l'ascenseur...
J'ai donc voulu réésayer en utilisant 2 prims : Une plateforme, et une boule qui servira de bouton, j'ai mis le script dans la boule et coché "physique" pour la plateforme, j'ai ensuite lié les deux et mettant la boule en "parent"; donc ça monte mais ça me laisse au sol.
J'ai ensuite interverti le link, mais cette fois la plateforme ne bouge pas.

Je suppose qu'il faut voir ça dans les scripts ?
c'est surtout que llSetPos() ne déplace pas les objets physiques
Donc c'est pas que le script qui est à revoir, mais le link aussi.

Si ton prim 0 est physique, tout le link est physique, de même, si le prim 0 n'est pas physique, tout le link l'est.

donc, pour un ascenseur, non seulement le link doit être physique, mais pour le déplacer, c'est beaucoup plus compliqué, parce que non seulement les fonctions ne sont pas les mêmes, mais le mouvement est dynamique, et très physique.

Tu gères donc les forces et impulsions qui sont appliquées à ton objet pour que celui-ci se déplace, et ne se déplace pas, par ce que un objet immobile ne l'est qu'au sol, ou que si les forces appliquées dessus l'équilibrent...
Et pour rendre les chose amusantes, tout objet physique a un poids déterminé par son volume global.

Bref, bienvenu dans le monde fantastique de la simulation physique.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés