car db 2,2,2,2,2,2,2,2,2,2
db 2,2,2,2,2,2,0,0,0,2
db 2,2,2,2,2,2,0,0,0,2
db 2,2,2,2,2,2,0,0,0,2
db 2,2,2,2,2,2,2,2,2,2
db 2,2,2,2,2,2,2,2,2,2
db 0,0,2,0,0,0,0,2,0,0
db 0,2,0,2,0,0,2,0,2,0
db 0,0,2,0,0,0,0,2,0,0
x dw 10
y dw 10
msg db 'car program finish!!$'
speed dw 5
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ax,0a000h
mov es,ax
mov ax,13h
int 10h
call picture
ag: mov ah,7
int 21h
cmp al,'s'
jne ag
start1: in al,60h
cmp al,80h if release key
jae keyrelease
cmp al,2 1 key
jz upspeed
cmp al,3 2 key
jz downspeed
jmp keyrelease
upspeed:
mov si,speed
inc si
mov speed,si
jmp keyrelease
downspeed:
mov si,speed
dec si
mov speed,si
jmp keyrelease
keyrelease:
call clearpicture
mov si,speed
add si,x
mov x,si
call picture
call delay
mov si,x
cmp si,310
jc start1
mov ah,9
mov dx,offset msg
int 21h
mov ah,7
int 21h
mov ax,4c00h
int 21h
picture proc near
mov dx,y
mov bx,0
again: cmp dx,0
je over
add bx,320
dec dx
jmp again
over: mov dx,9
lea si,car
next1: mov cx,10
mov di,x
next: mov al,[si]
mov es:[bx+di],al
inc si
inc di
loop next
add bx,320
dec dx
jne next1
ret
picture endp
clearpicture proc near
mov dx,y
mov bx,0
again2: cmp dx,0
je over2
add bx,320
dec dx
jmp again2
over2: mov dx,9
next12: mov cx,10
mov di,x
next2: mov al,0
mov es:[bx+di],al
inc di
loop next2
add bx,320
dec dx
jne next12
ret
clearpicture endp
delay proc near
push bx
push cx
mov bx,1234
back:
mov cx,66
push ax
wait1:
in al,61h
and al,10h
cmp al,ah
je wait1
mov ah,al
loop wait1
pop ax
dec bx
jne back
pop cx
pop bx
ret
delay endp
code ends
end start
小车运动实验步骤如下:
1、把一端附有定滑轮的长木板平放在实验桌上,并使滑轮伸出桌面,把打点计时器固定在长木板上没有滑轮的一端,连接好电路。
2、把一条细绳拴在小车上,细绳跨过滑轮,并在细绳的另一端挂上合适的钩码,试放手后,小车能在长木板上平稳地加速滑行一段距离,把纸带穿过打点计时器,并把他的另一端固定在小车后面。
3、把小车停在靠近打点计时器处,先接通电源,再放开小车,让小车运动,打点计时器就在纸带上打下一系列的点,取下纸带,换上新纸带,重复实验三次。
4、取下纸带,从能看得清的某个点开始,数一数纸带上共有多少个点。如果共有n个点,点子的间隔数就为n-1个,用t=0.02(n-1)s计算出纸带的运动时间。
5、用刻度尺测量一下,打下这些点,纸带通过的距离s有多长。利用公式计算出纸带在这段时间内的平均速度。把测量和计算的结果填入表中。
6、在纸带上找出连续的6个点,分别标上记号A、B、C、D、E、F。用刻度尺测出两个相邻点间的距离s1、s2、s3、s4、s5把数据填入表中。根据这些数据,运用你学过的知识,判断纸带的运动是匀速运动还是变速运动,并把判断的结果和理由写清楚。
小程序就用小程序做法,画几个地图,自己下载也行,保存在一个文件夹里,你也可以把文件夹加壳,这个代码有点多,初学你就保存在bin目录一个文件夹就行了。载如地图就是加载图片,图片放在pictrueBox中,pictrueBox尺寸设置为图片实际尺寸,图片实际尺寸画成一个关卡从出发点到终点全部画全了,小车也放在一个pictrueBox里面,背景抽成透明(实际上小车每一种状态都存放一个图片,当快截键或者 *** 作改变状态时就加载gif动画图片,你就看到小车象是在动)。
控制运动方向是个相对运动原理,地图图片象下移动top值按加速事件变化递增,小车图片左右移动。这样你就象是看到车子在想前走,一路披靡。
timer做计时器,加速的时候timer的intaver变化,车子和地图移动速度就会变化。
设置关卡,一个地图跑完你要继续下一个或者开始结束提示。
最后一个是最关键的要素,设置障碍物,设置路段坐标,哪是路哪是边界你要搞清楚,我们用XML或者数据库记录几个障碍物坐标就好了,路边界是有规律的,平均记录几个横向边距,通过横向边距给路边定宽度,你知道左边路边坐标,就知道路的边界。最精确的方法,是再覆盖一个透明图片,判断小车图片非透明部分路段图片。
其实一般我们都是导入模型用DirectX或者调用flash控制flash参数去做,但这样比上面我介绍的难度大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)