33import java .util .ArrayList ;
44
55import processing .core .PApplet ;
6- import processing .core .PGraphics ;
76import processing .core .PImage ;
87
98public class Pelikentta {
109
10+ private static String VERSION = "3.3" ;
11+
1112 protected Tasohyppelyhahmo aktiivinen_hahmo = null ;
1213
1314 protected static PApplet papplet ;
1415 protected static boolean koordinaatisto_alustettu = false ;
1516
16- protected PImage tausta ;
17+ public PImage tausta ;
1718
1819 public int maailman_leveys ;
1920 public int maailman_korkeus ;
2021
21- protected float kameran_siirto_x = 0 ;
22- protected float kameran_siirto_y = 0 ;
22+ public float kameran_siirto_x = 0 ;
23+ public float kameran_siirto_y = 0 ;
2324 private int kamera_asetettu_viimeksi = 0 ;
2425
2526 protected ArrayList <Taso > tasot = new ArrayList <Taso >();
2627 protected ArrayList <Taso > tasotKorkeudenMukaan = new ArrayList <Taso >();
27- protected PGraphics taso_kerros ;
28- protected boolean tasokerros_vanhentunut = true ;
2928
3029 protected ArrayList <Seina > seinat = new ArrayList <Seina >();
3130 protected ArrayList <Seina > seinatJarjestyksessa = new ArrayList <Seina >();
32- protected PGraphics seina_kerros ;
33- protected boolean seinakerros_vanhentunut = true ;
3431
3532 public Pelikentta (PApplet papplet , int maailman_leveys , int maailman_korkeus ) {
3633 Pelikentta .papplet = papplet ;
34+ alusta_koordinaatisto ();
3735 this .maailman_leveys = maailman_leveys ;
3836 this .maailman_korkeus = maailman_korkeus ;
39- this .taso_kerros = papplet .createGraphics (maailman_leveys , maailman_korkeus );
40- this .seina_kerros = papplet .createGraphics (maailman_leveys , maailman_korkeus );
4137 }
4238
4339 public Pelikentta (PApplet papplet , PImage tausta_kuva ) {
4440 Pelikentta .papplet = papplet ;
41+ alusta_koordinaatisto ();
4542 this .maailman_leveys = tausta_kuva .width ;
4643 this .maailman_korkeus = tausta_kuva .height ;
4744 tausta = tausta_kuva ;
48- }
45+ }
4946
50- protected void varmista_kamera () {
47+ public Pelikentta (PApplet papplet , PImage tausta_kuva , int maailman_leveys , int maailman_korkeus ) {
48+ Pelikentta .papplet = papplet ;
5149 alusta_koordinaatisto ();
50+ this .maailman_leveys = maailman_leveys ;
51+ this .maailman_korkeus = maailman_korkeus ;
52+ tausta = tausta_kuva ;
53+ }
54+
55+ public void varmista_kamera () {
5256 if (papplet .frameCount != kamera_asetettu_viimeksi ) {
5357 kamera_asetettu_viimeksi = papplet .frameCount ;
54- if (aktiivinen_hahmo != null ) {
55- aktiivinen_hahmo .seuraa_kameralla ();
56- }
57- this .paivita_seina_kerros ();
58- this .paivita_taso_kerros ();
58+ aktiivinen_hahmo .seuraa_kameralla ();
5959 }
6060 }
6161
62- private static void alusta_koordinaatisto () {
62+ public static void alusta_koordinaatisto () {
6363 if (!koordinaatisto_alustettu ) {
6464 papplet .pushMatrix ();
6565 papplet .translate (0 , papplet .height + 0 );
@@ -69,13 +69,6 @@ private static void alusta_koordinaatisto() {
6969 }
7070 }
7171
72- public void piirra_naytolle () {
73- koordinaatisto_alustettu = false ;
74- papplet .popMatrix ();
75- papplet .popMatrix ();
76- }
77-
78-
7972 public float mouse_x () {
8073 return papplet .mouseX - kameran_siirto_x ;
8174 }
@@ -91,7 +84,7 @@ public Tasohyppelyhahmo luo_tasohyppelyhahmo(PImage kuva) {
9184 public void piirra_tausta () {
9285 if (this .tausta != null ) {
9386 papplet .pushMatrix ();
94- papplet .image (tausta , kameran_siirto_x , -kameran_siirto_y + papplet .height - tausta . height );
87+ papplet .image (tausta , kameran_siirto_x , -kameran_siirto_y + papplet .height - maailman_korkeus , maailman_leveys , maailman_korkeus );
9588 papplet .popMatrix ();
9689 }
9790 varmista_kamera ();
@@ -101,34 +94,10 @@ public Taso luo_taso(float x, float korkeus, float pituus) {
10194 return new Taso (x , korkeus , pituus , this );
10295 }
10396
104- protected void paivita_taso_kerros () {
105- if (tasokerros_vanhentunut ) {
106- taso_kerros = papplet .createGraphics (maailman_leveys , maailman_korkeus );
107- taso_kerros .beginDraw ();
108- for (int i =0 ; i <tasot .size (); i ++) {
109- tasot .get (i ).piirra ();
110- }
111- taso_kerros .endDraw ();
112- tasokerros_vanhentunut = true ;
113- }
114- }
115-
11697 public void piirra_tasot () {
11798 varmista_kamera ();
118- if (this .taso_kerros != null ) {
119- papplet .image (this .taso_kerros , 0 , 0 );
120- }
121- }
122-
123- protected void paivita_seina_kerros () {
124- if (seinakerros_vanhentunut ) {
125- seina_kerros = papplet .createGraphics (maailman_leveys , maailman_korkeus );
126- seina_kerros .beginDraw ();
127- for (int i =0 ; i <seinat .size (); i ++) {
128- seinat .get (i ).piirra ();
129- }
130- seina_kerros .endDraw ();
131- seinakerros_vanhentunut = false ;
99+ for (int i =0 ; i <tasot .size (); i ++) {
100+ tasot .get (i ).piirra ();
132101 }
133102 }
134103
@@ -139,9 +108,19 @@ public Seina luo_seina(float x, float y, float korkeus) {
139108
140109 public void piirra_seinat () {
141110 this .varmista_kamera ();
142- if ( this . seina_kerros != null ) {
143- papplet . image ( seina_kerros , 0 , 0 );
111+ for ( int i = 0 ; i < seinat . size (); i ++ ) {
112+ seinat . get ( i ). piirra ( );
144113 }
145114 }
146115
116+ public void piirra_naytolle () {
117+ papplet .popMatrix ();
118+ papplet .popMatrix ();
119+ koordinaatisto_alustettu = false ;
120+ }
121+
122+ public String kirjasto_versio () {
123+ return VERSION ;
124+ }
125+
147126}
0 commit comments