Bah il te faut accéder à ton véhicule via la classe HUD, tout comme on le ferait avec le pawn pour ses points de vie.
Si ça n'existe pas, tu doit pouvoir le faire non ?
Bah il te faut accéder à ton véhicule via la classe HUD, tout comme on le ferait avec le pawn pour ses points de vie.
Si ça n'existe pas, tu doit pouvoir le faire non ?
- Mon projet de jeu : EXIL : Des morts, de la plateforme, des colosses et des saucisses.
!Portfolio! - Twitter - Google+ - LinkedIn
Ben, justement, par où j'y accède, je capte pas la syntaxe, j'ai essayé des trucs comme Canvas.drawtext = (string(UTVehicle.VSize(Velocity)),"bidulchouette_ ici_ce_sont_que_des_options"), et évidemment ça marche pas, l'affichage reste bloqué à 0, parce que je me doute bien qu'il ne sait pas vers quel UTVehicle pointer, mais je vois pas ce que je pourrais faire d'autre...
Les classes/objets statiques sont une notion qui est utilisée dans l'UDK? Je ne me souviens plus.
Si oui tu fais une instance statique de ton objet véhicule_du_joueur, comme ça tu peux l'appeler direct pour connaître sa vitesse.
UTVehicle vjoueur = UTVehicle.VehiculeJoueur(); // --> Renvoie un objet statique unique, qu'il crée s'il n'existe pas encore, mais ça c'est transparent pour toi (à part qu'il te faut écrire cette méthode, of course).
vjoueur.getVitesse(); // --> Et voilà!
Tu peux faire encore mieux, tu n'as pas besoin de créer l'objet, tu appelles la variable directement:
UTVehicle.VehiculeJoueur().getVitesse(); // Voilà c'est tout!
Mais je ne sais pas si l'UDK permet ça. Java, oui.
My 2 cents.
I am Moanaaaaaaa !!! (et en version legit!)
Au fait, pendant que j'y pense, il manque un choix à ton sondage: Aucun...
I am Moanaaaaaaa !!! (et en version legit!)
Qu'il est pas drôle...Spoiler Alert!
---------- Post added at 09h11 ---------- Previous post was at 07h55 ----------
Bon, j'ai essaye un truc du genre vitesse = UDKVehicleBase(PawnOwner).VSize(Velocity); où vitesse est un flottant, mais il me dit que UDKVehicleBase n'est pas la bonne expression avec le =...
Paske. Plus sérieusement rien que les marques ne me font pas rêver. Tu veux faire quelque chose d'original? Utilise des véhicules des années 30 à 50! :vieux_nostalgique: :qui_a_dit_vieux_schnock:
Oui, parce que sans doute UDKVehicleBase(...) n'est pas un objet static. Il faut que tu t'arranges pour qu'il le soit.
Au fait, si UDKVehicleBase(...) est une liste, pourquoi ne pas créer cette liste en static? Comme ça chaque véhicule de cette liste peut être appelée directement, et tu connaîtras sa vitesse. Maintenant, comme UScript est un langage bâtard, peut-être qu'il ne comprend pas bien le static et ça merde à ce niveau. Désolé de ne pas t'aider davantage. :sorry:
Heu... je ne veux pas troller, mais tu sais que CE3 à déjà la gestion des véhicules incluse en standard dans la SandBox? Je dis ça je dis rien. Mais si tu n'es pas trop avancé, ce serait peut-être utile d'y jeter un œil, voire les deux...
I am Moanaaaaaaa !!! (et en version legit!)
Hmph, pour CE3, j'ai déjà pas mal de choses que j'ai faites, et j'ai pas envie de repartir de 0 de tout les côtés.Spoiler Alert!
Sinon, qu'est-ce que tu entends par liste, UDKVehicleBase,... M'enfin, tout à l'heure, en décorticant UTHUD, j'ai eu l'idée de faire ça :
PawnOwner = Pawn(PlayerOwner.ViewTarget);
vehicle = Vehicle(PawnOwner);
vitesse = vehicle.VSize(Velocity);
avec PawnOwner qui est une instance de pawn, vehicle, une instance de Vehicle et vitesse un float... Tout ça dans le postrender de ma classe HUD perso (en gros, c'est là qu'on met tout ce qui doit se mettre à jour en temps réel), ça compile, mais j'ai toujours une vitesse bloqué à 0... Ca commence à me les briser menu là! Je sais pas ce que je foire... (Ah, oui, je fait bien un canvas.drawtext(string(vitesse)) dans la fonction qui va bien et qui est aussi appelé par postrender)
@Møgluglu, je crois que tu as tout à fait mis le doigt sur le problème majeur de Uscript...
Sinon, @war-p, une liste c'est un tableau d'objet. On dit liste car en C++ ou en Java une liste est un tableau modifiable et redimensionnable. On peut aussi y appliquer des méthodes qu'on ne peut pas faire via des tableaux "basiques". L'avantage de créer une liste est que tu n'as pas à t'occuper de sa taille, ou le type des éléments contenus.
I am Moanaaaaaaa !!! (et en version legit!)
Mouais, je vois, il y a la même chose en c#, mais je sais pas si le concept existe en uscript, peut être que si, mais ça règle toujours pas mon problème, puisque de tout façon, mon objectif et de récupérer le vsize du pawn (ici le véhicule) contrôlé par le joueur (playercontroller), il n'y a donc pas de liste à faire.
Oui, sauf que là je pensais plutôt au coté multi-joueurs de ton jeu. You see what I mean?
I am Moanaaaaaaa !!! (et en version legit!)
Hosanna Hosanna! J'ai réussis à récupérer le nom du joueur dans le HUD! Je touche au but je pense!
UTPawnOwner = UTPawn(PawnOwner);
if ( UTPawnOwner == none )
{
if ( UDKVehicleBase(PawnOwner) != none )
{
UTPawnOwner = UTPawn( UDKVehicleBase(PawnOwner).Driver);
}
}
où UTPawnOwner est la variable que l'on récupère et qui est un UTPawn, et OwnerPawn qui est un Pawn.Spoiler Alert!
C'est quand je vois ce genre de syntaxe qu'il faut se taper que je comprends pourquoi j'ai arrêté l'UDK. :consterné:
Mais cool pour toi, continue.
I am Moanaaaaaaa !!! (et en version legit!)
Perso j'ai trouvé ça assez clair, encore plus une fois indenté avec la balise PHPCode PHP:
UTPawnOwner = UTPawn(PawnOwner);
if ( UTPawnOwner == none )
{
if ( UDKVehicleBase(PawnOwner) != none )
{
UTPawnOwner = UTPawn( UDKVehicleBase(PawnOwner).Driver);
}
}
En fait je parlais plus de l'esprit général du codage. Cela me donne l'impression d'une logique peu... logique et d'un nid à erreurs et donc de bugs en jeu. Je ne m'appuie pas que sur ce morceau de code mais sur ma propre expérience (qui a pas loin d'un an maintenant). Edit: Comprenez que cela fait un an que je n'ai codé quoi que ce soit.
Je trouve que devoir écrire ça pour trouver une bête référence du véhicule principal du jeu ne donne pas envie de s'y intéresser (je parle du langage, pas du jeu ).
Mais bon.
Dernière modification par Teto ; 19/08/2011 à 16h39.
I am Moanaaaaaaa !!! (et en version legit!)
Bon, j'ai trouvé comment récupérer les informations sur le véhicule utilisé par le joueur, c'est un truc dans ce genre :
PawnOwner = PlayerOwner.Pawn;
if(V == none)
V = UTVehicle(PawnOwner);
PawnOwner est un Pawn et V un UTVehicle, ça me renvoi bien SP_Lotus_Content, c'est à dire la partie "palpable" du véhicule (les classes "Content" sont des classes filles de celles des véhicules, elles contiennent tout ce qui est mesh, sons, animations etc...) et donc on doit pouvoir récupérer les variables tel que VSize(Velocity)... Sauf qu'elle reste bloqué à 0, je comprend rien... Elle est bien mise à jour d'après mes test, mais reste bloqué sur 0, je vois pas ce qui cloche là... Bon, je continu à chercher...
En fait j'aurais pu te le dire depuis le début ça.
Pour accéder aux autres classe on utilise ça partout dans l'UDK (arme, pawn, controller, etc.).
Et je vois pas en quoi c'est choquant...
Mais comme j'avais un doute j'ai rien dit.
Pas d'erreurs d'accessed "None" dans le log ?
De plus ton V == None ne vaut-il pas mieux le virer ?
- Mon projet de jeu : EXIL : Des morts, de la plateforme, des colosses et des saucisses.
!Portfolio! - Twitter - Google+ - LinkedIn
- Mon projet de jeu : EXIL : Des morts, de la plateforme, des colosses et des saucisses.
!Portfolio! - Twitter - Google+ - LinkedIn
- Mon projet de jeu : EXIL : Des morts, de la plateforme, des colosses et des saucisses.
!Portfolio! - Twitter - Google+ - LinkedIn
Certe, mais c'était pour expliquer. C'est vrai, j'aurais dû dire: une liste est un tableau d'objets, de taille modifiable. Ou pas, d'ailleurs, mais c'est une autre histoire.
I am Moanaaaaaaa !!! (et en version legit!)
Pas. Une liste c'est une liste, un tableau c'est un tableau, stout.
Les deux sont des structures de données linéaires ordonnées. (Pour parler de manière informelle. Attention sinon on sort la théorie des catégories.)
Bon. Peut-on éviter de confondre rigueur et rigidité quand on veut essayer d'expliquer quelque chose rapidement? Merci.
--> Corollaire: @war-p: Je te conseille de te dégotter sur le net un bon tuto sur ce qu'est le Java et quels sont les types d'objets / données qu'il est capable de manipuler car comme tu peux le voir, c'est pas ici que tu trouveras de bonnes réponses, entre ceux qui sont trop imprécis et ceux qui te font savoir qu'ils sont à un niveau bien supérieur à toi.
L'informatique est (au niveau développeur je parle) est un des rares loisir / métier / passion où il y a très peu d'entraide. Soi t'es bon, soit tu peux dégager. Mais je suppose que ça vient du temps (années 80) où celui qui savait utiliser Windows à fond et taper 3 commandes Unix se prenait pour un informaticien, ce qui avait le don d'agacer furieusement les vrais informaticiens. Je pense que c'est resté. Soit t'es un pro, soit t'es un imbécile.
I am Moanaaaaaaa !!! (et en version legit!)
Honnêtement la section Unrealscript est pas mauvaise sur le fofo officiel.
Faut juste présenter son topic correctement et bien chercher si notre demande n'est pas déjà passée.
- Mon projet de jeu : EXIL : Des morts, de la plateforme, des colosses et des saucisses.
!Portfolio! - Twitter - Google+ - LinkedIn