【问题标题】:How would I make a static screen effect like a tv would have?如何制作像电视一样的静态屏幕效果?
【发布时间】:2015-04-04 00:30:23
【问题描述】:

我想制作一个看起来像 static on a old tv 的效果

我希望它可以移动,我不想使用多个预制图像来制作效果。单色(黑色和白色)持续大约 3-5 秒的时间如何获得这种效果?

【问题讨论】:

  • 真的,为什么是-1?我在任何地方都找不到这种问题,如果人们想制作恐怖类型的游戏,这似乎很有用。
  • 您可能会得到-1,因为您没有告诉我们您尝试了什么,为什么它不起作用等等。“太笼统”是导致关闭的主要原因......
  • 也看看 javax.swing.Timer
  • @JohnGardner 我什么都没尝试,因为我不知道从哪里开始,这就是我问这个问题的原因。

标签: java effects pixels


【解决方案1】:

尝试使用java.awt.Canvas 类。

覆盖画布类中的paint方法,然后使用此代码生成静态:

@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);
    for(int x = 0; x < getWidth(); x++){
        for(int y = 0; y < getHeight(); y++){
            int col = (int)(Math.round(Math.random()*100)%50);
            if(Math.random() > 0.5){
                col = 255 - col;
            }
            g.setColor(new Color(col, col, col);
            g.fillRect(x, y, 1, 1);
        }
    }
}

这实际上是在渲染一个 w*h 网格是像素,每个像素的 r、g 和 b 颜色值的最大值为 50。这将产生颗粒状的黑灰色纹理,并且可以适应其他网格矩阵。

编辑:

  1. Canvas更改为JPanel,使用paintComponent方法。

  2. 根据随机机会使阴影更亮或更亮。

【讨论】:

  • 我不能使用 Canvas,因为我所有的重绘都在 JPanel 上,而且我过去也遇到过 Canvas 的问题。
  • 我已经让它在 JPanel 上工作,但有没有办法让它变成黑白而不是黑白?
  • 很抱歉。我编辑了我的答案。为了将来参考,请在您的问题中添加这样的内容,因为这对回答问题的人很有用。
  • 你想要黑白,还是两者都有?
  • 就像普通的电视静态一样,所以我猜两者都有阴影。
猜你喜欢
  • 2017-08-23
  • 2012-02-16
  • 2021-11-15
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 2018-01-03
  • 2014-09-19
  • 2018-05-26
相关资源
最近更新 更多