Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Eclipse++


Marsh
 Share

Recommended Posts

  • Replies 556
  • Created
  • Last Reply

Top Posters In This Topic

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

@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. :P
Link to comment
Share on other sites

@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. :P

Nah, 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

  • 1 month later...
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

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

  • 4 weeks later...
  • 5 months later...
@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

  • 6 months later...
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.rar

You 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 Numbers
int groundTile = 1;
int maskTile = 2;
int itemTile = 3;
int playerSprite = 4;
int fringeTile = 5;

// Variables
bool 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

  • 4 weeks later...
  • 1 month later...
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

  • 4 weeks later...
@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

@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

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
 Share


×
×
  • Create New...