Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

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

Mostrar Mensajes Menu

Mensajes - Angus

#1
IndieLib / Problema con Entidad2dmanager->Delete()
14 de Septiembre de 2006, 02:55:36 AM
Bueno, ya te agregué, nos vemos por el msn entonces ;)

Saludos!
#2
IndieLib / Problema con Entidad2dmanager->Delete()
10 de Agosto de 2006, 01:36:32 AM
Bueno, logré compilarla y arreglar eso, ahora me funciona todo perfecto y puedo compilar en el Visual 2005, y mejor aún, la DLL quedó como 300kb más chica.

Otra cosa que modifiqué, es la función ZisLess, que está definida en el mismo archivo de cabecera, cuando es mejor solamente declararla ahí, y definirla en el .cpp, sino luego te da unos errores de linker, cómo se ve en este thread:
http://www.stratos-ad.com/forums/index.php?act=ST&f=40&t=4347&s=8b39e6e1401239a292e7c71dd98c259f
(Ver último post de la primera página).

Saludos!
#3
IndieLib / Problema con Entidad2dmanager->Delete()
08 de Agosto de 2006, 04:36:01 AM
Creo que encontré el error, pero no logro compilar la librería :(.

Acá estaría el error:

int i = 0;
for (mEntityListIter  = mListEntities2d.begin();
i < mNumEntities;
mEntityListIter++)
{
if ((*mEntityListIter) == pEn)
{
mIs = 1;
mListEntities2d.erase (mEntityListIter);
mNumEntities--;
}
i++;
}


Debería ser así, creo yo:

for (mEntityListIter  = mListEntities2d.begin();
mEntityListIter != mListEntities2d.end()
mEntityListIter++)
{
if ((*mEntityListIter) == pEn)
{
mIs = 1;
mListEntities2d.erase (mEntityListIter);
mNumEntities--;
break ;
}
}


Ya que lo que hace antes es seguir iterando una lista de la que se le quita un valor dentro del loop, y da error al seguir iterando. De todos modos no tiene sentido seguir iterando, ya que no va a haber 2 entidades iguales. Y en caso de que haya, debería hacerse de otra forma (con una función recursiva quizás).

Lo mismo pasa con este código:

/*
==================
Borramos la imagen de la lista
==================
*/
void LOV_Entity2dManager::DelFromList (LOV_Entity2d *pEn)
{
// Reccoremos la lista buscando el elemento a borrar
vector <LOV_Entity2d*>::iterator mIter;
for (mIter  = mListEntities2d.begin();
mIter != mListEntities2d.end();
mIter++)
{
if ((*mIter) == pEn)
mListEntities2d.erase (mIter);
}

pEn = 0;
}

Le falta el break para terminar el loop, sigue iterando una lista de la cual se le quitó un elemento.

Saludos, voy a seguir intentando compilarla de todas formas, ya que me gustó mucho esta dll, jeje.
#4
IndieLib / Problema con Entidad2dmanager->Delete()
08 de Agosto de 2006, 04:17:58 AM
Sí, por favor, porque ahora que pruebo, cuando le paso el exe a otras computadoras no les anda, y es cuando se ejecuta esa función.

Saludos.
#5
IndieLib / Color Key
13 de Julio de 2006, 06:16:30 PM
Hola de nuevo, ya solucioné el problema anterior (usando el Visual 6.0 y DirectInput, entonces no tuve que modificar nada).

Bueno, al problema, no sé como se especifica el color key a una surface/entidad para dibujar imágenes con partes totalmente transparentes.

Saludos y gracias.

Edit: Ya lo logré, cargando la imagen primero como LOV_Image, y luego utilizar la LOV_Image esa para iniciar la surface, previamente utilizando SetAlpha.
Disculpen la molestia.
#6
IndieLib / Problema con Entidad2dmanager->Delete()
04 de Julio de 2006, 01:27:43 AM
No hay problema con que te hayas tardado, aproveché el tiempo para ver el source y aprender de él.

No, no logré arreglar eso. Es raro, porque hasta abrí un ejemplo donde usa esa función (el ejemplo hecho en vc++ 6) con el vc++ 8, y le di que convierta el proyecto a la versión 2005, y tampoco anda. No se me ocurre que puede ser, y ese es el único inconveniente que tuve, por el resto todo bien.

De última podría usar el vc++ 6, ya que uso el 2005 por algunas comodidades extras que me brinda, pero me sorpendió el error.

Una pregunta aparte, le hice algunos cambios a la lib y cuando quize compilarla, es como que en los includes toma el path, desde donde se encuentra el mismo archivo, en vez de donde se encuentra el proyecto, por ejemplo:

Proyecto
C:\Proyecto\Proyecto.dsw
C:\Proyecto\Proyecto.dsp

Source:
C:\Proyecto\Source\source.cpp
C:\Proyecto\Header\header.h

Y en el source.cpp tengo:
#include "Header\header.h"

Y no me lo acepta, porque para que lo acepte, el header.h se tendría que encontrar acá:
C:\Proyecto\Source\Header\header.h

Quisiera saber como solucionar esto también, si es posible.

Saludos y gracias.
#7
IndieLib / Problema con Entidad2dmanager->Delete()
10 de Junio de 2006, 11:58:54 PM
Primero, felicitaciones por la lib.

Mi problema es muy sencillo, acá va un pedazo de código:

// Entidad
LOV_Entity2d  entidad1;
Entidad2dManager->Add(&entidad1); // Añadir la entidad

// Quitar la entidad del manager
Entidad2dManager->Delete(&entidad1);


Me da el error típico de windows, y en el log del Debug se corta así:
Citar
[19:50:17] [ BEGIN ] -- Liberando entidad --
                   {

Saludos y gracias desde ya.

Edit:
Probé algunas cosas, y resulta que si lo compilo con el Microsoft Visual C++ 6.0 me va bien, pero si lo compilo con el Microsoft Visual C++ 2005 no. Probablemente sea alguna configuración del proyecto, pero no estoy seguro :(





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.