pzyu / gip2017 Goto Github PK
View Code? Open in Web Editor NEWGIP Game Jam 2017
GIP Game Jam 2017
Tiles will be able to twist in a 2 by 2 manner, either clockwise or counter clockwise.
Orientation of tiles should remain the same
Original | Clockwise Twist | Counter Clockwise Twist |
---|---|---|
A B C D |
C A D B |
B C A D |
Effect | Source |
---|---|
Tile selection | - |
Tile rotation | - |
Player movement | - |
Enemy movement | - |
More to be added
Perhaps more intuitive to keep all controls on the mouse, rather than having certain actions done on the keyboard, and some on the mouse.
Also a lot easier to port to mobile if necessary
Idea 1:
Action | Controls |
---|---|
Moving player | Left clicking on any adjacent tile |
Twisting tiles | Dragging motion from any tile |
Rotating tile | Right clicking on active tile |
Idea 2:
Action | Controls |
---|---|
Moving player | WASD |
Twisting tiles | Make 2x2 selection based on mouse position, then drag to twist |
Rotating tile | Clicking twice to select a single tile, then rotate |
Idea 3:
Action | Controls |
---|---|
Moving player | WASD |
Twisting tiles | Selecting/dragging order of tiles |
Rotating tile | Clicking on left/right arrows that hover over player |
5x5 map can be represented in a text file without the headers
A fixed path can be given by creating a path of 1
s from the starting point A0 to end E4
A | B | C | D | E | |
---|---|---|---|---|---|
0 | 1 |
0 | 0 | 0 | 0 |
1 | 1 |
1 |
0 | 0 | 0 |
2 | 0 | 1 |
1 |
0 | 0 |
3 | 0 | 0 | 1 |
0 | 0 |
4 | 0 | 0 | 1 |
1 |
1 |
Tiles with 1 can be assigned with a random tile that is connected to its adjacent tiles
Tiles with 0 can be assigned with any random tile
A | B | C | D | E | |
---|---|---|---|---|---|
0 | ║ |
╔ | ╩ | ╠ | ╬ |
1 | ╩ |
╬ |
╔ | ╩ | ╠ |
2 | ═ | ╠ |
╗ |
═ | ╔ |
3 | ╬ | ╔ | ╬ |
╔ | ╠ |
4 | ╩ | ═ | ╩ |
═ |
╗ |
Fixed path is still the same
Likewise, relics and enemies can be represented using characters in the desired coordinates
Tentative bit manipulation to represent North East South West orientation
Only byte because there's no half-byte
For a pipe tile:
Style | Representation |
---|---|
Graphical | ═ |
N E S W | F T F T |
Byte | 00110011 |
Dumbass byte rotation:
http://rextester.com/UTG73995
Tile
TileManager
Tiles
to keep track of position, twist functionalityMap
TileManager
, 1 Player
, X Enemy
Logic
Player
Movement
and Controls
Enemy
Movement
and pathfinding (ideally computed on enemy turn, so no waste in recalculating tentative boardRelics
Player
or Enemy
has entered, then add score or spawn new enemy respectivelyUI
Controls
Movement
TileManager
if movable, if so allow controller which can be either Player
or Enemy
to moveA declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.