INT 21H
这不就是退出的代码吗?
退出子程序的代码:RET。
退出中断程序的代码:IRET。
----
哦,楼主的程序中,缺少检测键盘的程序段。
所以,运行起来,键盘就控制不了程序了。
这时,只能用 ALT+TAB 来切换。
在程序中,加入检测键盘的程序段,即可。
不要加《等待按键输入》的,要加《不等待输入的》。
你自己查查把,是几号中断调用,我记不住了。
当没有按键,程序仍然自动运行。
当有人按键,程序就停下来,对键值进行判断,该退出就退出。
定义变量 CPoint pos //坐标位置int vx, vy //速度
CBrush bru //画刷
CPen pen //画笔
在构造函数里初始化变量:pos.x = 100
pos.y = 100
vx = vy =5
bru.CreateSolidBrush(RGB(255, 0, 0))
pen.CreatePen(PS_SOLID, 5, RGB(255, 0, 0))
画图函数里:void CSmallBallView::OnDraw(CDC* pDC)
{
CSmallBallDoc* pDoc = GetDocument()
ASSERT_VALID(pDoc)
CClientDC dc(this)
dc.SelectObject(&bru)
dc.SelectObject(&pen)
Ellipse(dc, pos.x-25, pos.y-25, pos.x+25, pos.y+25)
// TODO: add draw code for native data here
}
定时器:void CSmallBallView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
pos.x += vx
pos.y += vy
CRect rect = NULL
GetWindowRect(&rect)
if(pos.x+25>=rect.Width())
{
bru.DeleteObject()
pen.DeleteObject()
bru.CreateSolidBrush(RGB(255, 0, 0))
pen.CreatePen(PS_SOLID, 5, RGB(255, 0, 0))
vx = -vx
}
if(pos.x-25<=0)
{
bru.DeleteObject()
pen.DeleteObject()
bru.CreateSolidBrush(RGB(0, 0, 255))
pen.CreatePen(PS_SOLID, 5, RGB(0, 0, 255))
vx = -vx
}
if(pos.y+25>=rect.Height())
{
bru.DeleteObject()
pen.DeleteObject()
bru.CreateSolidBrush(RGB(0, 255, 0))
pen.CreatePen(PS_SOLID, 5, RGB(0, 255, 0))
vy = -vy
}
if(pos.y-25<=0)
{
bru.DeleteObject()
pen.DeleteObject()
bru.CreateSolidBrush(RGB(255, 255, 0))
pen.CreatePen(PS_SOLID, 5, RGB(255, 255, 0))
vy = -vy
}
CClientDC dc(this)
OnDraw(&dc)
Invalidate()
CView::OnTimer(nIDEvent)
}
在菜单里添加一个子菜单,用来启动定时器:void CSmallBallView::OnStart()
{
// TODO: Add your command handler code here
SetTimer(1, 10, NULL)
}
大概就这样啦!
假设高的移动速度为v1,横的移动速度为v2,小球的控件名为Balldim v1 as integer
dim v2 as integer
'下面为小球的移动
Ball.top=ball.top+v'向着右下移动
ball.left=ball.left+v
if ball.top>=me.top then'撞击底部
v1=v1*-1'重点:此处将高的移动速度乘以-1,表示让其反方向移动,下面同样
endif
if ball.left>=me.left then'撞击右边
v2=v2*-1
endif
if ball.top=<0 then'撞击顶部
v1=v1*-1
endif
if ball.left=<0 then'撞击左边
v2=v2*-1
endif
这是最基本的反d效果,可以根据你的需要做适当更改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)