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 - bygdle

466
Bueno, al final logré solucionarlo. Gracias, alesxanderk  :'( :D
El problema a la final fue la versión de .NET framework, la cambié a 3.0 y problema resuelto. Aunque antes de hacer eso pasé la extensión a C# xD, voy a probarlo con VB.NET a ver si igual sirve xD
467
Cita de: Alesxanderk en Mayo 11, 2016, 05:59:33 AM
Consegui que funcionara el Sample que esta dentro del .zip

Despues de trastarlo un poco, se me ocurrio meter todas las dlls que vienen en el .zip y funcionó  :D a medias  :-\ dentro del object0 en los eventos de "clic mouse" llama un script al cual le da 5 argumentos cuando se supone deberian de ser 4. Por lo que tuve que comentar esos codigos en lo que veo como arreglarlo.

El Sample.gmk lo abri con GM:S, algo más el tipo de dato que debes de usar es Double, este es distinto a float, por lo que al poner float, te seguiria dando error
Sí sí, eso fue lo primero que pensé, e importé todas las DLL, a excepción del sample.dll, el cual reemplacé por mi DLL. Además, tuve que modificar uno de los scripts por el mismo (o uno similar, no sé xd) error que te dio. De igual forma no me funcionó.
468
Primero, el código que pusiste tiene un error. El punto y coma al final de la condición normalmente causaría un error. Lol, toy ciego xDDD olvida eso xD
Segundo, creo que el error tiene que ver principalmente con el movimiento lateral, en vez de la colisión vertical.
Intenta evitar que el personaje se mueva cuando hay un bloque en frente suyo, para que no se atasque.
Por ejemplo, al presionar la tecla de moverse hacia la derecha:
[gml]
if place_free(x + velocidad, y)
    x += velocidad;
[/gml]
Y al moverse a la izquierda:
[gml]
if place_free(x - velocidad, y)
    x -= velocidad;
[/gml]
469
Muchas gracias por tu ayuda :D
Pero, el error no cambia. Desde que pruebo el editable de GM8 me aparece exactamente el mismo mensaje: "Error defining an external function".
Lo probé en GMS, pero en vez del error anterior, me salen estos:
Citar---------------------------
GM .Net Layer: Unhandled Exception
---------------------------
There has been an unhandled exception in the "GM .Net Layer". The following trace is available:

System.BadImageFormatException: No se puede cargar el archivo o ensamblado 'file:///C:\Users\usuario\AppData\Local\Temp\gm_ttt_93501\gm_ttt_51873\file_write.dll' ni una de sus dependencias. Este ensamblado se creó con un tiempo de ejecución más reciente que el tiempo de ejecución cargado actualmente y no se puede cargar.

Nombre de archivo: 'file:///C:\Users\usuario\AppData\Local\Temp\gm_ttt_93501\gm_ttt_51873\file_write.dll'

   en System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)

   en System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)

   en System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)

   en System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)

   en System.Reflection.Assembly.LoadFrom(String assemblyFile)

   en LoadDll(SByte* filename)



AVS: El registro del enlace de ensamblado está desactivado.

Para habilitar el registro de errores del enlace de ensamblado, establezca el valor de Registro [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) como 1.

Nota: existe una disminución del rendimiento asociada registro de errores del enlace de ensamblado.

Para desactivar esta característica, elimine el valor de Registro [HKLM\Software\Microsoft\Fusion!EnableLog].



When seeking support, please contact the creater of the program and copy the complete error message. Press Ctrl+C to copy the message. Press Ok to continue or press Cancel to exit the application.
---------------------------
Aceptar   Cancelar   
---------------------------

Y éste:
Citar---------------------------
GM .Net Layer: Unhandled Exception
---------------------------
There has been an unhandled exception in the "GM .Net Layer". The following trace is available:

System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

   en CreateInstance(Double dll_handle, SByte* fullname)

When seeking support, please contact the creater of the program and copy the complete error message. Press Ctrl+C to copy the message. Press Ok to continue or press Cancel to exit the application.
---------------------------
Aceptar   Cancelar   
---------------------------

Y éste:
Citar---------------------------
GM .Net Layer: Unhandled Exception
---------------------------
There has been an unhandled exception in the "GM .Net Layer". The following trace is available:

System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

   en System.Object.GetType()

   en FuncReal(Double class_handle, SByte* funcname)

When seeking support, please contact the creater of the program and copy the complete error message. Press Ctrl+C to copy the message. Press Ok to continue or press Cancel to exit the application.
---------------------------
Aceptar   Cancelar   
---------------------------

Sólo por si acaso, usé un Return (en el VB) que devolviera un float (un número con decimal, según tengo entendido), para ver si sucedía algo. Pero no, el mismo error.




Por último, me decidi a echar para atrás la DLL que me pasaste, e intentar crear una en C++, siguiendo esta web:
https://msdn.microsoft.com/es-es/library/ms235636.aspx
Pero el error no ha cambiado en absoluto. Sigue el mismo "Error defining an external function".

Por cierto, los errores de arriba aparecieron como mensajes estándar de windows, no como un error del GM.
470
¡Buenas! Y muchas gracias por adelantado :-[

Tengo un problema que llevo intentando solucionar, sin resultado alguno.  Se trata de que estoy intentando ejecutar una DLL propia, creada con VB.NET desde Visual Studio 2012, en Game Maker Studio, pero, obviamente (por estar preguntando) no funciona.
A ver les cuento todo el procedimiento que seguí para crear/ejecutar (o al menos intentarlo D': ) la DLL:
Primero, creé la DLL, siguiendo estos pasos:

1)- Creé un proyecto, como se ve a continuación:

(Comento que también he intentado creándolo como "Biblioteca de clases portable", con el mismo resultado)

2)- Escribí el código:

Public Class Class1
    Public Shared Function prueba() As Object
        Return 33
    End Function
End Class

(Comento que no sé absolutamente nada de VB.NET, obtuve la estructura de esta web: http://programacionalotico.blogspot.com.co/2010/06/crear-libreria-dll-en-vbnet-y-como.html )

3)- Compilé:


4)- Moví la DLL obtenida a los Incluided Files de un proyecto en blanco de GMS.

5)- Creé un script, le llamé "prueba". Y en él, apoyándome del manual, escribí esto:
[gml]
var func = external_define("prueba.dll","prueba",dll_stdcall,ty_real,0)
var call = external_call(func);
return call;
[/gml]
6)- En el Creation Code de una room en blanco, escribí esto:
[gml]
a = prueba();
show_message(string(a));
[/gml]
Supongo que al hacer esto, normalmente, se debería mostrar un mensaje emergente con el número 33. Pero, en vez de eso, me muestra un mensaje de error:

___________________________________________
############################################################################################
ERROR in
action number 1
of Create Event
for object <undefined>:

Error defining an external function.
at gml_Script_prueba (line 1) - var func = external_define("prueba.dll","prueba",dll_stdcall,ty_real,0)
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_prueba (line 1)
called from - gml_Room_room0_Create (line 1) - a = prueba();


Inmediatamente después de cerrar la ventana de error, el programa deja de funcionar:


No tengo idea de por qué sucede este error. He visto extensiones del marketplace que usan este mismo método (aunque la DLL es programada en C++), y no tienen errores.

Muchas gracias de antemano :D
471
No sé, ¿Qué tal si intentas poner sólo el encabezado en el php?
<?php
header
('Access-Control-Allow-Origin: *');
?>

Quizás no estés accediendo al servidor desde un (valga la redundancia) servidor local. ¯\_(ツ)_/¯
472
Creo que con esto se arregla:
[gml]
//Dentro del if anterior
if sign(col.hspeed) == -sign(col.x - x)
    //Saltar
[/gml]
473
Paso 1:


Paso 2:


Paso 3:


Paso 4:
Buscar cualquier asset

Paso 5:


Paso 6:


Paso 7:


Paso 8:
474
La mágica collision_rectangle() solucionará tu problema sin problemas(?) xD
En vez de detectar la distancia de las balas al enemigo, deberías comprobar si alguna bala está chocando directamente (o si va a chocar) con el enemigo. Algo así:
[gml]
rango = 160; //La distancia a la que detectará las balas, de un solo lado
var col = collision_rectangle(x - rango, y, x + sprite_width+rango, y + sprite_height, bala, false, true); //Buscamos balas que vayan a chocar. Imaginando que las coordenadas del sprite del enemigo son 0,0
if col != noone {//Si una bala va a chocar
    //Saltar
}
[/gml]
475
Cita de: VisualGames en Mayo 08, 2016, 07:14:47 AM
Por ejemplo: Si apretas flecha izquierda (If) pasará que el volumen de audio bajará (Else))
Esa no es la función del else  XD
El else podría traducirse como "De lo contrario" xDDD
476
Si llevas bastante tiempo en el foro ya deberías haber leído esto: http://www.comunidadgm.org/noticias/reglamento-general/#post_regla6
477
Preguntas y respuestas / Re:problemirijillos
Mayo 08, 2016, 06:57:59 AM
El ciclo, en este caso, se repite dos veces, sumando en cada iteración 1 a la variable i.
Entonces, por cada iteración creamos un par de instancias, valor y resultado. Entonces, deseamos agruparlas. La forma más rápida que se me ocurrió fue agruparlas con el valor de la iteración del ciclo. Es decir que la primera pareja estará agrupada bajo el número 1, y la segunda pareja bajo el número 2.
Luego, cada objeto de resultado revisará el valor del objeto de valor perteneciente sólo a su pareja, para no confundirse y poner valores de otras parejas.
478
Preguntas y respuestas / Re:problemirijillos
Mayo 08, 2016, 06:32:04 AM
Podrías, en el ciclo, agregar una variable en cada instancia (valor1 y rep) para que se "conecten".
Por ejemplo, podrías reemplazar el ciclo por:
[gml]
var ins1, ins2;
for(var i = 1; i <= 2; i++) {
    ins1 = instance_create(x,y+(i*50),valor1);
    ins1.ident = i;
    ins2 = instance_create(x+150,y+(i*50),rep);
    ins2.ident = i;
}
[/gml]
Y luego, en el objeto rep, en la parte donde tomas el valor de la instancia de valor1:
[gml]
var eldato;
with (valor1) {
    if ident == other.ident
        eldato = dato;
}
draw_text(x+10,y+5, string(eldato));
[/gml]
479
Preguntas y respuestas / Re:problemirijillos
Mayo 08, 2016, 06:12:35 AM
Bueno, ese código así como lo tienes tiraría error. Puesto que está intentando dibujar un número real con la función draw_text(), la cual sólo puede dibujar cadenas.

Con el segundo código creo que encontré el error (imaginando que el error de arriba no existe). Lo que sucedes es que en todas las instancias de rep (imagino que es la que muestra el resultado) estás tomando el valor de la variable dato del objeto valor1 como tal, no de una instancia, por lo que todos tomarán siempre el mismo valor (el de la misma instancia).
480
Preguntas y respuestas / Re:problemirijillos
Mayo 08, 2016, 05:56:24 AM
Vale, entiendo un poco más  :-[
Pero... aún así (aunque lo he intentado) no puedo leer tu mente para saber cómo haces las operaciones, ¿No podrías mostrar los códigos que usas?