Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package graphics; import java.util.Random; public class Screen extends Render { private Render test; public Screen(int width, int height) { super(width, height); Random random = new Random(); test = new Render(256, 256); for(int i = 0; i < 256*256; i++) { test.pixels[i] = random.nextInt(); } } public void render() { draw(test, 0, 0); } } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Quellcode |
|
1 2 3 |
public class Screen extends Render { private Render test; |
Das es die Zeile auf die der PC zeigt.allerdings wundert es mich eben, weshalb der Debugger mir die Zeile screen = new Screen (HEIGHT, WIDTH); markiert?
Ich kenne dein Programm nicht, aber vielleicht nichts?Was ist denn bei dieser Zeile falsch?
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import java.awt.Canvas; import java.awt.Graphics; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.awt.image.DataBufferInt; import javax.swing.JFrame; import graphics.Render; import graphics.Screen; public class Display extends Canvas implements Runnable { private static final long serialVersionUID = 1L; public static final int WIDTH = 800; public static final int HEIGHT = 600; public static final String TITLE = "Singularity Pre-Alpha 0.01"; private Thread thread; private Screen screen; private BufferedImage img; private Render render; private boolean running = false; private int[] pixels; public Display() { screen = new Screen(WIDTH, HEIGHT); img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); pixels = ((DataBufferInt)img.getRaster().getDataBuffer()).getData(); } private void start() { if(running) return; running = true; thread = new Thread(this); thread.start(); } private void stop() { if(!running) return; running = false; try { thread.join(); } catch (Exception e) { e.printStackTrace(); System.exit(0); } } public void run() { while(running) { update(); render(); } } private void update() { } private void render() { BufferStrategy bs = this.getBufferStrategy(); if(bs == null) { createBufferStrategy(3); return; } screen.render(); for(int i = 0; i < WIDTH * HEIGHT; i++) { pixels[i] = screen.pixels[i]; } Graphics g = bs.getDrawGraphics(); g.drawImage(img, 0, 0, WIDTH, HEIGHT, null); g.dispose(); bs.show(); } public static void main(String[] args) { Display game = new Display(); JFrame frame = new JFrame(); frame.setResizable(false); frame.add(game); frame.pack(); frame.setTitle(game.TITLE); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(WIDTH, HEIGHT); frame.setLocationRelativeTo(null); frame.setVisible(true); System.out.println("running..."); game.start(); } } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package graphics; public class Render { public final int width; public final int height; public final int[] pixels; public Render(int width, int height) { this.width = width; this.height = height; pixels = new int[width * height]; } public void draw(Render render, int xOffset, int yOffset) { for(int y = 0; y < render.height; y++) { int yPix = y + yOffset; for(int x = 0; x < render.width; x++) { int xPix = x + xOffset; pixels[xPix + yPix * width] = render.pixels[x + y * render.width]; } } } } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package graphics; import java.util.Random; public class Screen extends Render { private Render test; public Screen(int width, int height) { super(width, height); Random random = new Random(); test = new Render(256, 256); for(int i = 0; i < 256*256; i++) { test.pixels[i] = random.nextInt(); } } public void render() { draw(test, 0, 0); } } |
Werbeanzeige