Pick tiles pseudo randomly based on the coordinates.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1052 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
//
|
//
|
||||||
// $Id: ScrollingScene.java,v 1.1 2002/02/17 23:48:38 mdb Exp $
|
// $Id: ScrollingScene.java,v 1.2 2002/02/19 20:02:16 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.miso.scene;
|
package com.threerings.miso.scene;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import com.threerings.media.tile.NoSuchTileException;
|
import com.threerings.media.tile.NoSuchTileException;
|
||||||
import com.threerings.media.tile.NoSuchTileSetException;
|
import com.threerings.media.tile.NoSuchTileSetException;
|
||||||
import com.threerings.media.tile.ObjectTile;
|
import com.threerings.media.tile.ObjectTile;
|
||||||
@@ -20,16 +22,19 @@ public class ScrollingScene implements DisplayMisoScene
|
|||||||
throws NoSuchTileSetException, NoSuchTileException
|
throws NoSuchTileSetException, NoSuchTileException
|
||||||
{
|
{
|
||||||
// grab our four repeating tiles
|
// grab our four repeating tiles
|
||||||
_tiles[0] = (BaseTile)ctx.getTileManager().getTile(11, 0);
|
_tiles[0] = (BaseTile)ctx.getTileManager().getTile(15, 0);
|
||||||
_tiles[1] = (BaseTile)ctx.getTileManager().getTile(12, 0);
|
_tiles[1] = (BaseTile)ctx.getTileManager().getTile(15, 1);
|
||||||
_tiles[2] = (BaseTile)ctx.getTileManager().getTile(13, 0);
|
_tiles[2] = (BaseTile)ctx.getTileManager().getTile(15, 2);
|
||||||
_tiles[3] = (BaseTile)ctx.getTileManager().getTile(14, 0);
|
_tiles[3] = (BaseTile)ctx.getTileManager().getTile(15, 3);
|
||||||
|
_tiles[4] = (BaseTile)ctx.getTileManager().getTile(15, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited from interface
|
// documentation inherited from interface
|
||||||
public BaseTile getBaseTile (int x, int y)
|
public BaseTile getBaseTile (int x, int y)
|
||||||
{
|
{
|
||||||
int tidx = 2 * (Math.abs(x) % 2) + Math.abs(y) % 2;
|
long seed = ((x^y) ^ multiplier) & mask;
|
||||||
|
long hash = (seed * multiplier + addend) & mask;
|
||||||
|
int tidx = (int)((hash >> 10) % 5);
|
||||||
return _tiles[tidx];
|
return _tiles[tidx];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,5 +56,10 @@ public class ScrollingScene implements DisplayMisoScene
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BaseTile[] _tiles = new BaseTile[4];
|
protected BaseTile[] _tiles = new BaseTile[5];
|
||||||
|
protected Random _rand = new Random();
|
||||||
|
|
||||||
|
protected final static long multiplier = 0x5DEECE66DL;
|
||||||
|
protected final static long addend = 0xBL;
|
||||||
|
protected final static long mask = (1L << 48) - 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user