Home Tutorials Download Beta Store Forum Documentation KnowledgeBase Wiki Blog

ShiVa3D

Return to Game programming

simple déplacement

All about the StoneScript

simple déplacement

Postby kilik » 21 Oct 2007, 02:42

Bonjour je voudrais essayé de réalisé un jeu je fait du xsi
j'ai déja touchez a du code pour faire un mod hl1 a base de copier coller
en fait l'aide est pas assez complete
l'idée serait de faire un shootem up genre metal slug
si qq pourais m'aider juste a faire bouger un carré avec les touches du clavier je pense pouvoir me débrouillé pour la suite !=<br><br>Message édité par : kilik, à : 02-11-2007 à 23:05
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby philip » 21 Oct 2007, 18:59

Bonjour Kilik,

Je vais te concocter un post qui va te permettre de créer ta première application avec la meilleure compréhension possible, j'en profiterai pour en faire un nouveau tutorial.
N'hésites donc pas à faire tes remarques afin que la compréhension soit totale.

Laisses moi 24h pour te faire ce post :)

Phil.
philip
Platinum Boarder
Platinum Boarder
 
Posts: 619

Re:simple déplacement

Postby kilik » 22 Oct 2007, 03:45

oh manifique une réponce en casi temps réel que du bonheur que demande le peuple lol !
sinon je me demander pourquoi n'avoir pas faire un système de prog
similère a world édit l'éditeur de map de warcraft 3 !
c'est quand même plus simple d'acces tout le monde peu s'y mettre en 2 clique!
et on peu faire des monstres sans tapez une seul ligne de code!
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby NiCoX » 22 Oct 2007, 08:35

Bonjour Kilik,

Vous êtes beaucoup à poser nous faire cette remarque.

Nous avons choisi l'approche "programmeur" car c'est elle qui est utilisée majoritairement dans les studios de jeu. Elle permet une généricité et un contrôle total lorsqu'on définit un comportement : en effet, et pour reprendre votre exemple, il y a autant de comportements d'attaque de monstre qu'il existe de programmeurs, et un système trop haut niveau serait trop limitatif.

Par contre, étant donné que notre volonté est de plaire également aux "non programmeurs", nous sommes en train d'élaborer un système de "programmation hybride" qui permettra, un peu à la manière de flash, d'attaquer les choses soit par le script, soit par le click. Ce sera une des fonctionnalités majeures de la version 1.6.0.
User avatar
NiCoX
Platinum Boarder
Platinum Boarder
 
Posts: 5647
Location: France

Re:simple déplacement

Postby philip » 22 Oct 2007, 14:51

Voici donc la marche a suivre pour pouvoir déplacer un objet avec ShiVa,

l'objectif de ce post est de montrer tous les aspects du développement de l'interactivité dans ShiVa.
L'interactivité en 18 étapes et moins de 3 minutes:

I, préparer son espace de travail:
- menu ShiVa, dans l'interface générale, paramètres -> ajouter. sélectionner l'espace de travail qui vous intéresse.

II, créer un Game:
- data explorer, créer -> Game. Entrer le nom du jeu.
--> un Game est une application, c'est lui qui sera exporter le moment venu et qui contient toutes les ressources à mettre en interaction.

III, charger le game:
- double cliquer sur le Game, disponible dans le répertoire Game.

IV, créer une Scene:
- data explorer, créer -> Scene. Entrer le nom de la Scene (ici 'MyScene'). Cette étape est remplaçable par l'import d'une Scene.

V, référencer la Scene:
- drag and dropper la Scene (disponible dans le repertoire Scenes dans le data explorer) vers la liste de l'onglet Scenes du Game Editor

VI, créer un AIModel principal:
- data explorer, créer -> Ressources -> AIModel. Entrer le nom de l'AIModel (ici 'MyMainAIModel').

VII, référencer cet AIModel dans le Game:
- drag and dropper l'AIModel que vous venez de créer (disponible dans le repertoire Ressources/AIModels dans le data explorer) vers le champ User Main AI's de l'onglet Main du Game Editor

VIII, créer une caméra:
- data explorer, créer -> Model -> Camera. Entrer le nom du Model de Camera (ici 'MyCamera').

IX, créer un AIModel de pilotage de la Caméra:
- data explorer, créer -> Ressources -> AIModel. Entrer le nom de l'AIModel (ici 'MyAIModelCamera').

X, rendre la caméra intelligente:
- ouvrez votre caméra en double cliquant sur la caméra dans le data explorer (répertoire Models),
- sélectionnez la caméra en cliquant dessus dans le Scene Viewer,
- drag and dropper l'AIModel que vous avez précédemment créé sur la Camera dans le Scene Viewer.

XI, référencer la caméra dans votre Game:
- drag'n'droppez le Model de Camera (disponible dans le repertoire Models dans le data explorer) vers le champ Camera de l'onglet Main du Game Editor

A présent vous avez la totalité de votre application qui est prête, il ne reste plus qu'a la rendre intelligente.
Pour ça nous allons éditer les 2 AIModel que nous avons créé:

XII, charger la Scene:
- ouvrez l'AIModel MyMainAIModel (disponible dans le repertoire Ressources/AIModels dans le data explorer) - double click,
- créez le handler 'onInit' (click bouton droit sur attribute dans l'AIModel Editor)
- dans ce handler, chargez la Scene que vous avez créé:
Code: Select all
application.setCurrentUserScene( "MyScene" )

- compilez (F7)

XIII, positionner la Camera:
- ouvrez l'AIModel MyAIModelCamera (disponible dans le repertoire Ressources/AIModels dans le data explorer) - double click,
- créez le handler 'onInit' (click bouton droit sur attribute dans l'AIModel Editor)
- dans ce handler, positionnez la Camera à loisir:
Code: Select all
object.setTranslation( this.getObject(), 10, 10, 10, object.kGlobalSpace )
object.lookAt( this.getObject(), 0, 0, 0, object.kGlobalSpace, 1 )

- compilez (F7)

A ce stade votre application doit charger la Scene et vous donner un point de vue depuis la position 10,10,10 et avec un 'look at' de la camera vers le centre de la Scene.

Pour ceux qui en sont encore au stade du 'je sais pas lancer mon application':
* lorsque vous charger un Game (double click, repertoire Game dans le data Explorer) apparait 3 icônes de pilotage d'application en haut à droite: Play/Pause, Replay, Step (Replay est un redémarrage complet de l'engine)



XIV, créer un AIModel de déplacement pour l'objet à déplacer:
- data explorer, créer -> Ressources -> AIModel. Entrer le nom de l'AIModel (ici 'MyObjectAIModel').

XV, rendre un objet intelligent dans la Scene:
- selectionnez l'objet que vous souhaitez déplacer dans votre Scene,
OU
- drag and droppez son Model dans la Scene, et sélectionnez le,
ensuite
- drag and droppé l'AIModel 'MyObjectAIModel' sur lui,
- Mettez un Tag sur cet Objet: click bouton droit sur l'objet dans le Scene Viewer -> Editer le Tag de la selection, entrer son tag: ici 'MyObject',
- Sauvez la scene.

XVI, rendre l'objet réceptif aux évènements:
- Ouvrez l'AIModel 'MyObjectAIModel',
- ajouter le Handler Personnalisé 'onDroite'
- y mettre le code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x+1, y, z, object.kGlobalSpace )

- ajouter le Handler Personnalisé 'onGauche'
- y mettre le code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x-1, y, z, object.kGlobalSpace )

- ajouter le Handler Personnalisé 'onHaut'
- y mettre le code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x, y, z+1, object.kGlobalSpace )

- ajouter le Handler Personnalisé 'onBas'
- y mettre le code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x+1, y, z-1, object.kGlobalSpace )


XVII, récupérer les entrées/sorties:
- Ajoutez le Handler 'onKeyboardKeyDown' dans l'AIModel MyMainAIModel
- y mettre le code:
Code: Select all
local hObject = scene.getTaggedObject ( application.getCurrentUserScene ( ), "MyObject" )

if ( kKeyCode == input.kKeyDown) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onBas" )
elseif( kKeyCode == input.kKeyUp) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onHaut" )
elseif( kKeyCode == input.kKeyRight) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onDroite" )
elseif( kKeyCode == input.kKeyLeft) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onGauche" )
else
   log.message ( "la touche de code : " .. kKeyCode )
end


A présent l'AIModel principale récupère les touches clavier et créé de nouveaux évènements pour l'AIModel de l'objet à déplacer.
Celui ci reçoit les évènements et les traites afin de se déplacer.
Le contrat est donc rempli en 17 étapes simples.

Maintenant nous allons donner un peu d'interpolation à ce déplacement.
pour ca, nous allons manipuler l'AIModel 'MyObjectAIModel'

XVIII, faire un déplacement interpolé:
- ouvrez l'AIModel 'MyObjectAIModel'
- Ajoutez l'attribut 'tx', type number
- Ajoutez l'attribut 'ty', type number
- Ajoutez l'attribut 'tz', type number
- Ajoutez un State 'move'
- Dans 'onEnter' mettre le code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
this.tx(x)
this.ty(y)
this.tz(z)

- dans 'onLoop' mettre le code:
Code: Select all
object.translateTo( this.getObject( ), this.tx(), this.ty(), this.tz(), object.kGlobalSpace, 5*application.getLastFrameTime( ) )

- dans les handler onHaut:
Code: Select all
this.tx( this.tx()+1)

- dans les handler onBas:
Code: Select all
this.tx( this.tx()-1)

- dans les handler onDroite:
Code: Select all
this.tx( this.tz()+1)

- dans les handler onGauche:
Code: Select all
this.tx( this.tz()-1)


Voila!
A présent nous avons dans l'AIModel 'MyObjectModel' des variables tx, ty, tz qui représente la postion de destination de l'objet, nous avons un state qui se charge a chaque tour de boucle de déplacer de manière interpolée l'objet voulu et enfin nous changeons la position de destination lors de la réception des évènements claviers.

Tout ceci est bien sur un exemple ultra simpliste qui n'a pour but que de vous donner une idée de la marche a suivre pour démarrer.

J'espère que ce sera assez clair, Faites moi part de vos questions et remarque!

Phil<br><br>Message édité par : philip, à : 22-10-2007 à 17:20
philip
Platinum Boarder
Platinum Boarder
 
Posts: 619

simple move of an object, from scratch

Postby philip » 22 Oct 2007, 15:28

This is the step by step to follow to be able to move an object in ShiVa, from scratch,

the target of this post is to show all the aspects of the development of the interactivity in ShiVa in 18 steps

I, prepare your workspace:
- menu ShiVa, general menu, settings -> add. select the workspace of your choice.

II, create a Game:
- data explorer, create -> Game. Enter the name of your Game.
--> a Game is an application, it's the highest level resource, with will be exported/published a least and whitch contains all the other resources.

III, load the game:
- double click on the Game, findable in the Games directory.

IV, create a Scene:
- data explorer, create -> Scene. Enter the nom of your Scene (here 'MyScene'). this step can be done by a Scene importation (COLLADA).

V, reference the Scene:
- drag'n'drop the Scene (data explorer->Scenes directory) to the main tab Scenes list of the Game Editor

VI, create a Main User AIModel :
- data explorer, create -> Ressources -> AIModel. Enter the name of your AIModel (here 'MyMainAIModel').

VII, reference this AIModel in the Game:
- drag'n'drop the AIModel you just create (data explorer/Ressources/AIModels ) to the Main Tab User Main AI's field in the Game Editor

VIII, create a camera:
- data explorer, create -> Model -> Camera. Enter the name of the Model of Camera (here 'MyCamera').

IX, create an AIModel for the Camera:
- data explorer, create -> Ressources -> AIModel. Enter the name of the AIModel (here 'MyAIModelCamera').

X, give some intelligence to the camera:
- open your camera (double click on it in the data explorer (Models directory),
- select the camera by clicking on it in the Scene Viewer,
- drag'n'drop the AIModel you just created on the Camera dans le Scene Viewer.

XI, reference the camera in your Game:
- drag'n'drop the Model of Camera (data explorer/Models directory) to the Camera field in the main tab of the Game Editor

Now you have the whole application ready, you just have to make it smart!
For this, we are going to edit the 2 AIModels we just created:

XII, load the Scene:
- open the AIModel MyMainAIModel (data Explorer/Ressources/AIModels) - double click,
- create the handler 'onInit' (click right bouton on 'attribute' in the AIModel Editor)
- in this handler, load the Scene :
Code: Select all
application.setCurrentUserScene( "MyScene" )

- compile (F7)

XIII, place the Camera:
- open the AIModel MyAIModelCamera (data Explorer/Ressources/AIModels) - double click,
- create the handler 'onInit' (click right bouton on 'attribute' in the AIModel Editor)
- in this handler, place the Camera as you want:
Code: Select all
object.setTranslation( this.getObject(), 10, 10, 10, object.kGlobalSpace )
object.lookAtthis.getObject(), 0, 0, 0, object.kGlobalSpace, 1 )

- compile (F7)

At this step you application must load the scene et show you the scene from the 10,10,10 camera position, with a look at to 0,0,0 position

For those who still don't know 'how to play an application':
* When you load a Game (double click, data Explorer/Game) 3 icôns appear in the right top corner, in order to drive the application: Play/Pause, Replay, Step (Replay is a complete engine restart)



XIV, create an AIModel to move an object :
- data explorer, create -> Ressources -> AIModel. Enter the name of the AIModel (here 'MyObjectAIModel').

XV, make it smart:
- select the object that you want to move in the Scene,
OR
- drag'n'drop a Model in the Scene and select it,
next
- drag'n'drop the AIModel 'MyObjectAIModel' on it,
- Edit the Tag of this object: click right butTon on the objet in the Scene Viewer -> Edit the Tag of the selection, enter a tag: here 'MyObject',
- Save the scene.

XVI, make the object receptive to the event
- Open the AIModel 'MyObjectAIModel',
- add the Custom Handler 'onDroite'
- put the code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x+1, y, z, object.kGlobalSpace )

- add the Custom Handler 'onGauche'
- put the code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x-1, y, z, object.kGlobalSpace )

- add the Custom Handler 'onHaut'
- put the code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x, y, z+1, object.kGlobalSpace )

- add the Custom Handler 'onBas'
- put the code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x+1, y, z-1, object.kGlobalSpace )


XVII, catch the input/output:
- add the core Handler 'onKeyboardKeyDown' in the AIModel MyMainAIModel
- put the code:
Code: Select all
local hObject = scene.getTaggedObject ( application.getCurrentUserScene ( ), "MyObject" )

if ( kKeyCode == input.kKeyDown) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onBas" )
elseif( kKeyCode == input.kKeyUp) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onHaut" )
elseif( kKeyCode == input.kKeyRight) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onDroite" )
elseif( kKeyCode == input.kKeyLeft) then
   object.sendEvent ( hObject, "MyObjectAIModel", "onGauche" )
else
   log.message ( "la touche de code : " .. kKeyCode )
end


Now the Main AIModel catch the keyboard input and create new event for the object's AIModel to move.
This one receive the events and manage them in order to move itself.
the work is done in 17 Steps.

But we can do that better, by adding some interpolation moves.
For this work we only touch the AIModel 'MyObjectAIModel'.

XVIII, make a interpolated move:
- open the AIModel 'MyObjectAIModel'
- add the attribute 'tx', type number
- add the attribute 'ty', type number
- add the attribute 'tz', type number
- Add a State 'move'
- In the 'onEnter' put the code:
Code: Select all
local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
this.tx(x)
this.ty(y)
this.tz(z)

- in 'onLoop' mettre le code:
Code: Select all
object.translateTo( this.getObject( ), this.tx(), this.ty(), this.tz(), object.kGlobalSpace, 0.5 )

- int the handler onHaut:
Code: Select all
this.tx( this.tx+1)

- int the handler onBas:
Code: Select all
this.tx( this.tx-1)

- int the handler onDroite:
Code: Select all
this.tx( this.tz+1)

- int the handler onGauche:
Code: Select all
this.tx( this.tz-1)


it's done!
Now you have in the AIModel 'MyObjectModel' : the variables tx, ty, tz whitch store the targeted position, you have a state witch manage frame by frame the interpolation of the object move and we change the targeted position by receiving event from keyboard input.

All of this is, of course a very simple example, in order to give you the first step to folow to start something.

I hope that is clear enougth, please give me your comments and questions!

Phil
philip
Platinum Boarder
Platinum Boarder
 
Posts: 619

Re:simple déplacement

Postby kilik » 22 Oct 2007, 23:28

ok je crois je comprend pas grand chose!
c'est un bordel monstrueux a trouvé la logique dans tout ca entre les menu^^
pour l'instant j'ai honte!
j'ai une scène j'importe un models par drag and drop rien ne ce passe;(-
sur une scène déja toutes faite ca marche !

je résume ce que j'ai compris :
on dois importe dans le game editor par drag and drop
mais on peu pas sortir des objets du game editor par drag and drop;(-
sinon ca a pas l'air dur mais c'est tout sauf klr !(;è-

2eme essaie toujours bloquer pour afficher un objet dans ma scène lol-
bon va déja mieux !
quand je lance j'ai une eureur AI error: check log for détails c'est le début de la réussit lol<br><br>Message édité par : kilik, à : 23-10-2007 à 02:26
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby philip » 22 Oct 2007, 23:52

Effectivement ça te semble compliqué car je n'ai même pas vraiment compris ce que tu as voulu dire.

Pour 'sortir' des éléments du Game Editor, tu dois utiliser le bouton droit de la souris -> supprimer ou retirer selon.

Je suis désolé si j'ai pas été clair dans mes explications.
dis moi plutôt alors ou tu en es et ce que tu souhaite faire et je te guiderai ainsi, pas a pas.

phil.
philip
Platinum Boarder
Platinum Boarder
 
Posts: 619

Re:simple déplacement

Postby kilik » 23 Oct 2007, 23:46

ok j'ai réussit a faire une scène un simple cube avec un sol un lumière une ombre c'est manifique !:)

je bloque sur l'Etape 6 : Création du script de caméra

j'ai placer ma caméra dans le général caméra du user
je lui est rajouté sont ia dans le model j'ai save
je rajoute le code dans l'ia je compile sauvegarde!
la en théorie on est bon je lance j'ai ma scène afficher mais rien ne ce passe!

dslé d'abusé de votre patience !

ok j'ai recommencé nouvelle scène nouveau dossier !
je crée une scène un game j'import ma scène dedans
une cam idem je rajoute l'ia avec le start init pour lui dire qu'elle scène load
je lance résultat écran noir;(=

elle est ou l'eureur ca marche la premiere fois la deuxieme je fait la même chose et ca marche plus(-;

bon demain normalement on est bon !! je perd pas espoir!:)<br><br>Message édité par : kilik, à : 24-10-2007 à 01:47
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby philip » 24 Oct 2007, 10:15

Bonjour,

c'est bien! on avance!

Alors étapes 6, quand tu ouvres ta caméra, tu dois avoir uniquement la caméra dans le scene viewer, ainsi tu es sur que tu as ta camera en mode Model, ce qui te permet de modifier ton modèle (et pas l'instance de la camera).
Ensuite tu la sélectionne, donc tu click dessus (ou sélection carré), elle devrait donc s'highilighter (devenir gris clair pas transparente). la tu drag'n'drop ton AIModel dessus, tu sais que c'est bon lorsque l'icone cursor passe d'une feuille avec un sens interdit a une simple feuille, la tu sais que c'est bon.

ensuite tu sauves: menu scene viewer, Scene->Sauver

la normalement t'es bon. pour savoir si tu rentre bien dans le 'onInit' de ton AIModel de camera, rajoute donc un petit:
Code: Select all
log.message ("le onInit est appelé!!" )

et regarde ton log reporter quand tu relance avec la touche replay (ctrl-F9) ou le bouton qui tourne sur lui meme au centre des 3 boutons de controle.

En effet le onInit se déclenche au lancement de l'AIModel, mais si tu ne relance pas, alors l'onInit ne sera pas appelé car dans le runtime, il a déjà été appelé.

Je te rappel que ShiVa te permet de faire du realtime developpement, ce qui te permet de coder pendant que ton jeux tourne et donc de valider en temps réel les modifications de code! c'est une super possibilité mais qui peut aussi perturber, notamment dans le cas des tests de code d'initialisation, car l'init se fait au démarrage.

Dans le cas de ton deuxieme essai, je remarque que tu n'indiques pas avoir rajouter dans ton nouveau Game l'AIModel main dans la user main AIs list, ce qui induit donc que tu ne load pas la Scene (application.setCurrentUserScene() ).

je vais certainement faire une vidéo tutorial de ce post histoire que ce soit encore plus simple a faire :)

continu et abuse de notre patience lol.

Phil.
philip
Platinum Boarder
Platinum Boarder
 
Posts: 619

Vidéo tutorial pour une application simple

Postby philip » 24 Oct 2007, 18:23

Salut,

voila le lien vers un vidéo tutoriel pour le post
http://developer.stonetrip.com/creation ... ple-5.html

jette un oeil, ça te semblera plus simple avec la vidéo.

Bonne continuation,

Phil.
philip
Platinum Boarder
Platinum Boarder
 
Posts: 619

Re:simple déplacement

Postby kilik » 25 Oct 2007, 01:21

ok ca bouge !!!
alors premier problème rencontré le script pour la version francaise et différent de l'anglais!
enfin dans l'exemple 1 ca marche mais y'a un +1

ajouter le Handler Personnalisé 'onBas'
- y mettre le code:
Code:

local x,y,z = object.getTranslation( this.getObject(), object.kGlobalSpace )
object.setTranslation(this.getObject(), x+1, y, z-1, object.kGlobalSpace )

sur l'axe X en rab !

dans le 2eme exemple le déplacement interpolé
chez moi l'objet ce déplace que sur l'axe gauche droite même quand je vais en bas ou en haut
ensuite il bouge pas a droite si je fait pas un clique a gauche avant et ainsi de suite !
par exemple si je fait 5 fois bas puis droite le model va ce déplacer de 5 fois vers la gauche et 6 fois vers la droite!
ok j'ai rien dis ca marche faut juste remplacer tx par tz! dans le code donner^^

j'ai pas de log message dans le log reporter

maitenant faudrais que le déplacement du model sois limité pour pas sortir de la caméra et qui s'arrete pas quand on laisse la flèche enfoncé!
faudrais aussi m'espliquer les bases de la collision !
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby kilik » 27 Oct 2007, 21:43

ok j'ai rajouté un cubeB avec collider plus un ia dynamic
dans ma scène dans l'espoir de voir le cube1 stopé mais ca a pas l'air si simple de gerer les collisions!(-

j'ai essayé de comprendre les codes d'ex comme le fps ou le car pour amélioré le déplacement de mon cube1
j'aime bcp les roues les roues de la voiture annimé par les bones:)

donc j'ai qq question qui pourais m'aider la comprendre le reste tout seul:

!j'ai défini une variable (objet)
je voudrais crée cette objet dans ma scène en fonction de la position de mon cube1
mais quand je compile il me dis que ma variable est pas déclaré
donc pour définir une variable je crée la variable
dans le handler je tape this.variable (le nom de l'objet?)


!autre chose que je comprend pas dans le states
dans cette exemple le onloop si je laisse appuyer la touche la fonction onloop devrais tourné en boucle ?
si je veut faire accéléré mon personnage en fonction du nombre de bonus qui l'a ramassé par ex:
je crée une variable(number) speed
je défini la base this.speed(1)
si le joueur ramasse un bonus this.speed(this.speed(+1))
dans le onbas this.tz( this.tz()+speed)
j'ai bon ? ou pas;(-

!je voudrais que mon perso ramasse un bonus speed donc;(-
je crée un objet je lui rajoute une ia avec un simple handlers onsencorcollision ?
et je peu définir une variable qui est dans une autre ia sans problème.
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby kilik » 30 Oct 2007, 00:42

ok ok j'ai fait plusieur test shiva plante lol ! surement du a une codage made in kilik !
j'ai voulut rajouté une boucle (while do) dans le code pour que le mouvement reste continue quand je laisse appuyer !

j'ai aussi de copier le code dans le fps demo
if ( this.bHandleInputs ( ) )then
avec la variable boolen et la fonction
j'ai du oubliez qq chose (;- par ce que bouge plus !

arf je commence a avoir mal la tête !
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Re:simple déplacement

Postby kilik » 31 Oct 2007, 18:55

j'ai remplacer

object.translateTo( this.getObject( ), this.tx(), this.ty(), this.tz(), object.kGlobalSpace, 0.5 )

par

object.setTranslation (this.getObject( ), this.tx(), this.ty(), this.tz(), object.kGlobalSpace)


ben ca change rien lol ;(-
User avatar
kilik
Expert Boarder
Expert Boarder
 
Posts: 158

Next

Return to Game programming