ChinosInternationalCC / chinoPinball

Openframeworks Pinball with the Bullet 3D engine
http://chinosinternationalcc.github.io/chinoPinball
GNU General Public License v3.0
9 stars 10 forks source link

Load the type of objects that will be loaded and their position from an xml file #45

Closed ovicin closed 10 years ago

ovicin commented 10 years ago

The xml file will be created by the scenario editor

carlesgutierrez commented 10 years ago

Vi q el xml accunula simpre .. asu q va duplicando objetos... eso repentiza el engine.

Mirate el json un segundo a ver q te parece, quizas te mole mas... para mi es mas facil d acceder y leer. :) El 07/02/2014 08:43, "Ovidiu Cincheza" notifications@github.com escribió:

The xml file will be created by the scenario editor

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45 .

ovicin commented 10 years ago

Si parece mas guay la interfaz de ofxJSON podemos cambiar por JSON. Cual fork usamos? En ofxaddons.com veo que son 3 forks uno para 0.7.4 y 2 para 0.8.0: https://github.com/bakercp/ofxJSON y https://github.com/tado/ofxJSON

carlesgutierrez commented 10 years ago

Bien pues yo uso la jefftimersen y va perfeft.. esta misma si te parece. Qualquier duda me dices. Ciao

Por cierto. He conseguido entradas para el mobile world congress. Yeah! El 24/02/2014 17:07, "Ovidiu Cincheza" notifications@github.com escribió:

Si parece mas guay la interfaz de ofxJSON podemos cambiar por JSON. Cual fork usamos? En ofxaddons.com veo que son 3 forks uno para 0.7.4 y 2 para 0.8.0: https://github.com/bakercp/ofxJSON y https://github.com/tado/ofxJSON

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35901845 .

kubamarkiewicz commented 10 years ago

Os va rapdio el pinball? Yo tengo 1 FPS ...

2014-02-24 18:24 GMT+01:00 carles notifications@github.com:

Bien pues yo uso la jefftimersen y va perfeft.. esta misma si te parece. Qualquier duda me dices. Ciao

Por cierto. He conseguido entradas para el mobile world congress. Yeah! El 24/02/2014 17:07, "Ovidiu Cincheza" notifications@github.com escribió:

Si parece mas guay la interfaz de ofxJSON podemos cambiar por JSON. Cual fork usamos? En ofxaddons.com veo que son 3 forks uno para 0.7.4 y 2 para 0.8.0: https://github.com/bakercp/ofxJSON y https://github.com/tado/ofxJSON

Reply to this email directly or view it on GitHub< https://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35901845>

.

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35911052 .

ovicin commented 10 years ago

a mi me va entre 30 y 60

carlesgutierrez commented 10 years ago

Debe de depender de el numero de objetos en la escena. Si hay los q deben haber, no deberia ir lento. Si arrancanos el juego a 60fps y luego lo ponemos a 240 no seria mejor? Asi da tiempo a hacer calculos iniciales..

Saluti El 24/02/2014 20:57, "Ovidiu Cincheza" notifications@github.com escribió:

a mi me va entre 30 y 60

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35928503 .

kubamarkiewicz commented 10 years ago

He quitado el GrabCam y problema desaparecio ... que raro ...

2014-02-24 21:42 GMT+01:00 carles notifications@github.com:

Debe de depender de el numero de objetos en la escena. Si hay los q deben haber, no deberia ir lento. Si arrancanos el juego a 60fps y luego lo ponemos a 240 no seria mejor? Asi da tiempo a hacer calculos iniciales..

Saluti El 24/02/2014 20:57, "Ovidiu Cincheza" notifications@github.com escribió:

a mi me va entre 30 y 60

Reply to this email directly or view it on GitHub< https://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35928503>

.

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35933637 .

ovicin commented 10 years ago

Cuando el puntero del mouse es dentro del escenario tambien a mi me baja a 10FPS si mueves el mouse fuera de juego va bien. Si dices que cuando sacas el grabcam va bien seguro es algo relacionado con la implementacion del evento de mouse dentro de grab cam

ovicin commented 10 years ago

Sabes como puedo iterar por todo los elementos de una lista JSON? Estoy intentando de esta manera pero no me compila

ofxJSONElement ScenarioJSON;
ScenarioJSON.open(file);
for ( Json::ValueIterator itr = ScenarioJSON.begin(); itr ! = ScenarioJSON.end(); itr++ ){

}

para guardar el escenario lo hago de esta manera y funciona

void Scenario::saveToJSON(){

    ofxJSONElement ScenarioJSON;
    Json::Value Object;

    for(int i = 0; i < ScenarioObjects.size(); i++){

        Object["SimpleObject"]["type"] = ScenarioObjects[i]->type;
        if (ScenarioObjects[i]->type == SimpleObject::ShapeTypeLever){
            /* for the moment only LEVER has subtypes left and right */
            Lever *pLever;
            pLever = (Lever*)ScenarioObjects[i];
            Object["SimpleObject"]["SubType"] = pLever->direction;
        }
        else{
            /* The other objects don´t have this field so we put it to 0*/
            Object["SimpleObject"]["SubType"] = 0;
        }
        Object["SimpleObject"]["position"]["X"] = ScenarioObjects[i]->position.x;
        Object["SimpleObject"]["position"]["Y"] = ScenarioObjects[i]->position.y;
        Object["SimpleObject"]["position"]["Z"] = ScenarioObjects[i]->position.z;

        ScenarioJSON.append(Object);
    }

    // now write
    if(!ScenarioJSON.save("scenario.json",true)) {
        cout << "scenario.json written unsuccessfully." << endl;
    } else {
        cout << "scenario.json written successfully." << endl;
    }

}

todo el codigo esta subido en el github de chino

carlesgutierrez commented 10 years ago

Pues si, raro...raro... si es eso pues la quitamos... El 24/02/2014 22:01, "Kuba Markiewicz" notifications@github.com escribió:

He quitado el GrabCam y problema desaparecio ... que raro ...

2014-02-24 21:42 GMT+01:00 carles notifications@github.com:

Debe de depender de el numero de objetos en la escena. Si hay los q deben haber, no deberia ir lento. Si arrancanos el juego a 60fps y luego lo ponemos a 240 no seria mejor? Asi da tiempo a hacer calculos iniciales..

Saluti El 24/02/2014 20:57, "Ovidiu Cincheza" notifications@github.com escribió:

a mi me va entre 30 y 60

Reply to this email directly or view it on GitHub<

https://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35928503>

.

Reply to this email directly or view it on GitHub< https://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35933637>

.

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35936714 .

carlesgutierrez commented 10 years ago

Hay un metodo q se llama getMembers dentro de un elemento. Retona un vector de strings con los nombres de tags internos. El 24/02/2014 23:00, "Ovidiu Cincheza" notifications@github.com escribió:

Sabes como puedo iterar por todo los elementos de una lista JSON? Estoy intentando de esta manera pero no me compila

ofxJSONElement ScenarioJSON; ScenarioJSON.open(file); for ( Json::ValueIterator itr = ScenarioJSON.begin(); itr ! = ScenarioJSON.end(); itr++ ){

}

para guardar el escenario lo hago de esta manera y funciona

void Scenario::saveToJSON(){

ofxJSONElement ScenarioJSON;
Json::Value Object;

for(int i = 0; i < ScenarioObjects.size(); i++){

    Object["SimpleObject"]["type"] = ScenarioObjects[i]->type;
    if (ScenarioObjects[i]->type == SimpleObject::ShapeTypeLever){
        /* for the moment only LEVER has subtypes left and right */
        Lever *pLever;
        pLever = (Lever*)ScenarioObjects[i];
        Object["SimpleObject"]["SubType"] = pLever->direction;
    }
    else{
        /* The other objects don´t have this field so we put it to 0*/
        Object["SimpleObject"]["SubType"] = 0;
    }
    Object["SimpleObject"]["position"]["X"] = ScenarioObjects[i]->position.x;
    Object["SimpleObject"]["position"]["Y"] = ScenarioObjects[i]->position.y;
    Object["SimpleObject"]["position"]["Z"] = ScenarioObjects[i]->position.z;

    ScenarioJSON.append(Object);
}

// now write
if(!ScenarioJSON.save("scenario.json",true)) {
    cout << "scenario.json written unsuccessfully." << endl;
} else {
    cout << "scenario.json written successfully." << endl;
}

}

todo el codigo esta subido en el github de chino

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35944719 .

chopsuey5000 commented 10 years ago

A mi tambien me va a 15 FPS, pero a veces jugando la segunda o tercera bola en una misma partida, derepente se acelera a 30FPS, es raro...

On Mon, Feb 24, 2014 at 11:31 PM, carles notifications@github.com wrote:

Hay un metodo q se llama getMembers dentro de un elemento. Retona un vector de strings con los nombres de tags internos. El 24/02/2014 23:00, "Ovidiu Cincheza" notifications@github.com escribió:

Sabes como puedo iterar por todo los elementos de una lista JSON? Estoy intentando de esta manera pero no me compila

ofxJSONElement ScenarioJSON; ScenarioJSON.open(file); for ( Json::ValueIterator itr = ScenarioJSON.begin(); itr ! = ScenarioJSON.end(); itr++ ){

}

para guardar el escenario lo hago de esta manera y funciona

void Scenario::saveToJSON(){

ofxJSONElement ScenarioJSON; Json::Value Object;

for(int i = 0; i < ScenarioObjects.size(); i++){

Object["SimpleObject"]["type"] = ScenarioObjects[i]->type; if (ScenarioObjects[i]->type == SimpleObject::ShapeTypeLever){ /* for the moment only LEVER has subtypes left and right / Lever *pLever; pLever = (Lever)ScenarioObjects[i]; Object["SimpleObject"]["SubType"] = pLever->direction; } else{ /* The other objects don´t have this field so we put it to 0*/ Object["SimpleObject"]["SubType"] = 0; } Object["SimpleObject"]["position"]["X"] = ScenarioObjects[i]->position.x; Object["SimpleObject"]["position"]["Y"] = ScenarioObjects[i]->position.y; Object["SimpleObject"]["position"]["Z"] = ScenarioObjects[i]->position.z;

ScenarioJSON.append(Object); }

// now write if(!ScenarioJSON.save("scenario.json",true)) { cout << "scenario.json written unsuccessfully." << endl; } else { cout << "scenario.json written successfully." << endl; }

}

todo el codigo esta subido en el github de chino

Reply to this email directly or view it on GitHub< https://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35944719>

.

Reply to this email directly or view it on GitHubhttps://github.com/ChinosInternationalCC/chinoPinball/issues/45#issuecomment-35948275 .

ángel muñoz chopsuey5000.com