请教一个图形算法的问题

jy251 2009-05-22 04:55:19
我在form上画一个球的运动,就是使用timer画这个球的运动轨迹。

但是如果我要画多个球体的运动轨迹呢?
是否是在timer中来一次循环,将每个球的运动轨迹都描述一下?

如果是这样的话,那么几个还好,几十个,几百个绝对出问题,CPU都受不了。

请问,有没有什么好点的办法,让我的界面上可以画出很多很多的球在运动(考虑碰撞)?
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Harvey_He 2009-05-22
  • 打赏
  • 举报
回复
用一个线程就行了,许多游戏的多个npc的运动也是在一个线程里面,cpu受的了,不提倡多线程
gomoku 2009-05-22
  • 打赏
  • 举报
回复
...是否是在timer中来一次循环,将每个球的运动轨迹都描述一下...
是这样。


int lastTick;
void timer1_Tick(object sender, EventArgs e)
{
int elasped = Environment.TickCount - lastTick;
lastTick = Environment.TickCount;

foreach( Ball ball in balls)
{
ball.Position += ball.Direction * elapsed / 1000.0f;
}

CollisionDetection();
Invalidate();
}


如果碰撞判断算法作的好的话,不说几百个,成千上万都没问题。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧