游戏对象在给定时间内不可见
Game Object invisible for a given time
大家好,目前我正在使用 SWINGAME 开发一个简单的 2D 游戏。我已经设置了 2 个对象之间的碰撞。所以当它们碰撞时,我想暂时让其中的一个在一段时间内不可见。我对时间组件感到困惑,假设我希望对象在 3 秒后不可见,然后它将变回默认对象。下面是两张图片,如果碰撞为真则显示image2,否则显示image1。顺便说一句,我使用不同的图像来表示隐形。这是我的代码。
玩家class:
public void Draw ()
{
if (invisible == true) {
if(elapsedTime <= 3.0){
elapsedTime += elapsedTime;
SwinGame.DrawBitmap ("image2.png", (float)X, (float)Y);
}
}else {
elapsedTime = 0;
SwinGame.DrawBitmap ("image1.png", (float)X, (float)Y);
}
}
public bool Invisible {
get { return invisible; }
set { invisible = value; }
}
物体碰撞class:
{... //Some codes
for(int i = 0; i < _obstacles.Count; i++)
{
if (_obstacles [i] is Invisible) {
p.Invisible = true;
p.Draw ();
}
}
//Some codes ...}
这应该可以帮助您使用 StopWatch class:
来准确计算时间
//somewhere in your code
Stopwatch sw = new Stopwatch();
sw.Start();
public void Draw ()
{
if (invisible == true) {
if(sw.ElapsedMilliseconds <= 3000){
SwinGame.DrawBitmap ("image2.png", (float)X, (float)Y);
}
}else {
sw.Restart();
SwinGame.DrawBitmap ("image1.png", (float)X, (float)Y);
}
}
大家好,目前我正在使用 SWINGAME 开发一个简单的 2D 游戏。我已经设置了 2 个对象之间的碰撞。所以当它们碰撞时,我想暂时让其中的一个在一段时间内不可见。我对时间组件感到困惑,假设我希望对象在 3 秒后不可见,然后它将变回默认对象。下面是两张图片,如果碰撞为真则显示image2,否则显示image1。顺便说一句,我使用不同的图像来表示隐形。这是我的代码。
玩家class:
public void Draw ()
{
if (invisible == true) {
if(elapsedTime <= 3.0){
elapsedTime += elapsedTime;
SwinGame.DrawBitmap ("image2.png", (float)X, (float)Y);
}
}else {
elapsedTime = 0;
SwinGame.DrawBitmap ("image1.png", (float)X, (float)Y);
}
}
public bool Invisible {
get { return invisible; }
set { invisible = value; }
}
物体碰撞class:
{... //Some codes
for(int i = 0; i < _obstacles.Count; i++)
{
if (_obstacles [i] is Invisible) {
p.Invisible = true;
p.Draw ();
}
}
//Some codes ...}
这应该可以帮助您使用 StopWatch class:
来准确计算时间//somewhere in your code
Stopwatch sw = new Stopwatch();
sw.Start();
public void Draw ()
{
if (invisible == true) {
if(sw.ElapsedMilliseconds <= 3000){
SwinGame.DrawBitmap ("image2.png", (float)X, (float)Y);
}
}else {
sw.Restart();
SwinGame.DrawBitmap ("image1.png", (float)X, (float)Y);
}
}