Marsh Posted November 22, 2010 Author Share Posted November 22, 2010 If you know enough c++ to use this then you can create a better system yourself. If you dont its useless to you. Link to comment Share on other sites More sharing options...
demon xxx x Posted November 24, 2010 Share Posted November 24, 2010 That's insanity Marsh, everyone just wants Eclipse++. They should just wait for the finish.. ._. or they'll be complaining "OH THERES BUGS HERE IN SO AND SO WHY WOULD YOU RELEASE IT ALL BUGGED MARSH? BLAH BLAH BLAH YOUR STUPID MARSH BLAH BLAH BLAH" Everyone just wait for the finish xD Link to comment Share on other sites More sharing options...
azure Posted November 24, 2010 Share Posted November 24, 2010 @Dezire:> That's insanity Marsh, everyone just wants Eclipse++. They should just wait for the finish.. ._. or they'll be complaining "OH THERES BUGS HERE IN SO AND SO WHY WOULD YOU RELEASE IT ALL BUGGED MARSH? BLAH BLAH BLAH YOUR STUPID MARSH BLAH BLAH BLAH" Everyone just wait for the finish xDHe's said several times that he's not actively working on it, and that most likely it will never make public since it was a pet project for fun. That fact also explains his stance on releasing it. A competent programmer could probably do it up better. :P Link to comment Share on other sites More sharing options...
demon xxx x Posted November 26, 2010 Share Posted November 26, 2010 @Azure:> @Dezire:> > > That's insanity Marsh, everyone just wants Eclipse++. They should just wait for the finish.. ._. or they'll be complaining "OH THERES BUGS HERE IN SO AND SO WHY WOULD YOU RELEASE IT ALL BUGGED MARSH? BLAH BLAH BLAH YOUR STUPID MARSH BLAH BLAH BLAH" Everyone just wait for the finish xD> > He's said several times that he's not actively working on it, and that most likely it will never make public since it was a pet project for fun. That fact also explains his stance on releasing it. A competent programmer could probably do it up better. :PNah, Marsh is quite fine for this project. He's probably using it as a learning experience, as well as something for the community. But… "Never public," is so sad to say, because it'll be public eventually, just give it a bit of time, bro. Link to comment Share on other sites More sharing options...
Marsh Posted January 6, 2011 Author Share Posted January 6, 2011 http://www.freemmorpgmaker.com/C++4/Game%20Latest/I am providing no support on how to use this or get it running. It is completely unfinished and you cannot make a game with it. It will run and have all the features in this thread. This is for learning or looking at how things are done. I used it to learn c++ so its badly coded and i dont suggest you use this as a base engine. If you do end up using it you must provide a link to Eclipse and leave the credits.You need Dark GDK, Visual Studio 2008 Express and Mikenet to run. Link to comment Share on other sites More sharing options...
Guest Posted January 6, 2011 Share Posted January 6, 2011 I can't wait! It looks like it's gonna be big! Nice sprite sheet :D Link to comment Share on other sites More sharing options...
Sealbreaker Posted January 6, 2011 Share Posted January 6, 2011 @Signatured:> I can't wait! It looks like it's gonna be big! Nice sprite sheet :Dyou can't read, can you? -.--seal Link to comment Share on other sites More sharing options...
Marsh Posted January 7, 2011 Author Share Posted January 7, 2011 Yea i just dropped the source for people to learn from. This will never be completed and good chance it will never be worked on again. Even if i did make a Eclipse++ i would probably remake it with all the new info i have now. Link to comment Share on other sites More sharing options...
DAK3 Posted February 2, 2011 Share Posted February 2, 2011 so its still in dev? its ever updated?:O:D look like amazing:P:D Link to comment Share on other sites More sharing options...
Drummerpete Posted February 2, 2011 Share Posted February 2, 2011 @DAK3:> so its still in dev? its ever updated?:O:D look like amazing:P:DLook at the post RIGHT above yours. Link to comment Share on other sites More sharing options...
Legolas Td Posted July 31, 2011 Share Posted July 31, 2011 This is sooo awsome, it makes me horney.:p Link to comment Share on other sites More sharing options...
Ruins of Hell Posted July 31, 2011 Share Posted July 31, 2011 @Legolas:> This is sooo awsome, it makes me horney.> :p@Marsh:> Yea i just dropped the source for people to learn from. This will never be completed and good chance it will never be worked on again. Even if i did make a Eclipse++ i would probably remake it with all the new info i have now. Link to comment Share on other sites More sharing options...
SawQuart Posted July 31, 2011 Share Posted July 31, 2011 Are people seriously not reading Marsh's post right above them? >_> Link to comment Share on other sites More sharing options...
Marsh Posted February 11, 2012 Author Share Posted February 11, 2012 If anyone wants to start dabbling with c++ and Dark GDK here is a intro project. This is just the barebones basics to learn how to use Dark GDK. It contains 8 directional movement with a rmxp sprite. A map with a ground, mask, fringe and item layer. That is it. This can be programmed in under a hour if you know what your doing.I know a lot of people have had trouble with tiling maps when creating there own mapping systems. It also contains some simple pointer operations to learn from.www.freemmorpgmaker.com/Game-2.rarYou must have visual studio 2008 and Dark GDK installed for this to run.Here is the source if you just want a quick glance.```#include "DarkGDK.h"#include #include #include #include using namespace std;// File Numbersint groundTile = 1;int maskTile = 2;int itemTile = 3;int playerSprite = 4;int fringeTile = 5;// Variablesbool debugEnabled = true;byte playerSpeed = 2;byte walkAnimationSpeed = 150;int playerX = 0;int playerY = 0;byte currentDirection = 0;bool newMap = true;void playerMovement(int *playerX, int *playerY){ // Standard Movement if(dbLeftKey() && dbDownKey() == 0 && dbUpKey() == 0) { if( currentDirection != 1) { dbSetSpriteFrame(playerSprite,5); } currentDirection = 1; dbPlaySprite(playerSprite,5,8,walkAnimationSpeed); (*playerX) -= playerSpeed; } if(dbRightKey() && dbDownKey() == 0 && dbUpKey() == 0) { if( currentDirection != 2) { dbSetSpriteFrame(playerSprite,9); } currentDirection = 2; dbPlaySprite(playerSprite,9,12,walkAnimationSpeed); (*playerX) += playerSpeed; } if(dbUpKey() && dbLeftKey() == 0 && dbRightKey() == 0) { if( currentDirection != 3) { dbSetSpriteFrame(playerSprite,13); } currentDirection = 3; dbPlaySprite(playerSprite,13,16,walkAnimationSpeed); (*playerY) -= playerSpeed; } if(dbDownKey() && dbLeftKey() == 0 && dbRightKey() == 0) { if( currentDirection != 4) { dbSetSpriteFrame(playerSprite,1); } currentDirection = 4; dbPlaySprite(playerSprite,1,4,walkAnimationSpeed); (*playerY) += playerSpeed; } // Diagonal Movement if(dbLeftKey() && dbUpKey()) { if( currentDirection != 5) { dbSetSpriteFrame(playerSprite,5); } currentDirection = 5; dbPlaySprite(playerSprite,5,8,walkAnimationSpeed); (*playerX) -= playerSpeed; (*playerY) -= playerSpeed; } if(dbRightKey() && dbUpKey()) { if( currentDirection != 6) { dbSetSpriteFrame(playerSprite,9); } currentDirection = 6; dbPlaySprite(playerSprite,9,12,walkAnimationSpeed); (*playerX) += playerSpeed; (*playerY) -= playerSpeed; } if(dbLeftKey() && dbDownKey()) { if( currentDirection != 7) { dbSetSpriteFrame(playerSprite,5); } currentDirection = 7; dbPlaySprite(playerSprite,5,8,walkAnimationSpeed); (*playerX) -= playerSpeed; (*playerY) += playerSpeed; } if(dbRightKey() && dbDownKey()) { if( currentDirection != 8) { dbSetSpriteFrame(playerSprite,9); } currentDirection = 8; dbPlaySprite(playerSprite,9,12,walkAnimationSpeed); (*playerX) += playerSpeed; (*playerY) += playerSpeed; } // Check to prevent players leaving screen if ((*playerX) > 768) { dbPasteSprite(playerSprite,768,(*playerY)); (*playerX) = 768; } if ((*playerX) < 0) { dbPasteSprite(playerSprite,0,(*playerY)); (*playerX) = 0; } if ((*playerY) < 0) { dbPasteSprite(playerSprite,(*playerX),0); (*playerY) = 0; } if ((*playerY) > 554) { dbPasteSprite(playerSprite,(*playerX),554); (*playerY) = 554; } // Teleport helps to debug if(dbShiftKey() && dbMouseClick() == 1 && debugEnabled == true) { (*playerX) = dbMouseX(); (*playerY) = dbMouseY(); } // Update screen position. dbPasteSprite(playerSprite,*playerX,*playerY);}void loadFiles(int *groundTile, int *maskTile, int *fringeTile, int *itemTile){ // Set Transparency dbSetImageColorKey ( 0, 0, 0 ); // Load Player Sprite dbCreateAnimatedSprite(playerSprite,"Player.png",4,4,playerSprite); dbSprite(playerSprite,playerX,playerY,playerSprite); // Get Tile size. // Load Tilesets dbCreateAnimatedSprite((*groundTile),"Tiles.bmp",8,568,(*groundTile)); // Ground dbCreateAnimatedSprite((*maskTile),"Tiles.bmp",8,568,(*maskTile)); // Mask dbCreateAnimatedSprite((*itemTile),"Items.bmp",6,467,(*itemTile)); // Items dbCreateAnimatedSprite((*fringeTile),"Tiles.bmp",8,568,(*fringeTile)); // Fringe // Using DbPasteSprite so hide original Sprite dbHideSprite((*groundTile)); dbHideSprite((*maskTile)); dbHideSprite((*itemTile)); dbHideSprite(playerSprite); dbHideSprite((*fringeTile));}void loadMap(){ // Variables int a = 0; int b = 0; string FileContents[500]; int MapData[1500]; int value = 0; char comma; int XTile = 0; int YTile = 0; byte mapLayer = 1; // Read File string line; ifstream myfile ("Maps/Map1.map"); if (myfile.is_open()) {  while ( myfile.good() ) {  ++a;  getline (myfile,line);  FileContents[a] = line;  // Split By Commas  stringstream ss(FileContents[a]); while (ss >> value) { ++b; MapData[b] = value; ss >> comma; } } myfile.close(); a = 0; b = 0; } else {  MessageBox(NULL,"Map File Missing","Error",NULL); } while(mapLayer <= 5) { while(YTile < 600) { a++; if (MapData[a] > 0) { dbSetSpriteFrame(mapLayer,MapData[a]); dbPasteSprite(mapLayer,XTile,YTile); } XTile = XTile + 32; if (XTile == 800) { YTile = YTile + 32; XTile = 0; } } mapLayer++; if (mapLayer == playerSprite) { mapLayer = fringeTile; // Control player movement. Do it here to be behind fringe. playerMovement(&playerX,&playerY); } // Reset Values YTile = 0; XTile = 0; }}void debug(){ if (debugEnabled == true) { // Debug Display dbInk(dbRGB(255,0,0),1); dbText(770,0,dbStr(dbScreenFPS())); dbText(770,15,dbStr(dbScanCode())); dbText(770,30,dbStr(playerX)); dbText(770,45,dbStr(playerY)); dbText(770,60,dbStr(dbMouseX())); dbText(770,75,dbStr(dbMouseY())); }}void DarkGDK ( void ){ dbSyncOn ( ); dbSyncRate ( 604 ); dbDisableEscapeKey ( ); dbRandomize ( dbTimer ( ) ); // Set up Game Screen dbSetDisplayMode(800,600,32); dbSetWindowTitle("7 Sins"); // Load the Sprites loadFiles(&groundTile, &maskTile, &fringeTile, &itemTile); while ( LoopGDK ( ) ) { // Load Map loadMap(); // Debug debug(); if ( dbEscapeKey ( ) ) break; // Sync Screen dbSync ( ); } return;}Also i am still learning c/c++ myself so dont expect this code to be the perfect way of doing things.[/b]``` Link to comment Share on other sites More sharing options...
totalwar235 Posted February 15, 2012 Share Posted February 15, 2012 Marsh, you are god +1.me and my friend will take over this work, thanks for all your hard work to this point. Link to comment Share on other sites More sharing options...
Guest Posted March 8, 2012 Share Posted March 8, 2012 How can you download it all at once? Link to comment Share on other sites More sharing options...
Marsh Posted March 9, 2012 Author Share Posted March 9, 2012 Right click on the folder and i believe you can download all the contents. If not there is programs that do it. Link to comment Share on other sites More sharing options...
Guest Posted March 9, 2012 Share Posted March 9, 2012 What kind of program? Right-clicking didn't work. Link to comment Share on other sites More sharing options...
Marsh Posted April 10, 2012 Author Share Posted April 10, 2012 Map editor for small example above```#include "DarkGDK.h"#include #include enum{ filler, block,};using namespace std; // Globals :( int tilePosY = 0; int tileLeftX = 0; int tileLeftY = 0; int tileRightX = 0; int tileRightY = 0; int selectedTileNumber = 0; int mapTileG[500]; int mapTileM[500]; int mapTileF[500]; int mapTileA[500]; byte attributeNumber = 0; char attribute[2] = "X"; byte layer = 1;void attributes(){ switch(dbScanCode()) { case 48: { attributeNumber = block; attribute[0] = 'B'; layer = 4; } }}void save(){ int count = 0; int count2 = 0; int count3 = 0; if (dbScanCode() == 31) { ofstream myfile; myfile.open ("Map1.map"); while(count2 <= 2374) { count++; count2++; count3++; if(count2 <= 475) { myfile << mapTileG[count3]; myfile << ","; } if(count2 > 475 && count2 <= 950) { myfile << mapTileM[count3]; myfile << ","; } // item layer if(count2 > 950 && count2 <= 1425 ) { myfile << "0"; myfile << ","; } if(count2 > 1425 && count2 <= 1900) { myfile << mapTileF[count3]; myfile << ","; } if(count2 > 1900) { myfile << mapTileA[count3]; myfile << ","; } if(count >= 25) { count = 0; myfile << "\n"; } if(count3 >= 475) { count3 = 0; } } myfile.close(); dbSetTextSize(50); dbSetTextToBold(); dbInk(dbRGB(255,255,0),0); dbText(500,200,"Map Saved"); }}void drawMap(){ dbSetTextSize(25); dbSetTextToBold(); dbInk(dbRGB(255,0,0),0); int x = 0; int y = 0; for(int a = 1; a < 476; a++) { if(mapTileG[a] > 0) { dbSetSpriteFrame(2,mapTileG[a]); dbPasteSprite(2,x + 256, y); } if(mapTileM[a] > 0) { dbSetSpriteFrame(3,mapTileM[a]); dbPasteSprite(3,x + 256, y); } if(mapTileF[a] > 0) { dbSetSpriteFrame(4,mapTileF[a]); dbPasteSprite(4,x + 256, y); } if(mapTileA[a] > 0) { dbText(x + 12 + 256,y + 12, attribute); } x += 32; if(x >= 800) { y += 32; x = 0; } if (y > 600) { break; } }}void tilePosition(){ int mouseZ=dbMouseMoveZ(); if(dbDownKey() == 1 || mouseZ < 0) { if(tilePosY > -17576) { tilePosY -= 32; } selectedTileNumber = selectedTileNumber + 8; } if(dbUpKey() == 1 || mouseZ > 0) { if(tilePosY < 0) { tilePosY += 32; } selectedTileNumber = selectedTileNumber - 8; } dbPasteImage(1,0,tilePosY,1);}void drawBox(){ dbInk(dbRGB(255,0,0),0); // Draw Box dbLine(tileLeftX,tileLeftY,tileLeftX + 32,tileLeftY); dbLine(tileLeftX,tileLeftY + 32,tileLeftX + 32,tileLeftY + 32); dbLine(tileLeftX,tileLeftY,tileLeftX,tileLeftY + 32); dbLine(tileLeftX + 32,tileLeftY,tileLeftX + 32,tileLeftY + 32);}void layerSwitch(){ dbSetTextSize(50); dbSetTextToBold(); dbInk(dbRGB(255,255,0),0); switch(dbScanCode()) { case 2: { layer = 1; dbText(500,200,"Ground Layer"); break; } case 3: { layer = 2; dbText(500,200,"Mask Layer"); break; } case 4: { layer = 3; dbText(500,200,"Fringe Layer"); break; } }}void fill(){ if(dbScanCode() == 33) { for(int a = 0; a < 476; a++) { switch (layer) { case 1: { mapTileG[a] = selectedTileNumber; break; } case 2: { mapTileM[a] = selectedTileNumber; break; } case 3: { mapTileF[a] = selectedTileNumber; break; } default: { break; } } } }}void mouseClick(){ if(dbMouseClick() == 1) { // Get number of tile selected if(dbMouseX() < 256) { selectedTileNumber = (((dbMouseY() / 32) * 8) + (tilePosY / 32 * -8)) + ((dbMouseX() / 32) + 1); tileLeftX = (((dbMouseX() / 32)) * 32); tileLeftY = ((dbMouseY() / 32) * 32); } dbText(750,30,dbStr(selectedTileNumber)); // debug } if(dbMouseX() > 256 && dbMouseClick() == 1) { tileRightX = (((dbMouseX() / 32)) * 32); tileRightY = ((dbMouseY() / 32) * 32); switch (layer) { case 1: { mapTileG[(((dbMouseY() / 32) * 25) + ((dbMouseX() / 32) + 1) - 8)] = selectedTileNumber; break; } case 2: { mapTileM[(((dbMouseY() / 32) * 25) + ((dbMouseX() / 32) + 1) - 8)] = selectedTileNumber; break; } case 3: { mapTileF[(((dbMouseY() / 32) * 25) + ((dbMouseX() / 32) + 1) - 8)] = selectedTileNumber; break; } case 4: { mapTileA[(((dbMouseY() / 32) * 25) + ((dbMouseX() / 32) + 1) - 8)] = attributeNumber; } default: { break; } } }}void debug(){ dbSetTextSize(12); dbSetTextToNormal(); dbInk(dbRGB(0,255,0),0); dbText(750,0,dbStr(dbMouseX())); dbText(750,15,dbStr(tilePosY)); dbText(750,45,dbStr((((dbMouseY() / 32) * 25) + ((dbMouseX() / 32) + 1)) - 8)); dbText(750,60,dbStr(dbScanCode())); dbText(750,75,dbStr(dbMouseZ())); dbText(750,90,dbStr(dbMouseMoveZ()));}void drawSquares(){ int b = 0; for(int a = 256; a < 1056; a+= 32) { dbInk(dbRGB(255,0,0),0); dbLine(a,0,a,600); if(b < 600) { b+= 32; dbLine(256,b,1056,b); } }}void DarkGDK ( void ){ // Set up Game Screen dbSetDisplayMode(1056,600,32); dbSetWindowTitle("Map Editor"); dbSyncOn ( ); dbSyncRate ( 60 ); dbDisableEscapeKey ( ); dbRandomize ( dbTimer ( ) ); // Load Tileset dbLoadImage("Tiles.bmp", 1); dbCreateAnimatedSprite(2,"Tiles.bmp",8,568,2); dbCreateAnimatedSprite(3,"Tiles.bmp",8,568,3); dbCreateAnimatedSprite(4,"Tiles.bmp",8,568,4); dbSetImageColorKey ( 255, 0, 255 ); while ( LoopGDK ( ) ) { tilePosition(); drawSquares(); mouseClick(); drawMap(); fill(); debug(); drawBox(); layerSwitch(); save(); attributes(); if ( dbEscapeKey ( ) ) break; // here we make a call to update the contents of the screen dbSync ( ); } return;} ``` Link to comment Share on other sites More sharing options...
siedge Posted April 11, 2012 Share Posted April 11, 2012 can someone upload this in a zipped folder? Link to comment Share on other sites More sharing options...
Ruins of Hell Posted April 11, 2012 Share Posted April 11, 2012 @Siedge:> can someone upload this in a zipped folder?Sure. Give me some time to upload it and I'll update this post when it's done.Edit: [In a rar file](http://i.minus.com/1334263607/3admjvM0iTgR27rrwwLGzw/d1CazORHnw9eE.rar) Link to comment Share on other sites More sharing options...
siedge Posted April 12, 2012 Share Posted April 12, 2012 thanks downloading it now :D Link to comment Share on other sites More sharing options...
Keebler Elf Posted May 7, 2012 Share Posted May 7, 2012 @Soul:> Sure. Give me some time to upload it and I'll update this post when it's done.> > Edit: [In a rar file](http://i.minus.com/1334263607/3admjvM0iTgR27rrwwLGzw/d1CazORHnw9eE.rar)The .rar is not up anymore and for some reason I can not get my svn to download this correctly. Would someone be willing to make a new .rar of this for me? Link to comment Share on other sites More sharing options...
Ruins of Hell Posted May 7, 2012 Share Posted May 7, 2012 @Keebler:> The .rar is not up anymore and for some reason I can not get my svn to download this correctly. Would someone be willing to make a new .rar of this for me?Yeah, I can't use Eclipse because it times out or says "file type not supported" (I thought zip would be supported; but apparently not).Anyway, here's another link that will work for a little: [click will work for a month or so](http://minus.com/lJmLljfwF1QJt). Link to comment Share on other sites More sharing options...
Marsh Posted May 7, 2012 Author Share Posted May 7, 2012 Zip is supported the file host is just super buggy and crappy :P. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now