Foros - Stratos

Proyectos => CRM32Pro => Mensaje iniciado por: perrofeo307 en 05 de Noviembre de 2007, 07:02:12 AM

Título: Problema al aplicar efectos
Publicado por: perrofeo307 en 05 de Noviembre de 2007, 07:02:12 AM
Saludos!
tengo un problemilla con los efectos... al aplicarlo a varios Sprites...
esto sucede al hacer el cambio de sprite.. anexo un fragmento de código
"Sprites" es un std::vector<CRM32Pro_CSprite*>
y los sprites son clonados!!!

void MJugador::Run(){
Posicion.x += VelocidadX;
Posicion.y += VelocidadY;
// AQUI EL PROBLEMA!!!
if( Invertido )
Sprites[IndiceSprite]->SetEffect(SPREFFECT_MIRROR);
else
Sprites[IndiceSprite]->SetEffect(SPREFFECT_NONE);

// Esto se hace para que CRM32Pro no intente hacer un movimiento suave en cambios de sprite :P
if(IndiceSpriteAnterior == IndiceSprite)
Sprites[IndiceSprite]->SetPosition(Posicion.x, Posicion.y, true);
else
Sprites[IndiceSprite]->SetPosition(Posicion.x, Posicion.y);

IndiceSpriteAnterior = IndiceSprite;
Sprites[IndiceSprite]->Draw();
PosicionAnterior = Posicion;
Particulas.Crear = false;
}

me resulta en un memory leak
Excepción no controlada en 0x1001a114 en HKK.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0x00000008.

Eso solo sucede al aplicar el efecto, cuando se los deshabilito todo funciona perfectamente 8)
Alguna sujerencia???
gracias
Título: Problema al aplicar efectos
Publicado por: perrofeo307 en 05 de Noviembre de 2007, 07:09:06 AM
el problema se soluciono, aplicando efectos, solo cuando no hay cambio de sprites es decir...

void MJugador::Run(){
// Posicionamos
Posicion.x += VelocidadX;
Posicion.y += VelocidadY;
// Esto se hace para que CRM32Pro no intente hacer un movimiento suave en cambios de sprite :P
if(IndiceSpriteAnterior == IndiceSprite){

if( Invertido )
Sprites[IndiceSprite]->SetEffect(SPREFFECT_MIRROR);
else
Sprites[IndiceSprite]->SetEffect(SPREFFECT_NONE);

Sprites[IndiceSprite]->SetPosition(Posicion.x, Posicion.y, true);
}
else
Sprites[IndiceSprite]->SetPosition(Posicion.x, Posicion.y);

// Actualizamos datos... y dibujamos ;)
IndiceSpriteAnterior = IndiceSprite;
Sprites[IndiceSprite]->Draw();
PosicionAnterior = Posicion;
Particulas.Crear = false;
}



Saludos
Título: Problema al aplicar efectos
Publicado por: TheAzazel en 06 de Noviembre de 2007, 12:02:15 AM
uff, llevo unos dias malisimos en el curro y esta semana no promete nada bueno... :S

tengo que mirar esto y un error que me dijo Mike y ya os contare.

Por cierto, consegui ejecutar tu demo y tiene muy buena pinta!!! :)

espero que pronto subas una demo para que la gente lo pueda ver y para la proxima actualizacion de la web, te pondre un enlace a tu blog (tienes web?)

pues nada, espero poder hacer algo para la proxima semana, saludos!
Título: Problema al aplicar efectos
Publicado por: perrofeo307 en 22 de Noviembre de 2007, 01:16:58 AM
Hola!
hasta ahora pude postear jeje, andaba demasiado ocupado.
Pues por el momento no tengo pagina web :shock:
pero en eso ando a ver si en estos dias jeje, y pues si, la idea es subir demo y código.
saludos!
:D