| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 207 人关注过本帖
标题:图像处理进阶----动画处理一例
收藏  订阅  推荐  打印
我是菜鸟哦
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:650
积分:7270
威望:11
注册:2007-5-4
图像处理进阶----动画处理一例

刚做了一个模拟坦克行走,射击的动画(坦克有点粗糙了,呵呵),希望对图像进阶的编程爱好者起到抛砖引玉的效果,这里发出源码

Private a,b As Double
Private m, n As Double
Private flag, check As Integer
Private boom As Integer






Private Sub Form_Load() '坦克初始位置向上
SendKeys "W"
End Sub

Private Sub P_Keydown(KeyCode As Integer, Shift As Integer)
P.ScaleMode = 0  '用户自定义
P.ScaleMode = 3
P.Scale (-10, 10)-(10, -10) '设定行走范围

If a >= -9.55 And (KeyCode = vbKeyA Or KeyCode = vbKeyA + 32) Then 'A
P.Cls
a = a - 0.2
P.DrawWidth = 15
P.PSet (a, b), vbBlue
P.DrawWidth = 2
P.Line (a, b)-(a - 0.5, b), vbRed
flag = 1                                       ’标记坦克方向,为发射方向做基础
End If

If a <= 9.55 And (KeyCode = vbKeyD Or KeyCode = vbKeyD + 32) Then 'D
P.Cls
a = a + 0.2
P.DrawWidth = 15
P.PSet (a, b), vbBlue
P.DrawWidth = 2
P.Line (a, b)-(a + 0.5, b), vbRed
flag = 2
End If

If b <= 9.55 And (KeyCode = vbKeyW Or KeyCode = vbKeyW + 32) Then 'W
P.Cls
b = b + 0.2
P.DrawWidth = 15
P.PSet (a, b), vbBlue
P.DrawWidth = 2
P.Line (a, b)-(a, b + 0.5), vbRed
flag = 3
End If

If b >= -9.55 And (KeyCode = vbKeyS Or KeyCode = vbKeyS + 32) Then 'S
P.Cls
b = b - 0.2
P.DrawWidth = 15
P.PSet (a, b), vbBlue
P.DrawWidth = 2
P.Line (a, b)-(a, b - 0.5), vbRed
flag = 4
End If

If b >= -9.55 And (KeyCode = vbKeyH Or KeyCode = vbKeyH + 32) And boom = 0 Then 'H  子弹射击处理BOOM=0防止重复发射
m = a
n = b
boom = 1
check = flag
Timer1.Enabled = True
End If
End Sub



Private Sub Timer1_Timer() '子弹方向处理
P.DrawWidth = 15
P.Cls
P.PSet (a, b), vbBlue





P.DrawWidth = 2
If check = 1 Then
P.Line (m, n)-(m - 0.2, n), vbRed
m = m - 0.2
End If

If check = 2 Then
P.Line (m, n)-(m + 0.2, n), vbRed
m = m + 0.2
End If

If check = 3 Then
P.Line (m, n)-(m, n + 0.2), vbRed
n = n + 0.2
End If

If check = 4 Then
P.Line (m, n)-(m, n - 0.2), vbRed
n = n - 0.2
End If

If m <= -9.8 Or m >= 9.8 Or n <= -9.8 Or n >= 9.8 Then  ‘子弹越界的话,给坦克重装子弹,还原发射位置
m = 0
n = 0
boom = 0
P.Cls
P.DrawWidth = 15
P.PSet (a, b), vbBlue
Timer1.Enabled = False
End If
End Sub

[ 本帖最后由 我是菜鸟哦 于 2008-10-8 20:47 编辑 ]
附件: 只有本站会员才能下载或查看附件,请您 登录注册
2008-10-8 20:05
jxyga111
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:3992
积分:4307
威望:11
来自:中華人民共和國
注册:2008-3-21

學習

烈焰照耀世界,斌凍凍千萬裏
2008-10-8 20:33
共有 206 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.060598 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved