游戏思路借鉴三——随机生成食物!(四)

天呐,爷爷,你关注的博主一天两更了!
今天我们继续上一期的往下做现在我们的小蛇蛇已经可以在窗体内运动了,并且撞到窗体还会死亡;那么为了小蛇蛇能够快速健康的长大,我们要在窗体中让他自动生成食物,并且为了增加游戏的趣味性,我们需要一个小小的设计,我们让我们的食物随机位置产生,并且让食物每次产生的颜色随机产生,毕竟五颜六色的才有味道
我们要各种各样的随机,少不了要用到随机函数rnd
再让它的各种属性随机之前。我们先要让他产生,并且这里要明确,食物是在我们的小蛇吃完上一个食物之后在产生;这样我们就把食物的产生,方式,以及产生机制明确了
我们这里也是采用调用函数的方法

'自定义函数随机生成一颗食物在窗体内
Function rndfood()
Randomize
goods.X = Int(Rnd * (ScaleWidth - W))
goods.Y = Int(Rnd * (ScaleHeight - W))
goods.C.R = Int(Rnd * 256)
goods.C.G = Int(Rnd * 256)
goods.C.B = Int(Rnd * 256)
End Function
'自定义函数画食物
Function drawfood()
Line (goods.X, goods.Y)-(goods.X + W, goods.Y + W), RGB(goods.C.R, goods.C.G, goods.C.B), BF
End Function

这里有一个博主觉得很牛逼的地方:vb并不是面向对象的,但是我们这一步实际上是吧食物当作一个对象我么你在通用里声明了一个自定义类型,这个类型拥有坐标,拥有颜色(rgb)
这里博主也把在通用里的声明发出来

'定义食物类型
Private Type Food
    X As Single
    Y As Single
    C As Color
End Type
'声明一个食物变量
Dim goods As Food

还记得我们在最开始贪吃蛇第一篇中的那些基础的事情吗?我们当时也声明了一个自定义类型color,你会发现我们在当时的操作现在又用到了,我们当时用声明它的原因是为了随即生成蛇的颜色,我们在自定义类型color中声明了三个变量R.G.B这里我也把那边的代码在搬回来帮助大家理解

'定义颜色类型
Private Type Color
    R As Integer
    '红色
    G As Integer
    '绿色
    B As Integer
    '蓝色
End Type

我们默认让他们跟别代表三种颜色,这里有人会问,rgb函数里的三个参数书写都是一样的能不能用一个变量分别来代表单个参数呢,这里博主也进行了实验,事实是可以,但是它内部颜色产生方式变了,因为我们原本是要产生三个不同的颜色让他们单个混合起来产生一个新的颜色,而如果我们只用一个变量的话,那相当于他是三个相同数字的纯色混合,并不满足博主的审美标准
食物完成,预告一下,下面我们要让我们的小蛇蛇吃到食物身体变长,并且获取食物的颜色

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值