Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pixelines en Diciembre 12, 2009, 04:01:59 AM

Título: ?Como puedo hacerlo con el dado?
Publicado por: pixelines en Diciembre 12, 2009, 04:01:59 AM
He puesto 6 sprites: cada uno es una cara de un dado.
Quiero que al pulsar Enter aparezca un numero (aleatorio) del dado. Es decir que no siempre lo haga igual si no que aleatoriamente cada vez que pulse ENTER me salga una cara del dado diferente.
He metido los 6 sprites (cada uno es una cara del dado) en una room. Y los he puesto en modo invisible. Para que cuando pulse Enter me aparezca uno distinto pero no se continuar. Eso de la aleatoriedad o random no se como va.
Título: Re: ?Como puedo hacerlo con el dado?
Publicado por: Wadk en Diciembre 12, 2009, 05:11:26 AM
Deber?as mirar el manual...
Bueh, para crear n?meros "aleatorios", existe la funci?n random.
random(x); devolver? un n?mero entre 0 y x siempre menor que x.
Por ejemplo:
random(10); devolver? un n?mero entre 0 y 9,99999999999999999999 (tengo entendido que GM trabaja con un m?ximo de 20 decimales, pero no se si es cierto...).
Generalmente querr?s redondear el n?mero obtenido. Para redondear existen tres funciones:
ceil(x); redondea hacia arriba.
round(x); redondea al n?mero m?s cercano.
floor(x); redondea hacia abajo.
ceil() y round(), al ser usados con random() pueden dar problemas, por lo que siempre es mejor usar floor().
Para generar un n?mero aleatorio entre 1 y 6, ser?a as?:
numero=floor(random(6))+1;
La funci?n random devuelve un n?mero entre 0 y 5,99999999999999999999. El n?mero devuelto es redondeado hacia abajo por la funci?n floor, quedando en un n?mero entre 0 y 5. Por ?ltimo se suma 1, terminando en un n?mero entre 1 y 6.
Título: Re: ?Como puedo hacerlo con el dado?
Publicado por: pixelines en Diciembre 12, 2009, 05:37:44 AM
si no me pones un ejemplo para copiarlo y meterselo al juego no me entero. No es cuesti?n de mirar o no el manual, es una cuesti?n de que en esta terminologia me pierdo, por cierto muchas gracias voy a aplaudirte en tu perfil.
Título: Re: ?Como puedo hacerlo con el dado?
Publicado por: Wadk en Diciembre 12, 2009, 07:09:10 AM
Qu? falta de voluntad -____-.
Ya te d? el c?digo a usar,
numero=floor(random(6))+1;
ahora seg?n el resultado de ese c?digo hac? que se muestre uno u otro objeto... no deber?a ser tan dif?cil...
Título: Re: ?Como puedo hacerlo con el dado?
Publicado por: pixelines en Diciembre 12, 2009, 07:54:13 AM
Information about object: 1

Sprite: sprite0
Solid: false
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
______________________________________________________

Information about object: 2

Sprite: sprite1
Solid: false
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
______________________________________________________

Information about object: 3

Sprite: sprite2
Solid: false
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
______________________________________________________

Information about object: 4

Sprite: sprite3
Solid: false
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
______________________________________________________

Information about object: 5

Sprite: sprite4
Solid: false
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
______________________________________________________

Information about object: 6

Sprite: sprite5
Solid: false
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
______________________________________________________

Information about object:

Sprite: <no sprite>
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Key Press Event for <Enter> Key:
execute code:

numero=floor(random(6))+1;

Tal y como me has dicho he puesto ese codigo en un object sin nombre porque si le llamo Numero ME DA ERROR. Y en la pantalla no se ve nada ni hace esto nada. Te paso de todas formas el resultado de todo lo que he hecho pero no funciona.
Título: Re: ?Como puedo hacerlo con el dado?
Publicado por: Ciberman en Diciembre 12, 2009, 03:18:39 PM
destruye los seis objetos esos que no sirven para nada
quedate solo con un obj_dado
enter obj_dado:
image_single=floor(random(6))+1;

adjunto ejemplo avanzado en donde muestra con animaciones de cubilete.