Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema al aplicar efectos

Iniciado por perrofeo307, 05 de Noviembre de 2007, 07:02:12 AM

« anterior - próximo »

perrofeo307

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

perrofeo307

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

TheAzazel

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!

perrofeo307

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






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.