想用processing做一个动态效果。就是用面向对象的方式做多个正方形,鼠标经过正方形区域正方形就开始旋转,离开正方形区域正方形就减速到停止。我现在可以做成一个正方形按照这种规律运动。但是做多个的时候就不行了。比较急按照我写的,始终只出现了一个对象。
想用processing做一个动态效果。就是用面向对象的方式做多个正方形,鼠标经过正方形区域正方形就开始旋转,离开正方形区域正方形就减速到停止。我现在可以做成一个正方形按照这种规律运动。但是做多个的时候就不行了。比较急按照我写的,始终只出现了一个对象。
可参考官方网站数组对象的例子:ArrayObjects
描述:
生成3*4=12个方块
鼠标停留在任意方块上时,当前方块开始旋转(此处以固定速度旋转)
鼠标移开当前方块,当前方块减速旋转至停止(此处使用了旋转速度衰减来实现,但最终停止位置不一定与初始状态一致)
鼠标移至新方块时,重复2-3过程
大致思路如下:
创建RotateSquare类(包含坐标位置、长度、颜色、旋转角度、旋转速度、鼠标悬浮状态、旋转状态等属性,判断鼠标是否悬浮于方块上、旋转角度变化、绘图等方法)
创建数组<rotateSquares>,用来存储多个RotateSquare类
draw()时,从rotateSquares依次提取每一个RotateSquare,调用display()方法进行绘图
绘图时,对当前RotateSquare判断鼠标是否悬浮于方块上,是则调用方块旋转的方法进行旋转,并更改旋转状态
当鼠标没有悬浮于方块上时,则判断状态是否为旋转,是则调用方块旋转(衰减率*旋转速度)进行减速
当旋转速度衰减到一定值时,判定停止
代码如下:
win10, processing 3.2.3
结果示意图:



供参考!