Nov 30

Han publicado otro de mis tutoriales en Actionscript.org. Pronto haré la traducción al castellano de todos.

Les dejo un link con la lista de mis tutoriales, por ahora son pocos, pero iré sumando:

http://www.actionscript.org/resources/authors/446/Alejandro-Quarto

Nov 28

Para aquellos que frecuenten actionscript org, sitio altamente recomendado, les dejo un link a un tutorial de mi autoría:

http://www.actionscript.org/resources/articles/701/1/Balls-chain-with-constraints-colision-mouse-follow-and-the-math-needed/Page1.html

Los administradores de dicho site, lo publicaron luego de evaluarlo, lo cual me pone muy contento; y por otro lado, puedo solo agradecerles por dejarme contribuir en dicha comunidad. Dicho sea de paso, recomiendo los foros (soy miembro activo) para todos aquellos que tengan dudas sobre desarrollo en Flash.

Por último, debido al contenido de actionscript.org, los textos están en inglés. Pronto subiré a este blog la traducción. De todos modos todas las funciones utilizadas en el tutorial están disponibles aquí, en algunos de los ejemplos anteriores.

Nov 22

Desde que compré mi último teléfono celular, hará unos cuatro meses, había tenido la deuda de testear un poco el Flash Player incorporado. En su versión Lite 2.0, es sumamente viable realizar una portación de desarrollos en AS2.0 (ya está anunciado FlashLite 3.0). Luego de probar algún que otro protector de pantalla realizado en Flash y algunas rutinas, decidí a armar este juego. Ya se! no es para nada original, pero por lo menos en el mio no venía incorporado :D.
Decidí laburarlo 100% con código, sin absolutamente nada de gráficos en escenario o movies. El juego en la etapa que está me llevó dos horas, por ende no existen demasiadas trabas cuando se trabaja para celular. Funciona bien, al igual que cuando se testea la película en el Flash.
Por ahora en el caso del 5200 la unica limitación es a nivel sonido, ya que solo reproduce Midi desde el Flash Player y, aparentemente no se va a corregir. Es probable que la incorporación del player en esta gama de teléfonos tenga su razón solo en la posibilidad de salvapantallas o imagenes animadas de fondo, descartando el uso de audio. De todos modos es absolutamente probable realizar juegos o aplicaciones lo bastante complejas, con Flash.
El tamaño de mi pantalla es de 128 x 160 px. Lo suficiente para una grilla. Estoy seguro que este juego debería funcionar en cualquier teléfono que tenga Fash Lite 2.0, ya que se puede cambiar el tamaño del escenario como así también el tamaño de la grilla.

Les muestro el juego en tu etapa “funciona” :D

This movie requires Flash Player 8

El código son algunas funciones muy sencillas y no muy óptimas, es un típico “juego en un par de horas”. Con otro par de horas podría quedar verdaderamente bien, implementando los “soft keys”, menú, scores, y pantallas.

Aca va el Source CS3: snakenokia5200.zip

Nov 20

En este ejemplo, la idea es generar el escenario y la colisión de una bola contra un terreno. Utilizando conocimientos muy básicos de física y BASTANTE de los ejemplos anteriores, cree este PROTOTIPO muy chico que se acerca bastante a la idea. Pueden probarlo, utilicen las teclas IZQ y DER (Flechas) del teclado para mover esa bola azul.

This movie requires Flash Player 8

El código es basicamente un rejunte de cosas ya armadas, o para este site o para proyectos propios. Está todo contenido dentro de una movie general, y comentado en cada linea.
Al ser un prototipo muy simple de editar, contiene errores y algunas lineas que no son lo eficiente que deberían ser, por ejemplo la generación de puntos. Siendo dínamico, podríamos generar al vuelo, las que se necesiten y liberar memoria.
Cualquier consulta o aporte, dejar el comentario.
Codigo Fuente en CS3
Ejemplo

Nov 12

En este ejemplo la idea es generar un algoritmo que represente el conjunto de Mandelbrot. La representación gráfica de ésto, es ni más ni menos que uno de los gráficos fractales mas conocidos y utilizados. Alterando los coeficientes de la fórmula, es bastante sencillo ver en detalle el gráfico, digamos, hacia el infinito.
La interpolación de color es bastante sencilla. Les dejo el ejemplo, y quiero destacar que el algoritmo tiene una gran cantidad de transcripciones a otros lenguajes; este en particular es una adaptación de uno que vi en C++.

Source CODE: fract.zip

This movie requires Flash Player 8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import flash.display.BitmapData;
var myBitmapData:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0x0ffffff);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc._alpha=0
mc.attachBitmap(myBitmapData,this.getNextHighestDepth());
///Limites horizontales y verticales
Maxx = 1;
Minx = -2
Maxy = 1.5;
Miny = -1.5;
initer = 100;//Numero de iteraciones, a mayor valor, mas detalle
i = 0;//Var para el loop
j = 0;//Idem
scrsizex = Stage.width;//Tamaño de pantalla
scrsizey = Stage.height;//IDEM
pixcorx = (Maxx-Minx)/scrsizex;//ESCALA
pixcory = (Maxy-Miny)/scrsizey;//IDEM
function mandel(xpt, ypt) {
	x = 0;
	y = 0;
	xnew = 0;
	ynew = 0;
	for (k=0; k<=initer; k++) {
		xnew = x*x-y*y+xpt*pixcorx+Minx
		ynew = (2*x*y+Maxy-ypt*pixcory);
		x = xnew;
		y = ynew;
		if ((x*x+y*y)>4) {
			break;
		}
	}
	color = k;
	if (k>=initer) {
		myBitmapData.setPixel(xpt,ypt,parseInt("0xFFFFFF"));
	} else {
		miColor = Number(255-(Math.abs(Math.cos((color*color)/180*Math.PI)*Math.sin((color*color)/180*Math.PI)*255))).toString(16);
		if (String(miColor).length<2) {
			miColor = "0"+miColor;
		}
		miRgb = "0xff"+miColor+miColor
		myBitmapData.setPixel(xpt,ypt,parseInt(miRgb));
	}
}
function imprime() {
	for (r=0; r<=50; r++) {
		if (i<Stage.width) {
			if (j<Stage.height) {
				mandel(i,j);
				j += 1;
			} else {
				j = 0;
				i += 1;
			}
		} else {
			clearInterval(idInt);
		}
	}
}
stop();
Todos los derechos reservados www.alejandroquarto.com queda prohibido la utilización de los contenidos en esta web para uso comercial.