# VRML V2.0 utf8 # Projeto ARCA # Grupo Percepção em Ambientes de Realidade Virtual # protótipo da batata que apodrece quando tocada PROTO Batata [ exposedField SFBool enabled FALSE exposedField SFVec3f scale 1 1 1 exposedField SFVec3f translation 0 0 0 ] { Transform { scale IS scale translation IS translation children [ Shape { appearance Appearance { material DEF materialBatata Material { specularColor 1 1 1 diffuseColor 1 1 0 ambientIntensity 0 transparency 0 shininess 0.2 } } geometry Sphere { radius 2 } } DEF corBatata ColorInterpolator { key [ 0 ,0.5 ,1 , ] keyValue [ 1 1 0 ,0.6 0.6 0 ,0.2 0.2 0 , ] } DEF relogioBatata TimeSensor { cycleInterval 60 enabled TRUE loop FALSE startTime 0 stopTime 0 } # essa não precisa ser a única maneira de iniciar o apodrecimento da batata; # basta gerar um evento ... DEF toqueBatata TouchSensor { enabled TRUE } DEF procToqueBatata Script { eventIn SFBool batataTocada eventOut SFBool iniciaApodrecimento field SFBool bLigado FALSE url [ "javascript: function sensor_tocado(value) { if (!bLigado) { bLigado = TRUE; iniciaApodrecimento = TRUE; } }", ] } ] } ROUTE toqueBatata.isActive TO procToqueBatata.batataTocada ROUTE procToqueBatata.iniciaApodrecimento TO relogioBatata.set_enabled ROUTE toqueBatata.touchTime TO relogioBatata.set_startTime ROUTE relogioBatata.fraction_changed TO corBatata.set_fraction ROUTE corBatata.value_changed TO materialBatata.set_diffuseColor # falta a parte de ligar o relógio # ROUTE procToqueBatata.iniciaApodrecimento TO relogio.set_enabled }
Para visualizar o jardim, você precisa de: