垂直轮播渲染脚本
我需要有关 CarouselExample 的一些帮助,可以使用此 链接。我想让它垂直旋转。我在 .rs 文件中找到了一个名为 getMatrixForCard 的方法,其中完成了卡片矩阵的转换。方法如下:
static bool getMatrixForCard(rs_matrix4x4* matrix, int i, bool enableSway, bool
enableCardMatrix)
{
float theta = cardPosition(i);
float swayAngle = getSwayAngleForVelocity(velocity, enableSway);
rsMatrixRotate(matrix, degrees(theta), 0, 1, 0);
rsMatrixTranslate(matrix, radius, getVerticalOffsetForCard(i), 0);
/* rsMatrixTranslate(matrix, 0, radius, 0);*/
float rotation = cardRotation + swayAngle;
if (!cardsFaceTangent) {
rotation -= theta;
}
rsMatrixRotate(matrix, degrees(rotation), 0, 1, 0);
bool stillAnimating = false;
if (i == animatedSelection) {
float3 scale;
stillAnimating = getAnimatedScaleForSelected(&scale);
rsMatrixScale(matrix, scale.x, scale.y, scale.z);
}
// TODO(jshuma): Instead of ignoring this matrix for the detail texture, use card
bounding box
if (enableCardMatrix) {
rsMatrixLoadMultiply(matrix, matrix, &cards[i].matrix);
}
return stillAnimating;
}
所以我猜想从这一行更改 x 和 y 的值可以使其工作。
rsMatrixTranslate(matrix, radius, getVerticalOffsetForCard(i), 0);
但事实并非如此。如果有人检查过这个例子并且知道如何帮助我并使旋转木马垂直,我将不胜感激。
I need some help with the CarouselExample that can be checked out using this link. I want to make it spin vertically. I found a method in the .rs file called getMatrixForCard where the transformations on the matrix of the cards is done. Here is the method:
static bool getMatrixForCard(rs_matrix4x4* matrix, int i, bool enableSway, bool
enableCardMatrix)
{
float theta = cardPosition(i);
float swayAngle = getSwayAngleForVelocity(velocity, enableSway);
rsMatrixRotate(matrix, degrees(theta), 0, 1, 0);
rsMatrixTranslate(matrix, radius, getVerticalOffsetForCard(i), 0);
/* rsMatrixTranslate(matrix, 0, radius, 0);*/
float rotation = cardRotation + swayAngle;
if (!cardsFaceTangent) {
rotation -= theta;
}
rsMatrixRotate(matrix, degrees(rotation), 0, 1, 0);
bool stillAnimating = false;
if (i == animatedSelection) {
float3 scale;
stillAnimating = getAnimatedScaleForSelected(&scale);
rsMatrixScale(matrix, scale.x, scale.y, scale.z);
}
// TODO(jshuma): Instead of ignoring this matrix for the detail texture, use card
bounding box
if (enableCardMatrix) {
rsMatrixLoadMultiply(matrix, matrix, &cards[i].matrix);
}
return stillAnimating;
}
So i guessed that changing the values of x with y from this line, would make it work.
rsMatrixTranslate(matrix, radius, getVerticalOffsetForCard(i), 0);
But it does not. Please if someone has checked this example and knows how to help me and make the carousel vertical, i would appreciate it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要更改此函数,您需要更改
carousel.rs 文件中的其他一些参数,将
的
CarouselTestActivity.java 中
和 更改为
和将 onCreate() 更改为如下
输出将如下
you don't need to change in this function, you need to change in some other params
in the carousel.rs file replace
with
and in the CarouselTestActivity.java change
to
and change onCreate() to be as follow
the output will be as follow