本文整理汇总了C#中Microsoft.Xna.Framework.Graphics.Sprite.evento_ColisionHorizontalTile方法的典型用法代码示例。如果您正苦于以下问题:C# Sprite.evento_ColisionHorizontalTile方法的具体用法?C# Sprite.evento_ColisionHorizontalTile怎么用?C# Sprite.evento_ColisionHorizontalTile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Xna.Framework.Graphics.Sprite
的用法示例。
在下文中一共展示了Sprite.evento_ColisionHorizontalTile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: actualizarColisiones
/*
* Actualiza los sprites con las
* colisiones de los Tiles y
* otros Sprites.
*/
private void actualizarColisiones(Sprite objSprite, long elapsedTime)
{
if (objSprite.solidoTiles) {
// Corregir x
float dx = objSprite.velocidadX;
float oldX = objSprite.x;
float newX = oldX + dx * elapsedTime;
Point? tile = getColisionTile(objSprite, newX, objSprite.y);
if (tile != null) {
// line up with the tile boundary
if (dx > 0) {
objSprite.x =
TileMap.tilesAPixels(tile.Value.X)
- objSprite.animacion.obtenerImagen().Width
- (objSprite.x - objSprite.x);
} else if (dx < 0) {
objSprite.x = TileMap.tilesAPixels(tile.Value.X + 1);
}
objSprite.evento_ColisionHorizontalTile();
}
// Corregir y
float dy = objSprite.velocidadY;
float oldY = objSprite.y;
float newY = oldY + dy * elapsedTime;
tile = getColisionTile(objSprite, objSprite.x, newY);
if (tile != null) {
// line up with the tile boundary
if (dy > 0) {
objSprite.y = TileMap.tilesAPixels(tile.Value.Y)
- objSprite.animacion.obtenerImagen().Height;
} else if (dy < 0) {
objSprite.y = TileMap.tilesAPixels(tile.Value.Y + 1);
}
objSprite.evento_ColisionVerticalTile();
}
}
//if (objSprite.solidoSprites || objSprite is BoxCollisionSprite) {
if (objSprite.solidoSprites)
{
//Colision Horizontal Sprites
float dx = objSprite.velocidadX;
float oldX = objSprite.x;
float newX = oldX + dx * elapsedTime;
Sprite sprite = getColisionSprite(objSprite, newX, objSprite.y);
if (sprite != null && sprite.solidoSprites) {
sprite.evento_ColisionHorizontalSprite(objSprite);
}
//Colision Vertical Sprites
float dy = objSprite.velocidadY;
float oldY = objSprite.y;
float newY = oldY + dy * elapsedTime;
sprite = getColisionSprite(objSprite, objSprite.x, newY);
if (sprite != null && sprite.solidoSprites)
{
sprite.evento_ColisionVerticalSprite(objSprite);
}
}
}