Comunidad de diseño web y desarrollo en internet online

Juego Snake

Citar            
MensajeEscrito el 18 Ene 2006 12:55 am
Hola Amigos, ya se que hay varios post relacionados con este tema...........

Pero lo que realmente les queria consultar es si existe algun tutorial paso a paso para crear este juego de la viborita....

Antes habia uno que no pude aprovechar que se llamaba SERPE y el autor se llamaba ALEJO, no recuerdo bien si ese tutorial estaba en www.flashargentina.com.ar, pero la cuestion es que ahora no lo encontre :(:(

Bueno espero que alguien me pueda ayudar.
Saludos
Ramon

Por ramon_123

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 01:03 am

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 18 Ene 2006 01:17 am
Ok muchas gracias, justo es lo que estaba haciendo, y lo voy a hacer.....

Si hay algo mas especifico en español les agradezco que me avisen.
Saludos

Por ramon_123

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 08:56 am
ummm yo sin duda utilizaría matrices (arrays bidimensionales) para este tipo de juegos, no tendrías que ver las colisiones, si no las posiciones en una matriz...

Sabiendo un poco manejarte con los registros de la misma sería bastante sencillo

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 03:37 pm
Hola Iceman, gracias por tu respuesta.

El tema es que yo no se que son las matrices :(:( ...... No soy un usuario experto jejeje.....

Bueno, gracias igualmente....si alguien me quiere guiar paso paso o me quiere ayudar se lo agradezco muchisimo.

Saludos
Ramon

Por ramon_123

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 03:48 pm

ramon_123 escribió:

El tema es que yo no se que son las matrices :(:( ...... No soy un usuario experto jejeje.....


Da igual que no seas un usuario experto, las matrices son matemáticas ... no tiene nada que ver con ActionScript, excepto que puedes trabajar con matrices mediante AS

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 03:52 pm
Bueno muchas gracias.
Y como empiezo con als matrices?

Saludos
Ramon

Por ramon_123

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 04:06 pm
las matrices se usan asi ahora imagina que tu area de juego es la matriz donde hay unos(por un decir) es el area donde no puedes andar, sino pues choco con algo. De esta manera podrias hacer mapas dinamicos :D o prefabricados, solo cambiandole los valores.

Código :

11111111111
10100000001
10100000001
10000010001
10000010001
11111111111

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 18 Ene 2006 04:23 pm
Y ahi es donde se me hizo complicado. He leido el otro tutorial y me parecio exlente y sencillo. y ahora, como implemento eso al juego? Como pongo la vivorita a funcionar? Yo tenia este codigo en el primer frame de mi pelicula:

set(vibx, vivora._x);
set(viby, vivora._y);
if (Key.isDown(Key.RIGHT)) {
vibx = vibx+5;
}
if (Key.isDown(Key.LEFT)) {
vibx = vibx-5;
}
if (Key.isDown(Key.UP)) {
viby = viby-5;
}
if (Key.isDown(Key.DOWN)) {
if (viby<=280) {
viby = viby+5;
} else {
viby = 5;
}
}
vivora._y = viby;
vivora._x = vibx;

Donde vivora es mi mc que esta instanciado como vivora. Pero no pasa nada..eso no es un avance......

El primer paso para crear el juego es hacer los limites: un cuadrado de 500px x 300px (por ejemplo)

2º_ Crear La Viborita y que se pueda manejar con el teclado. pero ademas la viborita tiene que seguir sola, es decir que con el teclado solo la manejaremos andando.

3º_Crear la comida, que al estar en contacto con la viborita:
_desaparezca la comida y salga en otro lugar aleatoriamente dentro de los limites de juego(cuadrado de 500px x 300px)
_Y que la viborita agrande su cuerpo

4º_ Sabiendo todo lo anterior, se pordrian crear campos de texto que vayan contando el puntaje total de todas las comidas que se comio la viborita y dependiendo del puntaje pasar a otro nivel.

5ºDespues podrian existir obstaculos en el juego, paredes abiertas y todo eso, pero despues se ve..


Bueno gracias Iceman y porfavor si alguien me quiere ayudar a cumplir estos pasos se loagradezco.

Saludos
Ramon

Por ramon_123

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 06:10 pm
Ramon recuerdo bien ese tutorial al que te referis. Antes estaba en este enlance.
http://www.solotutoriales.com/mx/visitar.asp?id=3238

Pero ahora en ese enlance todo figura en blanco.
En cuanto a tu propuesta me parece exelente. Tambien si todos colaboramos, desp todo este post se podria pasar a un tutorial y colgarlo en la seccion tutoriales.
Saludos.
Alejo

Por alejopiero

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2006 07:09 pm
Uff...

Yo lo repetiré y explicaré mis motivos de porqué usar una matriz es mucho mejor que no usarla :

El "snake", así como otros juegos antiguos como pueden ser tetris, pacman, y todos los tiles de los juegos de rol (NOTA: tile se llama a la casilla/baldosa/celdilla en la que se situa el personaje, un mapa está compuesto por estas celdillas, así evitaban crean mapas enormes incapaces de ser digeridos por las memorias de la época, así ahorraban recursos, las posiciones de los tiles iban determinadas por una matriz)

¿ Qué es una matriz ?
Pueden verlo como una tabla, como una lista de listas, un vector de vectores (quizás la visión más acertada),... en definitiva es un "plano cuadriculado", una tabla de n filas por m columnas. Cojan una hoja de papel milimetrado/cuadriculado y tendrán una matriz


¿ Por qué usar matrices ?
Sencillo, porque en nuestro juego de la serpiente, la misma se moverá una casilla "por turno", es decir siempre la misma distancia en 3 posibles direcciones. Al igual que en el tetris y en los juegos de rol, no se puee invadir "media casilla". Nos facilita las cosas, podríamos ver nuestro "tablero" de juego a través de 0's (casilla desocupada) y 1's (casilla de pared) Así por ejemplo quedaría algo como
----------------------------------
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
----------------------------------
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
----------------------------------
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
----------------------------------
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
----------------------------------
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
----------------------------------
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
----------------------------------
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
----------------------------------
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
----------------------------------

Eso sería una matriz 8x8, que si ustedes me lo permiten a partir de ahora la representaré así
11111111
10000001
10000001
10000001
10000001
10000001
10000001
11111111
Esto no sería más que el típico cuadrado con las paredes la serpiente se podrí mover libremente por el centro. Ahora podríamos representar la cabeza de la serpiente por 2 y el cuerpo por 3 ... la comida por 4

11111111
10000401
10233001
10003001
10003001
10003001
10000001
11111111

ahora nuestra serpiente esta formando un "7" y la comida(4) en la esquina superior derecha

Sólo nos faltarían dos métodos para mover la serpiente, uno para la cabeza y otro para la cola. En un array guardaríamos el "cuerpo" y poco más...
Por último un método "draw" (por poner un nombre de ejemplo) que nos dibujara la serpiente en pantalla de forma correcta

Ventajas de este método
Pues la verdad es que en cuestión de cálculos es muy similar a "hacer a pelo" pero hay unas cuantas ventajas :
-Puedes crear nuevos niveles muy facilmente, solo con una nueva matriz, de la otra forma necesitarías un gráfico nuevo ... (puedes medir el peso de un gráfico (1 solo nivel) y el de un archivo txt en el que entran 100 matrices(100 niveles)? no es comparable no?)
- No hay problemas a la hora de detectar "colisiones"

Básicamente así **Creo** (opinión personal) que fue diseñado en un principio, pues es un método bastante imperativo. Recordemos pues que sin POO, no había objetos, y por tanto para una colision por ejemplo era el programa principal quien tenía que ver si tal y tal grafico se tocaban. Además tu no podías mover gráficos por la pantalla, básicamente redibujabas otra vez todo el tema. No usas imágenes grandes, por lo que tu RAM te lo agradecerá
Actualmente quizás fuera bueno hacerlo con POO aunque... matrices rules!

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 19 Ene 2006 01:02 am
Iceman, te felicito por tal respuesta. Ahora entiendo lo que me decis, y me explicas, pero ¿Como empiezo? divido el escenario en cuadriculas? Vos me dijiste que no importaba si yo era inexperto :( .... Lo que no me doy cuenta es como llevar a la practica lo que vos me explicas...hay algun ejemplo sencillo de lo que vos me estas explicando?

Bueno, si ya no quieres ayudarme no lo hagas porque ya hiciste mucho por mi y te quite mucho tiempo. Muchisimas gracias.

Un abrazo.
Ramon

Por ramon_123

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ene 2006 01:19 am
mira no es que dividas el escenario
es representar graficamente la matriz

por ejemplo si tienes cuadro en la celda columna 2 fila 1 y quieres que tus cuadros sean del tamañño 20x20 entonces sera (columna-1)*20 y (fila-1)*20
lo que tadria los x y y
en este caso x = 20 y y = 0

Por FeNtO

BOFH

5091 de clabLevel

18 tutoriales

1 ejemplo

  Bastard Operators From Hell

FeNtO DataCenter

clabbrowser
Citar            
MensajeEscrito el 19 Ene 2006 02:51 am
Exacto, el uso de arrays facilitan como no sabes el desarrollo de aplicaciones de este tipo ::

;)

Haaaaay!!!! que tiempos aquellos en los que me quemaba las pestañas con C++ por tratar de entender los arrays [pero de mas de 3 dimensiones]

De cualquier forma te recomiendo que leas al respecto por este tema hace maravillas (y)

Mucha suerte y exito!


(y)

Por gabovanlugo

651 de clabLevel



Genero:Masculino  

Code Designer

firefox
Citar            
MensajeEscrito el 19 Ene 2006 03:38 am
Bueno amigos muchas gracias por todo.

Decidi poner manos a la obra.

Luego de pensar un rato hice esto:

mapadejuego = [
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 1, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 1, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1]
];

Bueno, los 1 son los limites del terreno del juego y los 0 son los sitios por donde la serpiente puede circular. Ahi coloque obstaculos tambien.
Y ahora? hago un mc llamado serpiente que consiste en un cuadradito 20 x 20.....como hago para moverlo? que hago para que detecte las colisiones? y la comida? y el cuerpo de la serpiente?

Bueno Saludos
Muchisimas gracias por todo!
Ramon

Por ramon_123

14 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Ene 2006 03:47 am
aqui si lo quieres hacer por array , te recomiedno un display que solo lea elarray principal y te lo despliegue osea siyi hay 1 cuadrito si no quito cuadrito
y lo demas solo con comparaciones de posiciones
y 1 con 1 fin es mas largo de ecplicar pero la base es esa

Por FeNtO

BOFH

5091 de clabLevel

18 tutoriales

1 ejemplo

  Bastard Operators From Hell

FeNtO DataCenter

clabbrowser

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.