Giter VIP home page Giter VIP logo

2dtanks's Introduction

2D Tanks


This little project was made by two people just for fun. We didn't use any additional libraries or frameworks, everything was created by our own hands. In this game you need to play with your friend. One gonna be attacker and the other a defender. And before all we want to apologize for html to frontenders, cause it's new for us, and it's written really terrible :(

How to start playing


You can start playing this awesome game by the following ways:

1. Github pages

Just click the next link and start playing.

2. Clone repository

Firstly you need to follow by the next link:

https://github.com/Riborok/2DTanks

You will see github repository of this game. Then click on the green button "Code" and then click "Download ZIP":

Github code Download ZIP

After that unzip to any convenient folder and go to it. Then launch index.html.

How to play


First of all when you launch index.html you will see the next window:

Tank assembler

There you can choose tank parts for the attacker. Choosing different parts will be assembled tank, whatever you want. Also, you can choose color for your tank.

Then you need to click accept button, assemble tank for the defender, and again click accept button.

After that you will see the field:

Game field

On this window you can see some objects:

  • Walls
    • Objects, that will block your way
  • Tanks
    • These you assembled in the last stage
  • Keys
  • Boxes
  • Header
    • Elapsed time and collected keys amount are located here

Rules

The aim of the attacker is to collect 3 keys in three locations. After collecting all the keys on the one location, you will pass to the next and elapsed time will be reset.

Defender’s goal is to prevent key collection up to 300 seconds. So the defender will have 3 attempts, while the attacker have only one.

Bullet boxes

On the field you will see some coloured boxes that sometimes spawning on the random places. Each box have relevant bullet that have different stats and some of them - special abilities. In the next table you can see these bullets, it's characteristics and boxes, that contain them:

Bullet type Box image Speed Damage Penetration Mass Health Abilities
Light Light Bullet 45 12 0.05 0.008 5 -
Medium Medium Bullet 35 25 0.1 0.02 10 -
Heavy Heavy Bullet 15 50 0.2 0.05 20 -
Sniper Sniper Bullet 75 35 0.5 0.01 6 -
Grenade Grenade Bullet 10 40 0.25 0.035 15 Area damage

Locations


Except the desert you saw earlier:

Desert location

You will see caves:

Caves location

And also grasslands:

Grasslands location

Parts characteristics


In the next tables each tank part and it's stats will be presented.

  • Hulls

Hull number Image Health Armor amount Armor strength Mass
1 First hull 100 1 20 0.8
2 Second hull 90 1.1 25 0.8
3 Third hull 150 1 20 1.3
4 Fourth hull 100 1.5 30 1.3
5 Fifth hull 90 0.9 18 0.7
6 Sixth hull 110 0.5 20 0.7
7 Seventh hull 100 0.6 22 0.75
8 Eighth hull 85 0.6 25 0.3
  • Tracks

Track number Image Angular finish speed Angular acceleration Forward finish speed Forward acceleration Backward finish speed Backward acceleration
1 First track 0.02 0.03 3 0.025 2 0.02
2 Second track 0.019 0.02 3.5 0.025 2.5 0.02
3 Third track 0.02 0.02 2 0.035 1 0.03
4 Fourth track 0.03 0.04 2 0.015 1 0.01
  • Turrets

Turret number Image Angle speed Mass Bullet capacity
1 First turret 0.0006 0.25 3
2 Second turret 0.001 0.15 2
3 Third turret 0.0004 0.3 5
4 Fourth turret 0.0008 0.3 3
5 Fifth turret 0.0005 0.27 4
6 Sixth turret 0.0003 0.4 6
7 Seventh turret 0.00045 0.32 5
8 Eighth turret 0.0008 0.35 4
  • Weapons

Weapon number Image Penetration coeff Damage coeff Speed coeff Reload speed Mass
1 First weapon 1 1 1 1 0.15
2 Second weapon 0.95 0.95 1.2 0.9 0.13
3 Third weapon 1.2 1.1 0.8 1.2 0.2
4 Fourth weapon 0.9 1.2 1 1.1 0.14
5 Fifth weapon 1.1 0.9 1 1 0.15
6 Sixth weapon 0.7 0.7 1 0.5 0.18
7 Seventh weapon 0.6 1.4 1.2 1.5 0.25
8 Eighth weapon 0.75 1.3 1.1 1.3 0.22

Controls


  • Attacker
    • Movement: WASD
    • Turret rotate: "C" - Right, "V" - Left
    • Shoot: "B"
  • Defender
    • Movement: Arrows
    • Turret rotate: "," - Right, "." - Left
    • Shoot: "/"

Authors


  • Egor Pankratiev
  • Stanislau Habrus

License


This game is released under the MIT License. For more information, check the LICENSE file.

2dtanks's People

Contributors

ferret451 avatar riborok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

2dtanks's Issues

Bugs with level completion

There are some problems when you collect all the keys on the map. According to the game logic, after the moment when you collect all keys on the map, the game should automatically refresh the map to another level, but it didn't happen. To force rerender you should switch to other tab in your browser, then come back to tank's tab. Also there is another problem. How many levels you've gone through, that's how many timers will go on. What does it mean... When you complete one level and step into another, the timer of previous level doesn't stop, and it's going with the timer of current level, switching every second between timer's values. (3 levels completed = 3 timers are showing their values switching every second)

Game over (design issue)

For example, when defender wins, game is still playable, you can collect the boxes with bullets, kill each other, but you can not collect the keys, they become uncollectable. I think it's design flaw.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.