本文整理汇总了C#中IntVector2类的典型用法代码示例。如果您正苦于以下问题:C# IntVector2类的具体用法?C# IntVector2怎么用?C# IntVector2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IntVector2类属于命名空间,在下文中一共展示了IntVector2类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: paintObstacle
// Paints the obstacle tiles in green
public void paintObstacle(IntVector2 index)
{
GameObject t = TileGenerator.tiles[index.x,index.y];
if(t.tag == "Tile")
{
if(t.renderer)
{
t.renderer.material = green;
}
else
{
t.GetComponentsInChildren<Renderer>()[1].material = green;
}
t.tag = "Obstacle";
}
else
{
if(t.renderer)
{
t.renderer.material = grey;
}
else
{
t.GetComponentsInChildren<Renderer>()[1].material = grey;
}
t.tag = "Tile";
}
}
示例2: Calculate
public static void Calculate(IntVector2 viewerLocation, int visionRange, Grid2D<bool> visibilityMap, IntSize2 mapSize,
Func<IntVector2, bool> blockerDelegate)
{
visibilityMap.Clear();
if (blockerDelegate(viewerLocation) == true)
return;
for (int y = -visionRange; y <= visionRange; ++y)
{
for (int x = -visionRange; x <= visionRange; ++x)
{
var dst = viewerLocation + new IntVector2(x, y);
if (mapSize.Contains(dst) == false)
{
visibilityMap[x, y] = false;
continue;
}
bool vis = FindLos(viewerLocation, dst, blockerDelegate);
visibilityMap[x, y] = vis;
}
}
}
示例3: MakeTunnel
List<DungeonArea> MakeTunnel( IntVector2 pointA, IntVector2 pointB )
{
var roomsColor = SUtil.SRandom.SRandom.GetRandomColor();
foreach (var r in dunArea_)
r.color_ = roomsColor;
IntRect[] areas = dunArea_.Select(r => r.area_).ToArray();
IntVector2[] points = new IntVector2[]
{
pointA,
pointB,
};
var diffArea = IntRect.BLTRRect( points[0], points[1] );
DungeonArea[] halls = new DungeonArea[]
{
new DungeonArea( diffArea ),
//new DungeonArea( points[0]),
//new DungeonArea( points[1]),
};
var hallcolors = new Color[]
{
Color.green, Color.red, Color.red
};
for (int i = 0; i < halls.Length; ++i)
halls[i].color_ = hallcolors[i];
return halls.ToList();
}
示例4: applyTextureToAnotherTexture
public static void applyTextureToAnotherTexture(ref TextureColorArray source, ref TextureColorArray destination, IntVector2 centerInDestination)
{
_leftX = centerInDestination.x - source.width / 2;
_rightX = _leftX + source.width;
_downY = centerInDestination.y - source.height / 2;
_topY = _downY + source.height;
_srcLeftX = _leftX < 0 ? -_leftX : 0;
_srcDownY = _downY < 0 ? -_downY : 0;
_leftX = _leftX < 0 ? 0 : _leftX ;
_rightX = _rightX >= destination.width ? destination.width : _rightX;
_downY = _downY < 0 ? 0 : _downY ;
_topY = _topY >= destination.height ? destination.height : _topY ;
_srcY = _srcDownY * source.width;
_destY = _downY * destination.width;
for (_y = _downY; _y < _topY; _y++) {
_srcX = _srcLeftX;
for (int _x = _leftX; _x < _rightX; _x++) {
if (source.Colors [_srcY + _srcX].a > destination.Colors [_destY + _x].a)
destination.Colors [_destY + _x] = source.Colors [_srcY + _srcX];
_srcX ++;
}
_srcY += source.width;
_destY += destination.width;
}
}
示例5: ReplacePosition
public Entity ReplacePosition(IntVector2 newValue)
{
var component = CreateComponent<PositionComponent>(ComponentIds.Position);
component.value = newValue;
ReplaceComponent(ComponentIds.Position, component);
return this;
}
示例6: applyColors
public void applyColors(Color32[] colors, bool sendEvents = true, bool radialAnimate = false, IntVector2 center = null)
{
for (int i = 0; i < colors.Length; i++) {
if (colors[i].a !=0){
_r = _actualColors[i].r;
_actualColors[i].r = colors[i].r;
colors[i].r = _r;
_g = _actualColors[i].g;
_actualColors[i].g = colors[i].g;
colors[i].g = _g;
_b = _actualColors[i].b;
_actualColors[i].b = colors[i].b;
colors[i].b = _b;
}
}
if (radialAnimate){
IntVector2 point;
if (center == null){
point = new IntVector2( config.canvasSize.x/2, config.canvasSize.y/2);
} else {
point = center;
}
StartCoroutine(radialLayer.updateColorsAndAnimate(colors,point));
}
StartCoroutine( backLayer.updateColors(_actualColors, radialAnimate));
if (sendEvents && events.onActiveReceiveNewColors != null)
events.onActiveReceiveNewColors();
}
示例7: ReplaceVelocity
public Entity ReplaceVelocity(IntVector2 newValue)
{
var component = CreateComponent<VelocityComponent>(ComponentIds.Velocity);
component.value = newValue;
ReplaceComponent(ComponentIds.Velocity, component);
return this;
}
示例8: MoveByVector
public void MoveByVector(IntVector2 offset)
{
IntVector2 newPos = Map.BoundPos(pos+offset);
if (mode == CATCH) {
IntVector2 totemNewPos = Map.BoundPos (pos + dir + offset);
if (offset == dir) { // forward
if (Map.mainMap [totemNewPos.x, totemNewPos.y].Count != 0) {
return;
}
} else if (offset == -dir) { // backward
if (Map.mainMap [newPos.x, newPos.y].Count != 0)
return;
} else { // 平移
if (Map.mainMap [totemNewPos.x, totemNewPos.y].Count != 0 ||
Map.mainMap [newPos.x, newPos.y].Count != 0)
return;
}
// Update the pos of the caught totem
IntVector2 totemPre = new IntVector2(caughtTotem.pos.x, caughtTotem.pos.y);
caughtTotem.pos = totemNewPos;
Map.UpdatePos (caughtTotem, totemPre);
} else if (Map.mainMap [newPos.x, newPos.y].Count != 0) {
return;
}
base.MoveByVector (offset);
}
示例9: OnSerializeNetworkView
void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
{
BoardLocation newLocation= new BoardLocation(new IntVector2(0,0), new IntVector2(0,0));
int maxSpeed = 0;
IntVector2 direction = new IntVector2(0,0);
BoardLocation lastBoardLocation = new BoardLocation(new IntVector2( 0, 0), new IntVector2(0,0));
if (stream.isWriting)
{
newLocation = this.boardLocation;
maxSpeed = this.maxSpeed;
direction = this.direction;
lastBoardLocation = this.lastBoardLocation;
newLocation.Serialize( stream );
stream.Serialize( ref maxSpeed );
direction.Serialize( stream );
lastBoardLocation.Serialize( stream );
}
else
{
newLocation.DeSerialize( stream );
stream.Serialize( ref maxSpeed );
direction.DeSerialize( stream );
lastBoardLocation.DeSerialize( stream );
this.boardLocation = newLocation;
this.maxSpeed = maxSpeed;
this.direction = direction;
this.lastBoardLocation = lastBoardLocation;
}
}
示例10: onMouseOverWithButtonDone
void onMouseOverWithButtonDone(IntVector2 obj)
{
Profiler.BeginSample("onMouseOverWithButtonDone");
Profiler.BeginSample("init start");
points.Add(obj);
InterpolateContext ic = new InterpolateContext (new LinearInterpolationStrategy());
Profiler.EndSample();
Profiler.BeginSample("interpolation");
if (interpolatedPath==null)
interpolatedPath= new List<IntVector2>();
else
interpolatedPath.Clear();
ic.interpolate(points, interpolatedPath);
Profiler.EndSample();
Profiler.BeginSample("fetch colors");
Color32[] workingColors= canvas.fetchColors();
Profiler.EndSample();
Profiler.BeginSample("apply points with cache");
TextureUtil.generateTexturePath(canvasTool, ColorUtil.getRandomColor(),interpolatedPath,workingColors,canvasConfig.canvasSize.x, canvasConfig.canvasSize.y);
Profiler.EndSample();
Profiler.BeginSample("update back layer");
Debug.Log("change color and use aply method");
//canvas.applyColors(workingColors, ColorUtil.getRandomColor());
Profiler.EndSample();
Profiler.EndSample();
}
示例11: OnControllerColliderHit
void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
MazeCell cell = hit.gameObject.GetComponentInParent<MazeCell>();
if (cell == null)
return;
if(cell != currentCell)
{
if(currentCell != null)
currentCell.OnPlayerExit();
cell.OnPlayerEnter();
}
currentCell = cell;
Vector3 transformDirection = new Vector3(Mathf.Round(transform.forward.x), 0f, Mathf.Round(transform.forward.z));
IntVector2 direction = new IntVector2((int) transformDirection.x, (int) transformDirection.z);
if(direction.x != 0 && direction.z != 0)
{
if (Random.Range(0, 1) == 1)
direction.x = 0;
else
direction.z = 0;
}
MazeDirection mazeDirection = MazeDirections.FromIntVector2(direction);
faceDirection = mazeDirection;
}
示例12: PlaceAtLocation
public virtual bool PlaceAtLocation(IntVector2 location)
{
Location = location;
if (location != null)
{
hexCell = GridManager.instance.GetHexCell(location);
if (hexCell != null)
{
transform.position = hexCell.transform.position;
hexCell.placedPlaceable = this;
return true;
}
}
else
{
if (hexCell != null)
{
if (hexCell.placedPlaceable == this)
{
hexCell.placedPlaceable = null;
}
hexCell = null;
}
}
return false;
}
示例13: DoMove
GameAction DoMove(Direction dir)
{
IntVector2 ov = new IntVector2(dir);
if (ov.IsNull)
return new WaitAction(1);
var env = this.Worker.Environment;
for (int i = 0; i < 7; ++i)
{
var v = ov.FastRotate(((i + 1) >> 1) * (((i % 2) << 1) - 1));
var d = EnvironmentHelpers.AdjustMoveDir(env, this.Worker.Location, v.ToDirection());
if (d != Direction.None)
return new MoveAction(d);
}
if (EnvironmentHelpers.CanMoveFromTo(this.Worker, Direction.Up))
return new MoveAction(Direction.Up);
if (EnvironmentHelpers.CanMoveFromTo(this.Worker, Direction.Down))
return new MoveAction(Direction.Down);
return new WaitAction(1);
}
示例14: DrawRoom
void DrawRoom( IntVector2 pos, IntVector2 size )
{
// char count = '0';
var yMax = size.y - 1;
var xMax = size.x - 1;
for( int x = 0; x < size.x; ++x )
{
for( int y = 0; y < size.y; ++y )
{
RLTile t = baseTiles_.GetRandomFloor();
if( (x == 0 || x == xMax ) && y != 0 )
t = baseTiles_.walls_.doubleVert_;
if( (y == 0 || y == yMax ) && x != 0 )
t = baseTiles_.walls_.doubleHor_;
if (x == 0 && y == 0)
t = baseTiles_.walls_.doubleBLCorner_;
if ( x == 0 && y == yMax )
t = baseTiles_.walls_.doubleTLCorner_;
if( x == xMax && y == yMax )
t = baseTiles_.walls_.doubleTRCorner_;
if( x == xMax && y == 0 )
t = baseTiles_.walls_.doubleBRCorner_;
SetTile(x + pos.y, y + pos.y, t.ch_, t.color_ );
}
}
}
示例15: Decode
public virtual bool Decode (Encoding encoding)
{
IntVector2 newLocation = new IntVector2(encoding.Int(0)-31, encoding.Int (1)-31);
Mechanism placedMechanism = GridManager.instance.GetHexCell(newLocation).placedMechanism;
bool didReplacedPart = false;
if (placedMechanism != null) // we are replacing a part
{
if (placedMechanism.MechanismType == MechanismType && // we are replacing the same type of part
placedMechanism.Location.IsEqualTo(newLocation) && // the location of the old part is the same as this new one (important for multicell mechanisms e.g. weldingRig)
!placedMechanism.isSolutionMechanism) // is a level mechanism (not part of the solution, part of the problem ;p)
{
ObjectPoolManager.DestroyObject(placedMechanism);
PlaceAtLocation(newLocation);
isSolutionMechanism = false; // we use the already on board's movable (i.e. immovable)
}
else
{
// something went wrong, we are loading a mechanism on top of one that is different, or a solution mechanism
Debug.LogError("Something went wrong, we are loading a mechanism on top of one that is different, or a solution mechanism");
return false;
}
}
else // this is a new part
{
PlaceAtLocation(newLocation);
isSolutionMechanism = (int)encoding.Int(2) == 1;
}
return true;
}