Anuncios Google

Ayuda con colisiones con oslib [Solucionado]

Buenas tardes e revisado toda la scene en busca de tuto de colisiones y solo encontre uno que es el de Dioni0396 pero no lo entiendo se me facilitara si pusieran un ejemplo, dioni me dice que estudie c para pc antes de esto pero ya yo he programado en c++ y ademas es lo unico (colision) que me falta aprender para empesar hacer mi juego si me ayudan se los agradeseria


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Dioni0396

Afijate tu

El cambio, estructurado y limpio, como debe ser:

main.c:

#include <oslib/oslib.h>
//Tu te encargas de hacer la transparencia a la flecha, yo no lo hare.
PSP_MODULE_INFO("Prueba menu", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER || THREAD_ATTR_VFPU);
struct{
	int x;
	int y;
	int w;
	int h;
	OSL_IMAGE *img;
}Flecha;
struct{
	int x;
	int y;
	int w;
	int h;
	OSL_IMAGE *img;
	OSL_IMAGE *img2;
}Jugar;
void Declarar(){
	Flecha.x = 10;
	Flecha.y = 10;
	Flecha.w = 16;
	Flecha.h = 15;
	//el ancho y alto de la imagen
	Flecha.img = oslLoadImageFilePNG("flecha.png",OSL_IN_RAM,OSL_PF_8888);
	Jugar.x = 50;
	Jugar.y = 50;
	Jugar.w = 66;
	Jugar.h = 33;
	Jugar.img = oslLoadImageFilePNG("jugar.png",OSL_IN_RAM,OSL_PF_8888);
	Jugar.img2 = oslLoadImageFilePNG("jugar1.png",OSL_IN_RAM,OSL_PF_8888);
}
OSL_IMAGE *Fondo;
int main(){
	oslInit(0);
	oslInitGfx(OSL_PF_8888,1);
	oslInitAudio();
	Declarar();
	Fondo = oslLoadImageFilePNG("fondo.png",OSL_IN_RAM,OSL_PF_8888);
	//Sin audio, para ir mas rapido
	while(!osl_quit){
		oslStartDrawing();
		oslReadKeys();
		oslDrawImage(Fondo);
		oslDrawImageXY(Flecha.img,Flecha.x,Flecha.y);
		if(osl_keys->held.right) Flecha.x++;
		if(osl_keys->held.left) Flecha.x--;
		if(osl_keys->held.down) Flecha.y++;
		if(osl_keys->held.up) Flecha.y--;
		if ((Flecha.x+Flecha.w>Jugar.x) && (Flecha.x<Jugar.x+Jugar.w) && (Flecha.y+Flecha.h>Jugar.y) && (Flecha.y<Jugar.y+Jugar.h)){
			oslDrawImageXY(Jugar.img2,Jugar.x,Jugar.y);
		}
		else{
			oslDrawImageXY(Jugar.img,Jugar.x,Jugar.y);
		}
		oslEndDrawing();
		oslSyncFrame();
	}
	oslEndGfx();
	oslQuit();
	return 0;
}

No lo he probado, pero el compilador no me tira error. Asi que debe estar bien

Ya no te vuelvo a estructurar el code, tenlo presente

PD: Perdon, por decirte lo del asco, se me fue la lengua.

Imagen de Ricx-Dark

Muchas gracias dioni, ya te

Muchas gracias dioni, ya te regale sccebenitos pero antes de que te vallas unas pregunticas chiquiticas:
1) de donde salio este diez
void Declarar(){
Flecha.x = 10;
Flecha.y = 10;
2) de donde salio este 50
Jugar.x = 50;
Jugar.y = 50;
3) que significa esto
else{
oslDrawImageXY(Jugar.img,Jugar.x,Jugar.y);
4)estas serian jugar y jugar1
Jugar.img
jugar.img2

y ya lo voy a probar y luego te aviso gracias dioni!!!


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

Imagen de Dioni0396

Respuestas

1. Esos "10" salieron de la nada, simplemente es para marcar en que x e y quiero que este

2. lo mismo que arriba

3. Me equivoque, es osl de abajo tenia que estar arriba, si lo pruebas el efecto saldra del reves, pero sale, ese else es para que si la flecha no esta encima este sale, y si esta encima sale la otra imagen, asi consigues el efecto que buscabas no?

4. Si, si no me equivoco si.

Deberias estudiarte las condicionales.

Imagen de Ricx-Dark

lo de la pregunta 3 ya yo me

lo de la pregunta 3 ya yo me avia dado cuenta del efecto y ya lo arregle pero lo que te decia es que significaba  oslDrawImageXY(Jugar.img,Jugar.x,Jugar.y); pero ya se lo que pasa esque yo esva acostumbrado a verlo asi oslDrawImage(Jugar.img, Jugar->x,Jugar->y); o algo asiPie en la boca; pero eso es bueno hoy e aprendido a hacer colisiones y a eso gracias a ti dioni!!!!

 

fuera del tema tu eres de españa, no lo pregunto para matarte ni nada lo que pasa es que yo soy de venezuela y aqui son las 2:57pm  y tu siempre estas escribiendo como a las 12:00 pm aqui pero en scenebeta la hora es mas adelantada si eres de españa, mala mia por preguntar tan tarde


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

Imagen de Dioni0396

De nada.

De nada.

Imagen de Tutos14

Esto va en Programacion

Esto va en Programacion

Imagen de Ricx-Dark

Disculpa tutos14, yo tambien

Disculpa tutos14, yo tambien crei lo mismo pero , despues dije a mi mismo que programacion deverian ser tutos de programacion y yo lo que tengo es una duda. Pero igual gracias por corregirme


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

El foro de programación es

El foro de programación es para dudas y/o aportes de programación (en el menú izquierdo hay un enlace, pincha para ver una breve descripción de cada foro).

PD. Ya moví el hilo.

Imagen de Ricx-Dark

Disculpa rober no sabia aora

Disculpa rober no sabia aora ya se y como ago para pasarla

bueno igual ya no importa ya lo cirro porque ya me respondieron

y no quiero que aya tablaLlora!!


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

Imagen de Dioni0396

Pon tu main.c

o donde tengas el error, y te ayudamos.

Imagen de Ricx-Dark

Hola dioni, ese es el

Hola dioniSonrisa, ese es el problema porque no se como hacer colisionesLlora, si me pudieras dar un main.c con un ejemplo de dos muñecos o algo parecido lo que tu quieras, si me lo haces si quieres te doy mis scebenitosDinero boca no son muchos porque solo tengo 155 pero algo es algo por la ayuda que me has dado, gracias!! 

haa bueno yo tambien he intentado con esto:

http://www.4shared.com/rar/XZQZtb6e/PruebaColision.html    //este es el link donde esta el main.c con las imagenes y el sonido todo

 

si subieras un archi hasi como lo hice yo con un ejemplo de colision me ayudarias mas gracias!!!


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

Imagen de Dioni0396

Si me dices que imagenes

quieres que colisionen te lo hago para que veas como es.

PD: ya lo encontre, dejame 5 min.

PD2: MEJOR Dejame 20 min, y te reestructuro el programa, porque esta hecho un asco.

Imagen de Ricx-Dark

Lo que pasa es que ya yo e

Lo que pasa es que ya yo e echo cursos en la universidad de

  *introduccion en la programacion con pascal

y  ademas e aprendido c++ por mi mismo y yo nunca e tenido buena cosa con las funciones o void vez es por eso que el codigo esta asi :)

 

y oye lo de que es un asco me iso sentir un poco mal pero a la vez me rei


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

Imagen de Dioni0396

Por eso

deberias aprender C de pc.

Me quedan 10 min... para terminar

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.