Jump to content
  • Advertisement

Project: Shapes TD

Pathfinding, Tower and Wall Placement Helpers.



Just wrapped up organising the code.

Originally when I set out to program this project I had the idea that would-be followers of my efforts could just copy and paste quick little bits to the base files from my Introduction to Three.js post.  However, I'm not that organise and don't have the level of skill to be able to pull that off.  I've had to go through many older functions and modify this or that.  So you'll have to bare with me but if you want to stay up to date with this project and have a copy of the code as of 'today' you'll have to just download everything here


current functionality:
Toggle Screen Size; if you press ' ' you'll toggle the size of the screen.

Walls; If you press ' w ' you'll be able to select locations for walls.  Moving your mouse along the grid you'll see the grid line the cursor is closest to turn yellow.  If you left click the mouse button you'll create a wall.  If you right click on a line under a wall that already exists the wall will be removed.  Walls can be created between adjoining cells/squares/spaces.  When you select a grid line that will block the path to an exit the line will turn red indicating that a wall can't be built there.  If you try to left click nothing will happen.

Towers; If you press ' ' you'll be able to select the locations for tower.  Moving your mouse along the grid you'll see a large square 2x2 appear in cyan if you select a location that doesn't envelop any surrounding wall.  The large square will turn red if the location isn't permitted.  As of right now the Tower placement function doesn't take into account Towers blocking the path to an exit.

If you want to switch between walls and towers you must de-select your previous choice by pressing the say keyboard key.  Clear as mud?  Hope not.

Here's a video showing what's been added.


Now that this is all done I can start adding towers and enemies. 
I'm going to scrap the Misty Mist Tower.  I'm instead going to replace it with the Tach Tower.  It will shot bullets that will slow down an enemy with each successive hit.  It's been done a bunch before.  But unlike other games where the effect wears off, in this one the effect will be permanent.  However; in order to dramatically reduce the speed of an enemy, it have to be shot many times.

Let me know what you think!

Thanks for reading.


Recommended Comments

Cool Bro ^_^y I'm amaze that we can do this now over modern browser, I wrote my own simple 2D Game engine in HTML5/TypeScript maybe it's time to upgrade it and put 3D support, last time I created 3D over the web was using Silverlight but today  WebGL rocks !

Share this comment

Link to comment

Good stuff so you will defend by placing your walls rather than just having the enemies follow a preset path, that is definitely more realistic! :)

I know what you mean about code organisation, mine is a mess at the moment I am going to have to restructure at the end to release the source. I suspect with most of these source code tutorials they finish the whole thing first, then start building up what they already know works, bit by bit (then sometimes pretend they are making it up as they go lol!).

Share this comment

Link to comment

@DexterZ101, I know right. When I was first introduced to THREE.js I was immediately drawn in at just how quickly I could get things done.  It's a great API to just play around with.  And the number of artistic features it supports is vast.

@lawnjelly Yes I agree.  I think they backward engineer their tutorials.  Unless they've done the same thing time and time again.

Share this comment

Link to comment

Nice job with the walls :) I'm doing my entry with dynamic pathing by creating mazes, but the wall idea is even better than what I have going! Awesome stuff! :) 

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!