get paid to paste

simple moving shapes

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
import java.awt.GraphicsDevice;
import java.awt.GraphicsConfiguration;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.DisplayMode;
import java.awt.Dimension;

import java.awt.image.BufferedImage;
import java.awt.image.BufferStrategy;

import java.awt.geom.AffineTransform;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

import javax.imageio.ImageIO;

import java.io.File;

import java.util.Random;

public class ScreenTest
{
	private static ScreenTest st;
	
	private Graphics2D g2dbf;
	//
	private Graphics g;
	
	private BufferedImage bgImage;
	
	//JFrame size
	private int frameWidth,frameHeight;
	
	//Identity transform
	private AffineTransform identityTrans;
	//Object transform
	private AffineTransform objTrans;
	//
	
	JFrame frame;
	
	//platform's graphics attributes...
    GraphicsEnvironment ge;
    GraphicsDevice gd;
    GraphicsConfiguration gc;
	
	public double posX, posY;
	public double posY2,velY2;
	private double velX, velY;
	public double recentPosY;
	
	int fps;
	private BufferedImage myImg;
	
	Random rand = new Random();
	
	ScreenTest()
	{
		// Get platform's graphics attributes...
		ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		gd = ge.getDefaultScreenDevice();
		gc = gd.getDefaultConfiguration();
		
		//JFrame properties
		frame = new JFrame(gc);
		frame.setTitle("Screen Test");
		frame.setIgnoreRepaint(true);
		frame.setResizable(false);
		frame.setUndecorated(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		//Set transform to identity transform
		identityTrans = new AffineTransform();
		//object transform
		objTrans = new AffineTransform();
		
		//Windowed Mode
		frameWidth = 640;
        frameHeight = 480;
		frame.setUndecorated(false);
		
		try { myImg = ImageIO.read(new File("img.png")); }
		catch(IOException e){ System.err.println(e); }
		
		posX = frameWidth/2;
		posY = frameHeight/2;
		posY2 = posY;
		
		velX = 0;
		velY = -4;
		velY2 = -6;
		recentPosY = posY;
		
		
		frame.setSize(frameWidth,frameHeight);
		frame.setVisible(true);
		
		
		//back buffer image
		bgImage = gc.createCompatibleImage(frameWidth,frameHeight);
		
	}
	
	void update_Game()
	{
		updateImg(); 
	}
	
	void drawGraphics()
	{
		try
		{
			
			g2dbf = bgImage.createGraphics();
            //set background
            g2dbf.setColor(Color.BLACK);
            g2dbf.fillRect(0,0,frameWidth,frameHeight);
		    
		    g2dbf.setColor(Color.WHITE);
		    g2dbf.fillRect((int)posX,(int)posY,50,50);
		    g2dbf.fillOval((int)posX + 80,(int)posY2,50,50);
		        
		    //print some status information
            g2dbf.setColor(Color.WHITE);
            g2dbf.drawString("Image: " + Math.round(posX) + "," +
                Math.round(posY) , 5, 40);
			
			g2dbf.drawString( String.format( "FPS: %s", fps ), 5, 60 );
			
			g = frame.getGraphics();
		    g.drawImage(bgImage,0,0,null);
			
			Toolkit.getDefaultToolkit().sync();
		}
		finally
		{
			if(g != null) g.dispose();
			if(g2dbf != null) g2dbf.dispose();
		}
	}

	
     void updateImg()
	{
		
		posX += velX;
		posY += velY;
		posY2 += velY2;
		
        if (posX < -70) posX = frameWidth + 10;
        else if (posX > frameWidth + 10) posX = -10;
		
        if (posY < -10) posY = frameHeight + 10;
        else if (posY > frameHeight + 10) posY = -10;
		
        if (posY2 < -10) posY2 = frameHeight + 10;
        else if (posY2 > frameHeight + 10) posY2 = -10;
		
	}
	
	public static void main(String[]args) throws InterruptedException,InvocationTargetException
	{
		//System.setProperty("sun.java2d.opengl", "True");
		
		//System.setProperty("sun.java2d.d3d", "True");
		
		System.setProperty("sun.java2d.d3d", "false");
		
		//System.setProperty("sun.java2d.trace","count");
		
		SwingUtilities.invokeAndWait(new Runnable(){
			@Override
			public void run()
			{
		       st = new ScreenTest();
			}
		});
			
			
            long next_game_tick = System.nanoTime();
			final int TICKS_PER_SECOND = 50;
			final int SKIP_TICKS = 1_000_000_000/TICKS_PER_SECOND;
			final int MAX_FRAME_SKIPS = 10;
			int loops;
			
			while(true)
			{
			  loops = 0;
			  
			 while(System.nanoTime() > next_game_tick && loops < MAX_FRAME_SKIPS)
			 {
				 st.update_Game();
				 st.drawGraphics();
				 next_game_tick += SKIP_TICKS;
				 loops++;
			     
			 }
			  
              // Yield some cpu time...
              Thread.yield();
			}
			
         
	}
}

Pasted: Mar 13, 2019, 3:26:34 am
Views: 5