Vamos a analizar este ejemplo:
Learn more about this projectEl funcionamiento es sencillo: se prueban las pesas y poniendo y quitando se identifica el peso desconocido. Para añadir o quitar una pesa se pulsa con el ratón sobre la pesa.
El primer detalle es el diseño de las imágenes de las pesas:

de esta forma cada una ocupa una posición relativa a las demás y para moverlas desde, o hacia la báscula solo hay que dar la orden: "ir a sprite 6" (báscula) o "ir a sprite 7" (estantería), y allí se colocarán en su sitio correcto.
Este es el script de movimiento de pesas:

Al pulsar sobr la pesa (en este caso la de 2Kg) si la pesa se encuentra en una posición x mayor que cero (está a la derecha de la pantalla, es decir en la báscula) la envía al sprite 7 (la estantería).
Si la posición de la pesa es negativa (menor que cero) es que está a la izquierda, es decir en la estantería y entonces la envía a la báscula.

En este código se genera el peso desconocido (variable peso caja) de forma aleatoria entre 1 y 63. Después se envía un mensaje (calcular peso) a los demás objetos, se espera que termine el script lanzado con el mensaje y se mueve el plato de la báscula hacia abajo en función del peso.

Este es el script que recibe el mensaje y fija la variable peso al valor del peso caja. Después va modificando el valor de la variable (peso) en función de las pesas colocadas sobre la balanza:
Si la balanza toca la pesa 1kg restamos 1, si toca la pesa 2 restamos 2 etc.
El resultado (el valor de la variable peso) indica la diferencia entre el eso de la caja (desconocido) y la suma de las pesas.

Este nuevo script asociado al plato de la báscula, el que contiene las pesas gestiona el movimiento (arriba abajo) del plato en función de la diferencia de peso de la caja y las pesas del plato.
Si la diferncia de peso (es decir la variable peso) es mayor que 10 desplaza el plato al valor máximo (20).
Si la diferencia es menor de 10 el desplazamiento es igual al valor del peso.