vinTagesworld Flash forum

Stel zelf een vraag in het flash forum!


tile based games
blokje door W0utah op 24-03-07 om 23:14
Ik ben nu begonnen met het leren hoe je tile based games maakt, maar ik zit met vragen over de code.

Dit is de code die ik nu heb, hij tekent een map en een manneke

actionscript code

myMap = [[1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1]];
game = {tileW:30, tileH:30};
char={xtile:2, ytile:1, speed:4};
game.Tile0 = function() {
};
game.Tile0.prototype.walkable = true;
game.Tile0.prototype.frame = 1;
game.Tile1 = function() {
};
game.Tile1.prototype.walkable = false;
game.Tile1.prototype.frame = 2;
function buildMap(map) {
  _root.attachMovie("empty", "tiles", ++d);
  game.clip = _root.tiles;
  var mapWidth = map[0].length;
  var mapHeight = map.length;
  for (var i = 0; i<mapHeight; ++i) {
    for (var j = 0; j<mapWidth; ++j) {
      var name = "t_"+i+"_"+j;
      game[name] = new game["Tile"+map[i][j]]();
      game.clip.attachMovie("tile", name, i*100+j*2);
      game.clip[name]._x = (j*game.tileW);
      game.clip[name]._y = (i*game.tileH);
      game.clip[name].gotoAndStop(game[name].frame);
    }
  }
  game.clip.attachMovie("char", "char", 10000);
  char.clip = game.clip.char;
  char.x = (char.xtile*game.tileW)+game.tileW/2;
  char.y = (char.ytile*game.tileH)+game.tileH/2;
  char.width = char.clip._width/2;
  char.height = char.clip._height/2;
  char.clip._x = char.x;
  char.clip._y = char.y;
}
buildMap(myMap);

 


Nu mijn vraag:

actionscript code

game.Tile0 = function() {
};
game.Tile0.prototype.walkable = true;
game.Tile0.prototype.frame = 1;
game.Tile1 = function() {
};
game.Tile1.prototype.walkable = false;
game.Tile1.prototype.frame = 2;
 


Kan je dit niet anders maken?
Want als je nu een groot spel wilt hebben en je zit met over de 100 tiles, dan heb je dus 400 regels .

Er moet toch een oplossing voor zijn?

 


Reply
blokje door vinTage op 24-03-07 om 23:45
het principe van een tile based game is juist om de code te verminderen.
Ik heb je script niet echt goed bekenen, maar als je elke keer een attachMovie zou moeten doen en elke tile AS mee zou moeten geven zoals _x en _y posities en posities van je mannetje, dan had ja VEEL meer code.

eerlijkheidshalve moet ik toegeven dat ik nog nooit zelf een tilebased game heb gemaakt, dus als ik weer eens tijd heb zal ik mezelf daar eens een beetjer in verdiepen.

Mocht je er zin in hebben, dan zou een tutje leuk zijn

 
Reply
blokje door W0utah op 24-03-07 om 23:48
Zin wel, maar ik ken er niet genoeg van .

Ik ben nu bezig met zelf tutorials te volgen.
Wou gewoon weten hoe het allemaal ineen zit, is wel leuk dus kga er verder in gaan.

edit:

Ik denk toch maar dat ik ermee stop, sommige functies zijn echt ingewikkeld (voor mij toch).

Ik had al 200 regels code en ik kon enkel nog maar lopen en deuren open doen

laatst ge-edit op: 26-03-07 om 22:47
Reply
blokje door vinTage op 26-03-07 om 22:59
Ah, jammer, het is echt een performance winst als je iets doet met tilebased games.

Ik heb ooit een mega mooie tut daarover gezien, zal een zoeken of ik die nog kan vinden.


edit:
http://www.tonypa.pri.ee/tbw/start.html

laatst ge-edit op: 26-03-07 om 23:00
Reply
blokje door W0utah op 26-03-07 om 23:01
bedoel je deze: http://www.tonypa.pri.ee/tbw/start.html
of deze:
http://oos.moxiecode.com/#Tutorials


edit:
je had die site ook al

laatst ge-edit op: 26-03-07 om 23:01
Dit topic is gesloten.