#0 

28-06-2012 15:05:56

Super-Vlan
Membre
Date d'inscription: 28-06-2012
Messages: 10
Site web

Bonjour à tous!!! Je suis entrain d'apprendre à utiliser irrlicht en suivant le tutoriel du site du zéro http://www.siteduzero.com/tutoriel-3-18 … ators.html

j'ai donc crée le fichier trackballcamera.h

Code c++ :


#ifndef TRACKBALLCAMERA_H
#define TRACKBALLCAMERA_H

#include <iostream>
#include "irrlicht.h"
#include "Constante.h"

using namespace std;   
using namespace irr;
using namespace scene;     


class CSceneNodeAnimatorCameraTrackball : public ISceneNodeAnimator
{

public :


    CSceneNodeAnimatorCameraTrackball(video::IVideoDriver *driver, gui::ICursorControl *cursorControl, f32 radius, f32 moveSpeed, f32 rotateSpeed);
   
    virtual void animateNode(ISceneNode* node, u32 timeMs);
    virtual bool OnEvent(const SEvent& event);
    virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager = 0);


    virtual void setMoveSpeed(f32 moveSpeed);
    virtual void setRotateSpeed(f32 rotateSpeed);

    virtual f32 getMoveSpeed() const
    {
        return m_moveSpeed;
    }
    virtual f32 getRotateSpeed() const
    {
        return m_rotateSpeed;
    }
    virtual bool isEventReceiverEnabled() const
    {
        return true;
    }


private :

    video::IVideoDriver *m_driver;             // pointer to video driver
    gui::ICursorControl *m_cursorControl;      // allow operations on cursor
    f32 m_radius;                              // distance from target
    f32 m_moveSpeed;                           // movements's speed to the target
    f32 m_rotateSpeed;                         // speed of fake world rotation
    bool m_isPressed;                               // is the left mouse button clicked
    bool m_wheel;                                   // did the wheel moved
    core::position2d<f32> m_cursorMove;   // contain changes on cursor position
    core::position2d<f32> m_cursorPos;    // contain the cursor position
    core::vector3df m_rotation;                // contain changes on camera position
};




#endif //TRACKBALLCAMERA_H



ensuite, j'ai crée le fichier trackballcamera.cpp

Code c++ :

#include <iostream>
#include "irrlicht.h"
#include "Constante.h"
#include "trackballcamera.h"

using namespace std;   
using namespace irr;
using namespace scene;   

#define MAXANGLE 1.3


CSceneNodeAnimatorCameraTrackball::CSceneNodeAnimatorCameraTrackball(
    video::IVideoDriver *driver,
    gui::ICursorControl *cursorControl,
    f32 radius,
    f32 moveSpeed,
    f32 rotateSpeed)
    : m_driver(driver),
    m_cursorControl(cursorControl),
    m_radius(radius),
    m_moveSpeed(moveSpeed),
    m_rotateSpeed(rotateSpeed),
    m_isPressed(false),
    m_wheel(false)
{
    m_rotation = core::vector3df(1.0f,1.0f,0.0f);
    m_cursorPos = m_cursorControl->getRelativePosition();
    m_cursorMove = core::position2d<irr::f32>(0,0);
}


void CSceneNodeAnimatorCameraTrackball::animateNode(ISceneNode* node, u32 timeMs)
{
    // check the node is a camera
    if (!node || node->getType() != ESNT_CAMERA)
    {
        return;
    }
    ICameraSceneNode* camera = static_cast<ICameraSceneNode*>(node);
    ISceneManager * sceneManager = camera->getSceneManager();
    // check the camera is operational
    if(!camera->isInputReceiverEnabled())
    {
        return;
    }
    if(sceneManager && sceneManager->getActiveCamera() != camera)
    {
        return;
}

    // if there is change to apply
    if (m_isPressed || m_wheel)
    {
        f32 posZ = m_radius * cos(m_rotation.Y);
        f32 posY = m_radius * sin(m_rotation.Y);

        core::vector3df camPos(core::vector3df(0.0f, posY, posZ));
        camPos.rotateXZBy(-m_rotation.X*40, core::vector3df(0.0f, 0.0f, 0.0f));

        camera->setPosition(camPos);
        m_wheel = false;
    }
}

bool CSceneNodeAnimatorCameraTrackball::OnEvent(const SEvent& event)
{
    if(event.EventType == EET_MOUSE_INPUT_EVENT)
    {
        if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN)
        {
            m_isPressed = true;
            return true;
        }
        else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP)
        {
                m_isPressed = false;
                return true;
        }
        // change the radius/distance according to wheel moves
        else if (event.MouseInput.Event == EMIE_MOUSE_WHEEL)
        {
                if ( event.MouseInput.Wheel > 0 )
                {
                    m_radius -= 1.0f * m_moveSpeed;
                }
                else
                {
                    m_radius += 1.0f * m_moveSpeed;
                }
                m_wheel = true;
                return true;
        }
        else if (event.MouseInput.Event == EMIE_MOUSE_MOVED)
        {
                // if the mouse moves without the left button is pressed,
                // we just update the position. Camera doesn't move
                if (m_isPressed == false)
                {
                    m_cursorPos = m_cursorControl->getRelativePosition();
                    return true;
                }
                // if the left button is pressed, then we get the change and
                // set the rotation vector. And update the position
                else if (m_isPressed == true)
                {
                    m_cursorMove = m_cursorControl->getRelativePosition() - m_cursorPos;
                    m_rotation.X += m_cursorMove.X * m_rotateSpeed;
                    m_rotation.Y += m_cursorMove.Y * m_rotateSpeed;
                    // check the Y change to prevent vertical looping
                    if (m_rotation.Y >= MAXANGLE)
                    {
                        m_rotation.Y = MAXANGLE;
                    }
                    else if (m_rotation.Y <= -MAXANGLE)
                    {
                        m_rotation.Y = -MAXANGLE;
                    }
                    m_cursorPos = m_cursorControl->getRelativePosition();
                    return true;
                }
        }
    }
    return false;   // event not proceeded
}

void CSceneNodeAnimatorCameraTrackball::setMoveSpeed(f32 moveSpeed)
{
    m_moveSpeed = moveSpeed;
}
void CSceneNodeAnimatorCameraTrackball::setRotateSpeed(f32 rotateSpeed)
{
    m_rotateSpeed = rotateSpeed;
}

ISceneNodeAnimator* CSceneNodeAnimatorCameraTrackball::createClone(ISceneNode* node,ISceneManager* newManager = 0)
{

}



Et la création de la caméra dans le main.

Code c++ :

    ICameraSceneNode* camera = sceneManager->addCameraSceneNode(sceneManager->getRootSceneNode(), core::vector3df(40.0f, 100.0f, 40.0f), core::vector3df(0.0f, 0.0f, 0.0f));
    ISceneNodeAnimator* animator = new CSceneNodeAnimatorCameraTrackball(driver, device->getCursorControl(), 50, 4, 6);

    camera->addAnimator(animator);
    animator->drop(); 



Et voilà mon problème, je ne sais pas quoi mettre dans la fonction IScendeNodeAnimator du trackballcamera.cpp!!!
Auriez-vous des idées (ou solutions)???

Bonne prog!

super-Vlan

Hors ligne


#1 

28-06-2012 15:33:45

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

Si tu parles de "ISceneNodeAnimator* CSceneNodeAnimatorCameraTrackball::createClone(ISceneNode* node,ISceneManager* newManager = 0)", je ne pense pas qu'elle te servira à quoi que ce soit donc à la limite tu retournes NULL et tu n'utilises pas cette fonction.

Sinon ISceneNodeAnimator n'est pas une fonction, ce n'est que le type que renvoie la fonction createclone() de la classe CSceneNodeAnimatorCameraTrackball.


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#2 

28-06-2012 20:41:22

Super-Vlan
Membre
Date d'inscription: 28-06-2012
Messages: 10
Site web

Enfaite, lorsque je supprime

Code c++ :

ISceneNodeAnimator* CSceneNodeAnimatorCameraTrackball::createClone(ISceneNode* node,ISceneManager* newManager = 0)
{
}


J'obtiens l'erreur :

" trackballcamera.obj : error LNK2001: symbole externe non résolu "public: virtual class irr::scene::ISceneNodeAnimator * __thiscall CSceneNodeAnimatorCameraTrackball::createClone(class irr::scene::ISceneNode *,class irr::scene::ISceneManager *)" (?createClone@CSceneNodeAnimatorCameraTrackball@@UAEPAVISceneNodeAnimator@scene@irr@@PAVISceneNode@34@PAVISceneManager@34@@Z) "

Si je met

Code c++ :

ISceneNodeAnimator* CSceneNodeAnimatorCameraTrackball::createClone(ISceneNode* node,ISceneManager* newManager = 0)
{
    return NULL;
}


J'obtiens l'erreur :

"error C2572: 'CSceneNodeAnimatorCameraTrackball::createClone' : redéfinition du paramètre par défaut : paramètre 2 "

Je ne sais que faire!!!

Super-Vlan

Hors ligne


#3 

28-06-2012 22:37:15

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

C'est normal, tu as definis une valeur par défaut pour ISceneManager* newManager 2 fois. une dans le *.h et une autre dans le *.cpp. Ton compilateur ne pouvait pas être plus clair, il te donne la fonction qui pose problème et te dis que tu as donné plusieurs fois une valeur par défaut au deuxième paramètre soit le "ISceneManager* newManager = 0".

Code:

ISceneNodeAnimator* CSceneNodeAnimatorCameraTrackball::createClone(ISceneNode* node,ISceneManager* newManager)
{
    return NULL;
}

Franchement, je ne veux pas être méchant mais apprends les bases du c++. Tu es trop gourmand de t'attaquer directement à une bibliothèque.
Parce que tu aurais les bases tu te serais aperçu que createClone est virtelle pure donc tu es obligé de l'implémenté d'où le "error LNK2001: symbole externe non résolu". Et si tu avais lu un tuto sur les classes tu n'aurais eu aucun problème à résoudre le second puisque cela devrait être une étourderie.

Moi aussi j'ai trouvé ça chiant de faire des programmes consoles et lire des tutos au début sad mais il y a plein de tutos sur devellopez et siteduzero qui te permettront d'apprendre les bases rapidement. Parce que je veux bien aider mais là je vais te faire tout le code, le topic va faire 500 pages parce que tu posteras à chaque erreurs du compilo yikes . Au final, même si tu as un code qui marche, tu n'auras rien appris et pour moi, ce n'est pas t'aider que de faire tout à ta place.

Ceci étant dit, lorsque tu attaqueras Irrlicht avec le minimum de connaissances requis pour utiliser le c++, je serais ravi de t'aider. Ce n'est pas un sermon, c'est juste un conseil qui vaut pour tout ceux qui débutent et que j'ai suivi moi aussi. Je pense que d'autres personnes pensent comme moi car on a tous commencé par les programmes console et on en est pas mort wink . Alors lorsque tu auras les bases du c++, reviens nous voir et on pourra t'aider à acquérir de bonnes bases sur Irrlicht. Maintenant si tu veux continuer comme ça tu peux mais je ne pense pas que ce soit la bonne solution.

Sue ce, à plus wink .


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#4 

29-06-2012 21:39:05

Super-Vlan
Membre
Date d'inscription: 28-06-2012
Messages: 10
Site web

Au prix d'être insolant, tu me sembles dans l'erreur sur mon compte...

C'est normal, tu as definis une valeur par défaut pour ISceneManager* newManager 2 fois. une dans le *.h et une autre dans le *.cpp. Ton compilateur ne pouvait pas être plus clair, il te donne la fonction qui pose problème et te dis que tu as donné plusieurs fois une valeur par défaut au deuxième paramètre soit le "ISceneManager* newManager = 0".


Je sais lire! Pas besoin de me sermoner! Il me semblait juste normal que je te mette l'erreur que j'obtenais après avoir testé ta solution... Mais bon, j'aurais peut-être dû m'abstenir et juste dire que ta solution ne fonctionnait pas et alors, tu aurais pus me faire un petit sermon sur le manque d'infos que je donnais...

Franchement, je ne veux pas être méchant mais apprends les bases du c++. Tu es trop gourmand de t'attaquer directement à une bibliothèque.


Moi aussi j'ai trouvé ça chiant de faire des programmes consoles et lire des tutos au début sad mais il y a plein de tutos sur devellopez et siteduzero qui te permettront d'apprendre les bases rapidement.


Je ne pense pas être trop gourmand... Les bases, je les ais acquises. Le c++ n'est pas particulièrement différents du c dans les notions de bases, je me suis rendu compte lorsque je suis tombée sur l'erreur LNK2001 (il y a plus d'une semaine) que je manquais de connaissance sur les classes. Je me suis donc attelé à combler cette lacune. D'autre part, avant de poser cette question, j'ai chercher des réponses pendant une semaine, analysé d'autres classes de caméra dont j'ai à peut près compris le code mais dont aucune n'utilisait la fonction createClone.... J'ai déjà crée des petits programmes ridicules en c sur console en suivant les tutos, et ce n'est pas lire les tutos qui me fait peur (le manque de temps peut-être...). Je me suis récemment attelé à la réalisation d'un programme en SDL qui marche parfaitement. Mes connaissances en C++ sont peut-être lacunaires, mais elles me semblent amplement suffisante pour pourvoir faire ce que je souhaite faire. Et les connaissances qu'il me manque peuvent-être facilement acquises sur le site du zéro ou autre...

Parce que tu aurais les bases tu te serais aperçu que createClone est virtelle pure donc tu es obligé de l'implémenté d'où le "error LNK2001: symbole externe non résolu". Et si tu avais lu un tuto sur les classes tu n'aurais eu aucun problème à résoudre le second puisque cela devrait être une étourderie.


Suite à mes diverses recherches et lectures de tuto, j'ai compris que je devais implémenter la fonction createClone dans le trackballcamera.cpp. Mon problème actuellement, c'est que je ne sais pas comment l'implémenter correctement. J'ai vu sur un autre topic, un morceau de code utilisant la fonction createClone (la personne avait d'ailleurs suivie le tutoriel du site du zéro). Cependant, le code n'étant pas complet, je n'ai pas réussi à savoir à quoi servait ce que retournais sa fonction...


Parce que je veux bien aider mais là je vais te faire tout le code, le topic va faire 500 pages parce que tu posteras à chaque erreurs du compilo yikes . Au final, même si tu as un code qui marche, tu n'auras rien appris et pour moi, ce n'est pas t'aider que de faire tout à ta place.


Il me semble que mon code est suffisamment complet et ma question suffisamment précise pour que la réponse ne soit pas particulièrement longue. D'après ce que j'ai vu, la réponse devrait faire environ 1 ligne et demi de code... Je ne vois pas non plus pourquoi le topic ferais 500 pages... Il me semble avoir posté dans la section caméra donc, une fois mon problème réglé je n'aurais plus besoin de toucher à la caméra donc ce topic seras clos et pourras tomber dans l'oubli... Je suis d'ailleurs entièrement d'accords avec toi, ce n'est pas aider que de tout faire à la place d'un autre mais là, ma question étant, il me semblait, assez précise et le code demandé assez restreint, je pense que ce n'est pas tout me faire que de me donner le maillon manquant et je pense pouvoir comprendre les différents liens même si tu me donnais le code tout fait. Je te l'avoue volontiers, quelques explications ne seraient pas de refus mais si tu ne souhaites pas, le code me suffiras et je me débrouillerais avec.


Ceci étant dit, lorsque tu attaqueras Irrlicht avec le minimum de connaissances requis pour utiliser le c++, je serais ravi de t'aider. Ce n'est pas un sermon, c'est juste un conseil qui vaut pour tout ceux qui débutent et que j'ai suivi moi aussi. Je pense que d'autres personnes pensent comme moi car on a tous commencé par les programmes console et on en est pas mort wink . Alors lorsque tu auras les bases du c++, reviens nous voir et on pourra t'aider à acquérir de bonnes bases sur Irrlicht. Maintenant si tu veux continuer comme ça tu peux mais je ne pense pas que ce soit la bonne solution.


Comme je l'ai dis plus haut, je pense avoir les connaissances minimales requises pour utiliser le c++ (et je continu de lire les tutos dès que j'ai le temps pour approfondir mes connaissances). Je prend bien entendu ton commentaire pour un conseil (malgré le fait que je l'ai déjà suivi plusieurs fois). Maintenant, si je me suis tourné vers vous, c'est parce que je n'ai pas trouvé de réponses dans les forums, dans les tutos, ni dans le code source d'irrlicht...

Je réitère donc ma question en espérant une réponse de votre part et en espérant que mon message ne soit pas mal pris.

Bonne prog.

Super-Vlan

PS : Histoire de te rassurer, je ne souhaite pas révolutionner le monde du jeux vidéo avec le futur WOW ou Call Of Duty! Je cherche juste à refaire le jeux de la vie en 3D dans le cadre de mes études (études qui ne sont pas du tout informatiques donc, il m'est impossible de demander de l'aide aux profs sur les différents langages de programation sauf maple qui n'est cependant pas particulièrement adapté à ce genre de situation...)

Hors ligne


#5 

29-06-2012 22:30:32

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

Oula on ce calme les enfant ! smile

bon pour le coup johnplayer tu a peut être été un peut sec ! wink
(salut john au passage)

mais "Super-Vlan" tu peut croire en l'expérience des personnes qui sont ici depuis un certain temps comme johnplayer et moi même, tu manque de connaissance en C++ et croix moi il y a un très grand fosé entre le C99 et le C++
la syntaxe de base est la même certe, mes tu apprendra de nouveaux concept qui font la force de ce language

personnelement j'ai toujours eu horreur des tutos en particulier ceux du site du zero,
je comprend tout a fait que tu souhait t'attaquer a quelque chose de plus noble afin d'exprimer, et de façonner ce qui a germé dans ton esprit
c'est a peut prêt ce que j'ai fait il y a quelque année .....

mais sache écouté les arguments que nous te fournissons avec un peut plus de courtoisie, sinon je reviens avec le foué et les botte de cuire ! (uhm) wink
les membres de cette communauter sont sage (en générale), écoutes les et ils t'écouteront.

bref, ton probleme est asser symmple, createClone est une fonction de type pure virtual qui t'oblige a l'implementer de ton coter, elle a été implenter depuis la version 1.6
cepandant irrlicht ne l'utilise pas encore, donc l'implenter au final ça ne sert a rien (a par si tu en a l'utiliter), donc comme johnplayer la mentionner il te suffie de retourner 0
si tu en a l'utiliter tu retourne un "new CSceneNodeAnimatorCameraTrackball(m_driver, m_cursorControl, m_radius, m_moveSpeed, m_rotateSpeed);"

pour le second point (createClone(ISceneNode* node,ISceneManager* newManager = 0)), le "=0" ne peut ce trouver que sur le protoype de la class,
d'ou tu avais une erreur de compilation, car il ce trouvais également dans l'implementation, si johnplayer est passer a coter, c'est une bête étourderie excuse le ^^,
ça m'arrive aussi quand j'est la flemme de réfléchir.

ceci étant dit si tu veut acroitre t'est connaissance et que tu comprend un minimum l'anglais évite les tuto français de programmation il n'y a pas pire !
de plus en connaissance un minimum d'anglais tu aurais trouver la réponsse directement sur le forum officiel en quelque clique (attention ce n'est pas une critique, je t'encourage seulement a aller dans cette voie)

ps: personnelement je n'aide plus trop sur le forum, je ne m'interess qu'au probleme et temps soit peut épineux, au quelle j'aurait une réponsse potentiel
et moi qui ne voullais écrire que quelque ligne ....

Hors ligne


#6 

29-06-2012 22:53:45

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

Bien, dans ce cas mon message précédent devrait avoir résolu ton problème avec createClone(). Ca m'étonnerais que tu ais besoin de cloner un animator de camera, tu ne pourras pas dupliquer l'animator mais au moins le compilo sera content.

Sinon si tu souhaitais faire un COD ou un WOW, je ne vois pas en quoi ça dérangerait du moment que tu as conscience que c'est infaisable et que tu n'emmènes personne avec toi dans le projet. Même si c'est perdu d'avance pour ce qui est de le terminer, si tu as codé certaines fonctionnalités qui t'ont permis d'en apprendre plus sur Irrlicht et/ou d'autres bibliothèques, c'est tout bénéf. En plus tu apprends à connaître tes limites et les enjeux d'un projet. Toutes les connaissances que tu as acquis dans tes échecs te permettront de construire un petit projet par la suite.


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#7 

01-07-2012 18:32:11

Super-Vlan
Membre
Date d'inscription: 28-06-2012
Messages: 10
Site web

Merci pour vos réponses. Je me suis peut-être un peu emporté et je m'en excuse mais la réponse John laissais croire que  je n'était qu'un petit rigolo de 12 ans sans aucune connaissance préalable qui souhaitais révolutionner le monde du jeu vidéo (ce qui n'est évidement pas le cas). J'ai pensé que je me devais de réagir même si j'y suis peut-être aller un peu fort.

Donc je vous remercie pour vos réponses et je vais m'atteler au décryptage de toutes ces infos. Je pense que ce seras ma seule grosse difficulté sur mon programme (ensuite, un peu de gui et uniquement de la modification de tableau...) et je vous remercie donc de m'aider!

@Magun : Ne t'inquiète pas, je ne doute pas de la "sagesse" de cette communauté ni de ses compétences sinon je n'aurais pas poster ma question ici mais sur le forum anglais! Je me suis cependant dis que pour la compréhension, le forum français était l'option la plus sympathique smile.

Je vous souhaite donc une bonne prog en espérant que mon petit éclat tombe dans l'oubli rapidement!

Super-Vlan

[édit] : Suite à vos indications, la caméra fonctionne! Merci Beaucoup!

Dernière modification par Super-Vlan (01-07-2012 18:56:37)

Hors ligne


#8 

01-07-2012 19:33:17

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

J'ai peut-être paru sec mais ce n'était pas mon intention. Difficile de faire ressentir le ton d'une discussion sans ambiguïté à l'écrit. Cela dit, j'ai réagi de cette manière parce que plusieurs choses m'ont fait sentir que tu ne touchais que depuis peu au C++.
Tu as commencé par dire que tu suivais un tuto, jusque-là pas de problème. Ensuite, tu as dis :

Super-Vlan :

Et voilà mon problème, je ne sais pas quoi mettre dans la fonction IScendeNodeAnimator du trackballcamera.cpp!!! ".


Confondre un type de renvoi et le nom d'une fonction est quelque peu énorme comme erreur, c'est quand même la base.
Cumulé avec le poste suivant avec le :

Super-Vlan :

"error C2572: 'CSceneNodeAnimatorCameraTrackball::createClone' : redéfinition du paramètre par défaut : paramètre 2 ". Je ne sais que faire!!!"


Je me suis dit que tu débutais en C++. Du coup, le "Je suis un tuto et j'ai un problème." et devenu pour moi un "J'ai copié un tuto mais ça marche pas, qu'est-ce que je fais?" d'où ma réaction. Car il ne faut pas se leurrer, des personnes qui s'attaquent aux gros morceaux sans avoir les bases parce qu'ils veulent "gagner du temps", il y en a beaucoup. Quand un nouveau s'intéresse à Irrlicht, je suis content mais s'il n'a aucune base, il décrochera aussi sec.

Tu as dit : "John laissais croire que  je n'était qu'un petit rigolo de 12 ans sans aucune connaissance préalable qui souhaitais révolutionner le monde du jeu vidéo". Le seul point que je voulais soulever dans les trois que tu as donné, c'est ton manque de connaissances en C++. Ce qui est le cas apparemment, je ne connais pas le C mais de ce j'ai pu entendre par des personnes qui ont appris et utilisé les deux, le C et le C++ sont 2 langages avec une optique différente. Maintenant, je ne demande à personne d'avoir un haut niveau en C++ sinon je n'aurais rien à faire ici non plus.

Super-Vlan :

"Je vous souhaite donc une bonne prog en espérant que mon petit éclat tombe dans l'oubli rapidement!"


Ne t'inquiètes pas pour ça, notre communauté est excellente sur ce plan. Lorsque un problème est résolu et on ne reviendra pas dessus sauf s'il y a du "foutage de gueule" mais ce ne sera pas ton cas.

Sur ce, comme tu le dis, bonne prog!


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
46 invités en ligne
Aucun membre connecté
RSS Feed