OLPCities/Using the Time-Space Portal: Difference between revisions
No edit summary |
No edit summary |
||
Line 218: | Line 218: | ||
<center>PREVIOUS LESSON: [[Using Transit]]...........TOC :[[OLPCities |
<center>PREVIOUS LESSON: [[OLPCities/Using Transit|Using Transit]]...........TOC :[[OLPCities/Tutorials|Tutorials]]..........NEXT LESSON : [[OLPCities/Shooting in the bad guys|Shooting in the bad guys]]</center> |
||
[[Category:OLPCities Tutorials]] |
[[Category:OLPCities Tutorials]] |
Latest revision as of 00:34, 14 February 2007
Many of the residents of the OLPCity (it's the case of our heroe, the avatar, you...) works for the "Time-Space Inc." This company developed the "Time-Space Portal" for travels in the time and space.
The Portal is used to go to some place/time of the past and is the "support" for many activities of History.
Going to some place in time, the kid needs to enterview all the characters at the Lot to know how they live etc. etc.
The company only send a new Portal for the return when the kid ends his mission.
The "Time-Space Portal" is used also for space travels, to go to (and return from) another planet . Usually he will go to the planet "Pink" where there are the "gold beans" he needs to collect - they are very valuable. But he will have some chalenges to do it. The PINK planet's residents are the "echoos", monsters that like to send people to the near past. These space travels are the non-educational part of the OLPCity project. Only funny games.
A "Time-Sapace Portal" is an animation and a link. It has two "shadows" One for collison and the other to do the link.
To do the animation we have the lines:
ts.setAnimationLoop(0,3); ts.setAnimationSpeed(4); ts.setAnimation(0); ts.setAnimationRepeat(-1);
At this lesson we will present the code of a Lot having a "Time-Space Portal". Using the Portal, you will go to the Lot (code at the next lesson) of the Pink planet. At the next lesson we will explain how to write the code of the "shoot" against the "echoo" and some other tricks.
The code:
<html> <head> <script language="Javascript" src="http://www.dmu.com/olpc/gamelib_core.js"></script> <script language="Javascript" src="http://www.dmu.com/olpc/gamelib_sprites.js"></script> <script language="Javascript" src="http://www.dmu.com/olpc/gamelib_keyboard.js"></script> <script language="Javascript"> function init(){ Sp_linuxcompatible=true; Gl_preloader("floorW05N07.gif"); Gl_preloader("transit.gif"); Gl_preloader("avat1.gif"); Gl_preloader("timespace.gif"); Gl_preloader("timespaceS.gif"); Gl_preloader("timespaceS0.gif"); entryt = new Gl_cookie("entt"); upkey=Kb_trapkey("UP"); downkey=Kb_trapkey("DOWN"); rightkey=Kb_trapkey("RIGHT"); leftkey=Kb_trapkey("LEFT"); av=new Sp_Sprite(); av.setImage("avat1.gif",32,32,4,2); av.setXlimits(5,610); av.setYlimits(5,385); if(entryt.value=="E"){ av.moveTo( 550,165); av.setFrame(0); entryt.setvalue("G"); } else if(entryt.value=="W"){ av.moveTo(30,175); av.setFrame(1); entryt.setvalue("G"); } else{ av.moveTo( 300,170); av.setFrame(3); } av.setFrameByDirection(90,90,1,180,180,3,270,270,0,0,0,2); av.setAnimation(0); av.setZ(10); av.collides=true; av.useHitEvents(true); av.setAnimationSpeed(3); av.switchOn(); floor=new Sp_Sprite(); floor.setImage("floorW05N07.gif",614,390,1,1); floor.setXlimits( 0,616); floor.setYlimits( 0,390); floor.setFrame(0); floor.moveTo(0 , 0 ); floor.setZ(5); floor.switchOn(); transitW=new Sp_Sprite(); transitW.setImage("transit.gif",20,20,1,1); transitW.setXlimits( 0,614); transitW.setYlimits( 0,390); transitW.setFrame(0); transitW.moveTo(5 , 180 ); transitW.setZ(12); transitW.makeHard(); transitW.switchOn(); ts=new Sp_Sprite(); ts.setImage("timespace.gif",114,110,1,4); ts.setXlimits(0,614); ts.setYlimits(5,280); ts.moveTo(345, 80); ts.setFrame(0); ts.setAnimationLoop(0,3); ts.setAnimationSpeed(4); ts.setAnimation(0); ts.setZ(6); ts.setAnimationRepeat(-1); ts.collides=true; ts.switchOn(); tsS=new Sp_Sprite(); tsS.setImage("timespaceS.gif",62,14,1,1); tsS.setXlimits( 0,614); tsS.setYlimits( 0,390); tsS.setFrame(0); tsS.moveTo( 385 , 150 ); tsS.setZ(0); tsS.makeHard(); tsS.switchOn(); tsS0=new Sp_Sprite(); tsS0.setImage("timespaceS0.gif",95,79,1,1); tsS0.setXlimits( 0,614); tsS0.setYlimits( 0,390); tsS0.setFrame(0); tsS0.moveTo( 355 , 80 ); tsS0.setZ(0); tsS0.makeHard(); tsS0.switchOn(); Gl_hook("timestep()"); Gl_start(); } function timestep(){ av.setSpeed(0); av.setAnimationRepeat(0); if(rightkey.pressed){ av.setDir(1,0); av.setAnimationRepeat(-1); av.setSpeed(2); } else if(leftkey.pressed){ av.setDir(-1,0); av.setAnimationRepeat(-1); av.setSpeed(2); } else if(downkey.pressed){ av.setDir(0,1); av.setAnimationRepeat(-1); av.setSpeed(2); } else if(upkey.pressed){ av.setDir(0,-1); av.setAnimationRepeat(-1); av.setSpeed(2); } if(av.hasHit(transitW)){ entryt.setvalue("E"); window.location="tut5.html"; } if(av.hasHit(tsS)){ window.location="tut6.html"; } }//timestep </script> </head> <title>TUTCITY </title> <body bgcolor="black" onload="init()" > </html>
Look the Lot of the exercice at our web server: http://www.dmu.com/olpctut/tut5e.html.