当前位置: 首页 > 知识库问答 >
问题:

粒子系统

赵鸿畴
2023-03-14
                ParticleSystem ps = new ParticleSystem(holder.itemView.getContext(), 50, R.drawable.emoji_1f358, 1000);
                ps.setSpeedRange(0.1f, 0.25f);
                ps.setScaleRange(0.7f, 1.3f);
                ps.setSpeedRange(0.1f, 0.25f);
                ps.setAcceleration(0.0001f, 90);
                ps.setRotationSpeedRange(90, 180);
                ps.setFadeOut(200, new AccelerateInterpolator());
                ps.emit(v, 100)

我试图在MyAdapter文件中使用以下函数:-

public void onBindViewHolder(final MyHolderCHAT holder, final int position) {
}

这会给我一个构建错误,如下所示:-

错误:(1824,41)错误:没有为ParticleSystem(Context,int,int,int)构造函数ParticleSystem(ViewGroup,int,Drawable,long)不适用(参数不匹配;上下文不能转换为ViewGroup)构造函数ParticleSystem(活动,int,int,long)不适用(参数不匹配;上下文不能转换为活动)构造函数ParticleSystem(活动,int,Drawable,long)不适用(参数不匹配;上下文不能转换为活动)构造函数ParticleSystem(活动,int,Bitmap,long)不适用(参数不匹配;上下文不能转换为活动)构造函数ParticleSystem ParticleSystem(Activity,int,AnimationDrawable,long)不适用(参数不匹配;上下文无法转换为Activity)

下面是我的适配器代码:

public class MyAdapterCHAT extends RecyclerView.Adapter<MyHolderCHAT>  {

    Context c;
    Activity activity;
    int click=0;
    int img_pos;
    boolean isPlaying=false;
    static MediaPlayer mp;
    int curr_pos;
     ViewGroup vg;
    CountDownTimer cT;
    int total;
    String DBname;
    //private FullScreenImageAdapter adapter;

    ArrayList<String> path;
    private ViewPager viewPager;
    String react;
    ArrayList<String> pagerListItems;
    int progress=0;
    ArrayList<DATA_CONTACT_CHAT> data_contact,filterlist22;
  //  private final ItemClickListener listener;

    public MyAdapterCHAT(Context c, ArrayList<DATA_CONTACT_CHAT> data_contact) {
        this.c = c;
        this.data_contact = data_contact;
        this.filterlist22=data_contact;
       // this.listener=listener;
    }


    @Override
    public MyHolderCHAT onCreateViewHolder(ViewGroup parent, int viewType) {

       View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.chatinputlayout,parent,false);

        MyHolderCHAT myHolderCHAT=new MyHolderCHAT(view);

        //this.vg=parent;

        return myHolderCHAT;
    }


 @Override
    public void onBindViewHolder(final MyHolderCHAT holder, final int position) {
        //BIND DATA

holder.hi5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(holder.counter_hi5.getText().toString().contains("remaining:"))
                {
                    if (data_contact.get(position).getSender_name().equals(data_contact.get(position).getCurrent_user())) {

                        Vibrator vibe = (Vibrator) holder.itemView.getContext().getSystemService(Context.VIBRATOR_SERVICE);
                        vibe.vibrate(100);
                        Toast.makeText(c, " \uD83C\uDFFB Ohh..Wait for " + data_contact.get(position).getSecond_user() + " To Hi5 You..", Toast.LENGTH_SHORT).show();

                    } else {
                        cT.cancel();
                        holder.counter_hi5.setText(" \uD83D\uDE00 You got a High Five from " + data_contact.get(position).getSecond_user());

                   ParticleSystem ps = new ParticleSystem(holder.itemView.getContext(), 50, R.drawable.emoji_1f358, 1000);
                    ps.setSpeedRange(0.1f, 0.25f);
                   ps.setScaleRange(0.7f, 1.3f);
                    ps.setSpeedRange(0.1f, 0.25f);
                   ps.setAcceleration(0.0001f, 90);
                   ps.setRotationSpeedRange(90, 180);
                    ps.setFadeOut(200, new AccelerateInterpolator());
                    ps.emit(v, 100);

                    }
                }
                else {

                }
            }
        });



}

共有1个答案

戚泰
2023-03-14

堆栈跟踪给出了正在发生的事情。您正在传递的参数没有构造函数。

您可以尝试另一种方法来实例化它。

例如:new ParticleSystem(ViewGroup,int,Drawable,long)

Context ctx = holder.itemView.getContext()
ViewGroup vg = (ViewGroup) holder.itemView.getParent();
Drawable drawable = ContextCompat.getDrawable(ctx, R.drawable.emoji_1f358);
ParticleSystem ps = new ParticleSystem(vg, 50, drawable, 1000L);
ps.setSpeedRange(0.1f, 0.25f);
ps.setScaleRange(0.7f, 1.3f);
ps.setSpeedRange(0.1f, 0.25f);
ps.setAcceleration(0.0001f, 90);
ps.setRotationSpeedRange(90, 180);
ps.setFadeOut(200, new AccelerateInterpolator());
ps.emit(v, 100)
 类似资料:
  • 粒子系统入门 本节介绍如何实现常见类型的粒子系统。你可以自由使用文档中所有代码,不受 Unity 的任何限制。

  • 使用粒子系统 Unity 使用一个组件实现粒子系统。在场景中放置粒子系统的常用方式是,添加一个预制的游戏对象(菜单:GameObject > Create General > Particle Syste),或者为一个现有的游戏对象添加粒子系统组件(菜单:Component > Effects > Particle System)。因为该组件相当复杂,所以检视视图被分割成数个可折叠的部分或 模块,

  • 什么是粒子系统? 粒子 是小而简单的图像或网格,由粒子系统负责显示和剧烈移动。每个粒子代表了流体或无形实体的一小部分,所有粒子一起创建实体的完整外观。以烟雾为例,每个粒子是一张微小的烟雾纹理,像小块浮云一样。当许多这种微小浮云被一起布置在场景的某个区域时,整体效果是巨大的、体积填充的云朵。 系统动力学 每个粒子的生命周期是预定好的,通常是几秒钟,在此期间它可以经历各种变化。当粒子系统生成或射出一个

  • 问题内容: 谁能给我一个很好的例子,说明在libGDX中从哪里开始制作粒子系统?我已经看过libGDX源代码中的测试示例,但是仍然很难理解。也许对此做个很好的解释会有所帮助。我想我想用很多五颜六色的粒子进行某种爆炸。任何帮助是极大的赞赏! 问题答案: 在游戏类中定义粒子效果: 初始化它: 在您的方法中,将其放置在要发射粒子的位置(爆炸位置): 最后绘制(也在内): 就这样,非常简单明了。 另一件事

  • 粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,能为我们实现一些真实自然而又带有随机性的效果(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统。 下面是使用粒子系统完成的两个粒子特效: 创建粒子特效的工具 尽管你能手动创建粒子特效,按照喜好确定每个属性,但是使用工具往往更方便高效。下面介绍几个第三方工具:

  • 【粒子系统性能】页面主要展示项目运行过程中粒子系统更新和渲染的CPU占用情况,主要包括以下几个部分: 数据汇总 该项主要展示项目运行过程中的“ParticleSystem.Update CPU峰值”、“ParticleSystem.Update CPU均值”、“ParticleSystem 渲染峰值”和“ParticleSystem 渲染均值”。 粒子系统更新耗时 该项主要展示项目运行过程中的粒子