Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Twister

31
Usa una variable y un switch en el evento de pulsar espacio:

switch(Variable)
{
case 1:
   sprite_index=sprHablando
case 2:
   sprite_index=sprRiendo
case 3:
   sprite_index=sprSorprendido
}
Variable=Variable+1
32
Si dijeses en que eje gira el ca??n y si pudiese ser un esquema de como funciona. Tendr?s que usar funciones trigonom?tricas para conseguir lo que deseas.

EDIT: De todas formas, supongo que con peque?as modificaciones te funcionar? lo est?ndar:

x+cos(degtorad(AnguloDelCa?on))*AnchoDelCa?on
y-sin(degtorad(AnguloDelCa?on))*AnchoDelCa?on
33
Para cambiar de sprite a un objeto usa la variable "sprite_index"
34
Preguntas y respuestas / Re: sprites rotados
Abril 21, 2010, 08:19:13 AM
Mmmm...?Cu?l es el problema? xD
35
Expl?canos que c?digo has usado, sino ser? imposible ayudarte.
36
?En que formato est?s guardando la imagen? Al guardarla en .jpeg por ejemplo, a simple vista no se diferencian los tonos del color, pero si el fondo es un color plano al pasarlo a jpeg se aplica una compresi?n y puede cambiar los valores entre los p?xeles y esto provocar? que muchos de estos no los borre el GM y entonces veas las dichas part?culas verdes.
37
Esperar? a ver si lo prueba alguien m?s y modificar? el script para eso que dices.

Gracias :)
38
Me resulta muy extra?o que no os funcione, de hecho, lo acabo de probar en un nuevo proyecto en GM8 y me funciona sin problemas. Os adjunto mi prueba para que comprob?is si lo estabais usando correctamente :P
39
Buenas!

Soccer2008, podr?as adaptarlo para usarlo en un juego 3D sin problemas en principio. Ya me contar?s :)

Y Deathmetal, no s? si funcionar? en otras versiones el script, est? hecho en GM8 Pro :(

Gracias por los comentarios!
40
usa la DLL SAudio, es la que uso yo para reproducir m?sica y funciona muy bien.
41
* Nombre del creador: Twister
* Breve descripci?n de su funci?n: Script para realizar unas colisiones perfectas, independientemente de la velocidad, en un juego de vista cenital. Podr?a aplicarse a otro g?nero con ligeras modificaciones.
* Versi?n GM utilizada:  Game Maker 8 GM8 PRO, no se si funcionar? en otras versiones.
* C?digo del Script:
//SCRIPT COLISIONES PERFECTAS VISTA CENITAL
//-------------------------------------------
//ARGUMENTOS
//-------------------------------------------
//Argument0 - Tecla Izquierda
//Argument1 - Tecla Derecha
//Argument2 - Tecla Arriba
//Argument3 - Tecla Abajo
//Argument4 - Velocidad
//Argument5 - Precision en Steps (Recomendable 1 ? 0.5)
//-------------------------------------------
//Creado por ~Twister (Gameart) :: twister_cgm@hotmail.es

                                      //Script Principal//
if keyboard_check(argument0) {for(i=0; i<argument4; i+=argument5){if !place_free(x-argument5,y){break} x-=argument5}}
if keyboard_check(argument1) {for(i=0; i<argument4; i+=argument5){if !place_free(x+argument5,y){break} x+=argument5}}
if keyboard_check(argument2) {for(i=0; i<argument4; i+=argument5){if !place_free(x,y-argument5){break} y-=argument5}}
if keyboard_check(argument3) {for(i=0; i<argument4; i+=argument5){if !place_free(x,y+argument5){break} y+=argument5}}


Se agradecen cr?ditos pero no son necesarios.
42
Desarrollo de Scripts / Encadenador de Acciones
Marzo 02, 2010, 09:59:44 AM
* Nombre del creador: Twister
* Breve descripci?n de su funci?n: Este script, encadena una serie de acciones pre-establecidas dentro del mismo.
* Versi?n GM utilizada:  Game Maker 8 GM8 PRO, no se si funcionar? en otras versiones.
* C?digo del Script:
//SCRIPT ACCIONES ENCADENADAS
//-------------------------------------------
//ARGUMENTOS
//-------------------------------------------
//Argument0 = N? de Alarm
//Argument1 = N? de Accion Activa (Se recomienda usar una variable para este argumento)
//Argument2 = Desencadenar Accion (Se activar? la acci?n cuando sea 1)
//Argument3 = Tiempo en Steps entre acciones.
//-------------------------------------------
//AVISO
//-------------------------------------------
//La alarma elegida en el argument0
//DEBE estar activada, de lo contrario
//no funcionar? el script.
//-------------------------------------------
//Creado por ~Twister (Gameart) :: twister_cgm@hotmail.es

var Accion;
Accion=argument1;
if argument2=1 && alarm[argument0]<0
{
//C?digo Acci?n Inicial
alarm[argument0]=argument3;
break;
}

//Si la cadena est? empezada
if argument2=1 && alarm[argument0]>0
{
switch(Accion)
{
             case 1:
             {
             //C?digo Acci?n 1
             break;
             }
             case 2:
             {
             //C?digo Acci?n 2
             break;
             }
}
alarm[argument0]=argument3;
}

//EXPLICACI?N
//Para a?adir mas acciones encadenadas, a?adir m?s casos a la cadena principal de acciones.


Se agradecen cr?ditos pero no son necesarios.
43
Desarrollo de Scripts / Generador de Mapas (Plataforma)
Febrero 26, 2010, 05:23:16 PM
* Nombre del creador: Twister
* Breve descripción de su función: Para su función, ejecuta el script con los correspondientes argumentos (explicados dentro del script) en un room vacío. El script se deberá ejecutar en el evento Create de un objeto.
* Versión GM utilizada:  :GM8: GM8 PRO, no se si funcionará en otras versiones.
* Código del Script:
[gml]////////////////////////////VARIABLES PARA EL GENERADOR//////////////////////////////////
//-------------------------------------------------------------------------------------//
// PASO 1: Reconocer Ancho y Alto de pantalla, llenar los bordes con Solidos.          //
// PASO 2: Crear algunos obstáculos.                                                   //
// PASO 3: Crear algunas plataformas.                                                  //
// PASO 4: Crear Agujeros                                                              //
// PASO 5: Crear Jugadores                                                             //
// Creado por ~Twister (Gameart) :: twister_cgm@hotmail.es                             //
//-------------------------------------------------------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////

//ARGUMENTOS
//ARGUMENT0 == Plataforma Solida
//ARGUMENT1 == Plataforma No-Solida
//ARGUMENT2 == Parent de Solidos
//ARGUMENT3 == ID Objeto que ejecuta este script
//ARGUMENT4 == J1
//ARGUMENT5 == J2

//EJEMPLO :: GenerarLVL(SOLIDO,PLATAFORMA,solidos,Algoritmo,J1,J2)

//:: INICIO DE VARIABLES :://
var RoomX, RoomY, NumeroDeObstaculos, HayObstaculo, Obstaculo, Altura, Lineas, NumeroDePlataformas, Plataforma;
var Agujeros, Agujero, Distancia;

RoomX=room_width
RoomY=room_height
x=0;
y=0;

//:: PASO 1 ::// Bordes
for (i=0; i<RoomX; i+=32)     {instance_create(i,RoomY-32,argument0)}     //BORDE INFERIOR
for (i=0; i<RoomX; i+=32)     {instance_create(i,0,argument0)}            //BORDE SUPERIOR
for (i=32; i<RoomY-32; i+=32) {instance_create(0,i,argument0)}            //BORDE IZQUIERDO
for (i=32; i<RoomY-32; i+=32) {instance_create(RoomX-32,i,argument0)}     //BORDE DERECHO

//:: PASO 2 ::// Obstaculos
NumeroDeObstaculos=abs(random(RoomX/32)-4)
HayObstaculo=0;
Altura=0;

for (i=32; i<RoomX-32; i+=32)
{
Obstaculo=choose(0,32,64)
HayObstaculo=choose(0,1,2,3,4)
if HayObstaculo=1 && NumeroDeObstaculos>0
{
Altura=choose(0,1,2,3,4)
for (ii=0; ii<Altura; ii+=1)
{
instance_create(i,RoomY-64-(32*ii),argument0)
}
NumeroDeObstaculos-=1
}
}

//:: PASO 3 ::// Plataformas
Altura=0;
Lineas=round(RoomY/160)-1
NumeroDePlataformas=abs(random(RoomX/32)-4)

for (ii=1; ii<Lineas; ii+=1)
{
for (i=32; i<RoomX-32; i+=32)
{
Altura=choose(32,64)
Plataforma=choose(0,1,2,3,4)
if Plataforma=1 && NumeroDePlataformas>0
{
if !place_meeting(i,   RoomY-32-(160*ii)-Altura,argument2){instance_create(i,   RoomY-32-(160*ii)-Altura,argument1)}
if !place_meeting(i+32,RoomY-32-(160*ii)-Altura,argument2){instance_create(i+32,RoomY-32-(160*ii)-Altura,argument1)}

NumeroDePlataformas-=1
}
}
}

//:: PASO 4 ::// Agujeros
Agujeros=round(RoomX/160)
Agujero=0
AgujeroX=0
for (j=0; j<RoomX; j+=32)
{
AgujeroX=j
Agujero=choose(0,0,0,0,0,0,0,0,0,0,1)
if Agujero=1 && place_free(j,RoomY-32) && place_free(j,RoomY-64) && Agujeros>0
{
Agujeros-=1
with(argument0)
{
if x=argument3.AgujeroX && y=room_height-32
{
instance_destroy()
}
}
}
}

//:: PASO 5 ::// Jugadores
Distancia=-1
ID=instance_create(RoomX,RoomY,argument4)
with(ID)
{
if ((!place_free(x,y) || place_free(x,y+32)) || distance_to_object(argument5)<(room_width/2)) && !place_meeting(x,y+32,argument3)
{
do
{
x=random(room_width) y=random(room_height)
move_snap(32,32)
}
until
place_free(x,y) && !place_free(x,y+32)
}
}
ID.visible=1
ID2=instance_create(RoomX,RoomY,argument5)
with(ID2)
{
if ((!place_free(x,y) || place_free(x,y+2)) || distance_to_object(argument4)<(room_width/2)) && !place_meeting(x,y+32,argument3)
{
do
{
x=random(room_width) y=random(room_height)
move_snap(32,32)
Distancia+=1
}
until
place_free(x,y) && !place_free(x,y+2) && distance_to_object(argument4)>(room_width/2)-Distancia
}
}
ID2.visible=1

//ELIMINAR CONFLICTOS
with(argument5){if !place_free(x,y){instance_destroy()}}
//ESCENARIO CREADO
instance_destroy()
object_delete(argument3)

[/gml]

PD: Es bastante mejorable el script, y se podría optimizar mucho más pero no me he parado a hacerlo por falta de tiempo :-[
PD2: Como de costumbre, se agradecen créditos pero no son necesarios. :)
44
?sprite_index te refieres?
45
Preguntas y respuestas / Re: salto con diferente altura
Febrero 21, 2010, 05:02:25 PM
?No es m?s sencillo esto? :

if keyboard_check_pressed(vk_space) {vspeed=-Salto}
if keyboard_check_released(vk_space) && vspeed<0 {vspeed=0}