Canvas 3d JS Library

WebGL made easy!
  • rss
  • What is C3DL?
  • Download
  • Tutorials
    • Tutorial #1: WebGL Browsers
    • Tutorial #2: A simple scene
    • Tutorial #3: Callback
    • Tutorial #4: Models
    • Tutorial #5: Light effects
    • Tutorial #6: Picking
    • Tutorial #7: Materials
    • Tutorial #8: Particle Systems
    • Tutorial #9: Camera Basics
    • Tutorial #10: Advanced FreeCamera
    • Tutorial #11: OrbitCamera
    • Tutorial #12: Advanced Camera Functions
  • Development News
  • Documentation
  • Community
  • Resources
  • Contact
  • About

Asteroids in 3D… and a bit of 2D

Cathy Leung | 1 February, 2010 | 6:12
So I’ve been working on this little demo in preparation for the upcoming (very very soon…docs left only) release of C3DL’s webGL release. I adapted it from Peter Callaghan’s Asteroids game and the models were from an old demo made as part of our user testing last year. This demo is kind of cool because it demonstrates many of the features of C3DL and puts it all together in one. Namely it uses:
  • collada model loading – you can export to collada from a good number of modeling programs including blender, 3ds max and google sketchup
  • particle systems – watch the rocks when they explode!
  • lighting – ok… this is not featured well… I’ll try to see if I can do better with it
  • picking – click on rock to identify which one
I will probably add something to that uses the effects system as that is one key component not highlighted. Its not quite done yet but I figured I’d link it anyways since I won’t have time to finish it till probably Wednesday…. I still have to add scoring and end game functionalities, the keys should be changed to a and d instead of using arrows, and I think my health bar is messed up when it drops below 25 but… its a start. I also have not tested well on webkit (there was a bug of constantly rotating ship at one point but have not been able to reproduce it) and I can’t seem to run chrome on my desktop atm so no testing there. This demo uses webGL in the main display and I painted the hud with 2D canvas. Click on the asteroids to shoot them. Use arrow keys to rotate the ship. https://cs.senecac.on.ca/~catherine.leung/c3dl/Asteroids3/asteroids.html NOTE: To see this demo you need a web browser that supports webGL and it must be enabled.
Categories
c3dl development
Comments rss
Comments rss
Trackback
Trackback

« Another demo updated Preliminary WebGL RTS Game »

6 responses

Wow, now that's a cool demo! :D

Andor Salga | 1 February, 2010 | 15:08

Wow, now that’s a cool demo! :D

It's unbelievable how far browser technology has come! I'm sure

Paul | 12 February, 2010 | 17:23

It’s unbelievable how far browser technology has come! I’m sure that your library will become ubiquitous as webgl adoption progresses.

I was wondering if there is a forum for C3DL

Phreak Nation | 1 December, 2010 | 19:58

I was wondering if there is a forum for C3DL or something because I have a few questions I was needing to have a question answered. Below is my Q. There is not enough resources that is for sure. I love C3DL and would love to see a forum put up

I want to turn the player in the direction he is moving. Thus far all he does is rotate based on the center cords. Which is annoying to say the least. Thanks for any help.

var pos = player.getPosition();
playerX += (destinationX - pos[0]) * speedCurrent;
playerZ += (destinationZ - pos[2]) * speedCurrent;
var radians = Math.atan2(playerZ, playerX);
if (radians!=oldyaw) {
player.yaw((radians-oldyaw));
oldyaw=radians;
}
player.setPosition([playerX,0,playerZ]);

We don't really have a forums, but if you post

Cathy Leung | 2 December, 2010 | 2:07

We don’t really have a forums, but if you post a comment generally we will try to see what we can do to help.

I’m not sure as I have not tried this but perhaps you can set the lookatpoint of the camera to be directly in front of you? Let me experiment with that and see if that works.

This is a diablo styled game and the player moves

Phreak Nation | 2 December, 2010 | 18:12

This is a diablo styled game and the player moves based on where the mouse is clicked. I managed everything but the “player” spins based on the center[0,0,0] of the map and not himself relative to the location. He spins how he should, if it was based on the center of the map…lol

Heres an update to the code. As you can tell the lookpoint is the character, rather alittle above as to not give the effect of looking lower than him.

function update() {
var pos = player.getPosition();
if (mouse_left) {
// Grab mouse cords based on X,Y and translate them to 3d cords, X,Y,Z
destinationX = worldCoords[0];
destinationZ = worldCoords[2];
if (speedCurrent 0.01) speedCurrent *= decay;
else speedCurrent = 0;
}
playerX += (destinationX - pos[0]) * speedCurrent;
playerZ += (destinationZ - pos[2]) * speedCurrent;
var radians = Math.atan2(playerZ, playerX);
// var degrees = radians / (Math.PI / 180);
if (radians!=oldyaw) {
// Rotate player based on old position to new position
player.yaw(radians-oldyaw);
// Shows yaw in debug area
$("#debug").html(radians-oldyaw);
// remember old yaw
oldyaw=radians;
}
// Move player
player.setPosition([playerX,0,playerZ]);
// Move camera based on players location and look relative to his position
cam.setPosition([playerX+150,300,playerZ+150]);
cam.setLookAtPoint([playerX, 50.0, playerZ]);
// Move a light based on players position
diffuse.setPosition([playerX+50,100,playerZ+50]);

// Replenish stats based on game time
statReplinish();
}

I have fixed this issue. If you would like to

Phreak Nation | 11 December, 2010 | 7:14

I have fixed this issue. If you would like to view the source code please head over to http://www.phreak-nation.com/new_terra/

Was not working with the link.

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Videos

Demos

  • Asteroids-3D
  • RTS Prototype
  • Particle Systems Demo
  • Cross-Browser Orbiter
  • Mocap Demo With Spheres
  • Google Maps-3D

C3DL Development News

A spec change that keeps coming back to haunt me

At some point, the way firefox handles keyboard events changed. I’m not sure exactly when it happened, all I know is that it broke how I was dealing with keyboard interaction on almost every demo I’ve written (for example,the mocap demo and MotionView). When I wrote the demos, the keydown event would be fired once, [...]

Release 2.2

The 2.2 Release of the Canvas 3D Library includes a number of new features, updates to old features and fixes for several bugs along with the requisite changes to meet the evolving WebGL spec. Some of the things included (in no particular order) are: Better picking code. The ability to swap textures as a scene [...]

Tutorials

  • Tutorial #1: WebGL Browsers
  • Tutorial #2: A simple scene
  • Tutorial #3: Callback
  • Tutorial #4: Models
  • Tutorial #5: Light effects
  • Tutorial #6: Picking
  • Tutorial #7: Materials
  • Tutorial #8: Particle Systems
  • Tutorial #9: Camera Basics
    • Tutorial9-YawPitchRoll
  • Tutorial #10: Advanced FreeCamera
  • Tutorial #11: OrbitCamera
  • Tutorial #12: Advanced Camera Functions

Documentation

Archives

Archives

C3DL Development News

Recent Comments

  • June 2011
  • March 2011
  • October 2010
  • July 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • A spec change that keeps coming back to haunt me
  • Release 2.2
  • 2.1 Release and things to come
  • Level Up! An Open Web Game Jam
  • Site moved!
  • SceneCreator0.3
  • WWW2010 in Raleigh
  • Motionview
  • On the train to Mountainview
  • C3DL 2.0-WebGL and beyond
  • That depends on what... - peter
  • This application is ... - Haisens
  • I think that example... - peter
  • The above links are ... - Atash
  • Hi there, just wante... - Patrick H. Lauke
  • Firefox 4 was releas... - Cathy Leung
  • In order to access l... - peter
  • I am not able to dis... - preksha
  • "JavaScript can’t di... - Joe Hocking
  • I should point out t... - peter



Canvas 3d JS Library

©2007- 2010 Canvas 3d JS Library

Disclaimer: This website is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Canada License.
The Canvas 3d JS Library and Demos found on this website are licenced under the MIT License

Creative Commons License