Du bist nicht angemeldet.

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

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

1

23.04.2013, 11:53

Greenfoot Glitches

Hallo liebe Surfer,

Ich habe da folgendes Problem:

Ich habe ein Jump'n'Run mit Greenfoot, unter Java, angefangen (in Form eines "Ihr-habt-2-Wochen-um-ein-Spiel-zu-machen" Schulprojekts[NICHT freiwillig]) und der Charackter funzt einwandfrei bis auf - er fällt immer unterschiedlich tief in den Boden rein. Ich weiß nicht wie ich das beheben soll und Suche nach Ideen!

Source Code: (Ich weiß der Code ist im schlechten Programmdesign aber die Zeit drängt)
Player:

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
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;

public class Mario extends Actor
{
    public int playerX;
    public int playerY;
    public boolean jump = true;
    public int speed = 1;

    public int speed_tut = 10;
    public int vSpeed = 0;
    public int accerleration= 1;
    public int Jumpspeed = -25;
    //die folgenden var's sind noch nicht integriert!!!
    public boolean mov_up = true;
    public boolean mov_r = true;
    public boolean mov_l = true;
    /**
    * Act - do whatever the Mario wants to do. This method is called whenever
    * the 'Act' or 'Run' button gets pressed in the environment.
    */
    public void act() 
    {
        control();
    } 
    public void control() {
        if(Greenfoot.isKeyDown("w")&& (jump == false)){// können wir springen? wenn ja dann gehts bei w ab!
            setLocation(getX(), getY() - vSpeed);
            vSpeed = vSpeed + Jumpspeed;
            jump = true;
        }
        if(jump == true){// sind wir in der Luft ? ja? dann fallen wir!
            setLocation(getX() , getY() + vSpeed);
            vSpeed = vSpeed + accerleration;
        }
        if(Greenfoot.isKeyDown("a")){//A bewegung
            setLocation(getX() - speed_tut, getY());
            jump = true;
        }
        if(Greenfoot.isKeyDown("d")){
            setLocation( getX() + speed_tut,getY());
            jump = true;
        }
        Actor boden = getOneIntersectingObject(Terrain.class);
        if ( boden != null )
        {
            jump = false;
        }
        
    }
}

Level: (Code Auto Generiert)

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)


public class World_demo_betaworld extends World
{

    /**
    * Constructor for objects of class World_demo_betaworld.
    * 
    */
    public World_demo_betaworld()
    {   
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(600, 400, 1);
        setBackground("normal_bg.png");

        prepare();
    }

    /**
    * Bereite die Welt für den Programmstart vor. Das heißt: Erzeuge die Anfangs-
    * Objekte und füge sie der Welt hinzu.
    */

    /**
    * Bereite die Welt für den Programmstart vor. Das heißt: Erzeuge die Anfangs-
    * Objekte und füge sie der Welt hinzu.
    */
    private void prepare()
    {
        boden boden = new boden();
        addObject(boden, 41, 373);
        boden.setLocation(8, 392);
        inset_ecke_1 inset_ecke_1 = new inset_ecke_1();
        addObject(inset_ecke_1, 54, 376);
        inset_ecke_1.setLocation(24, 392);
        inset_ecke_1.setLocation(24, 392);
        inset_ecke_1.setLocation(24, 392);
        wand_1 wand_1 = new wand_1();
        addObject(wand_1, 51, 334);
        wand_1.setLocation(24, 376);
        wand_1 wand_12 = new wand_1();
        addObject(wand_12, 25, 361);
        wand_12.setLocation(24, 360);
        ecke_1 ecke_1 = new ecke_1();
        addObject(ecke_1, 25, 342);
        ecke_1.setLocation(24, 344);
        boden boden2 = new boden();
        addObject(boden2, 64, 342);
        boden boden3 = new boden();
        addObject(boden3, 91, 338);
        boden boden4 = new boden();
        addObject(boden4, 114, 341);
        boden boden5 = new boden();
        addObject(boden5, 143, 346);
        boden boden6 = new boden();
        addObject(boden6, 156, 344);
        ecke_3 ecke_3 = new ecke_3();
        addObject(ecke_3, 205, 337);
        boden2.setLocation(40, 344);
        boden3.setLocation(55, 344);
        boden4.setLocation(71, 344);
        boden5.setLocation(87, 344);
        boden6.setLocation(103, 345);
        boden6.setLocation(103, 344);
        ecke_3.setLocation(119, 344);
        wand_2 wand_2 = new wand_2();
        addObject(wand_2, 123, 366);
        wand_2 wand_22 = new wand_2();
        addObject(wand_22, 125, 387);
        wand_2.setLocation(119, 360);
        wand_22.setLocation(120, 376);
        wand_22.setLocation(119, 376);
        inset_ecke_2 inset_ecke_2 = new inset_ecke_2();
        addObject(inset_ecke_2, 120, 394);
        inset_ecke_2.setLocation(119, 392);
        inset_ecke_1 inset_ecke_12 = new inset_ecke_1();
        addObject(inset_ecke_12, 246, 364);
        inset_ecke_12.setLocation(135, 392);
        wand_1 wand_13 = new wand_1();
        addObject(wand_13, 141, 376);
        wand_1 wand_14 = new wand_1();
        addObject(wand_14, 142, 357);
        wand_1 wand_15 = new wand_1();
        addObject(wand_15, 146, 340);
        wand_1 wand_16 = new wand_1();
        addObject(wand_16, 153, 319);
        wand_13.setLocation(135, 376);
        wand_14.setLocation(135, 358);
        wand_14.setLocation(135, 360);
        wand_15.setLocation(135, 344);
        wand_16.setLocation(136, 328);
        wand_16.setLocation(135, 328);
        ecke_1 ecke_12 = new ecke_1();
        addObject(ecke_12, 144, 306);
        ecke_12.setLocation(135, 312);
        boden boden7 = new boden();
        addObject(boden7, 156, 316);
        boden7.setLocation(151, 312);
        boden boden8 = new boden();
        addObject(boden8, 173, 315);
        boden boden9 = new boden();
        addObject(boden9, 196, 315);
        boden boden10 = new boden();
        addObject(boden10, 220, 320);
        boden boden11 = new boden();
        addObject(boden11, 246, 320);
        boden boden12 = new boden();
        addObject(boden12, 270, 321);
        boden boden13 = new boden();
        addObject(boden13, 297, 323);
        ecke_3 ecke_32 = new ecke_3();
        addObject(ecke_32, 325, 314);
        boden8.setLocation(167, 312);
        boden9.setLocation(183, 312);
        boden10.setLocation(198, 312);
        boden10.setLocation(199, 312);
        boden11.setLocation(215, 312);
        boden12.setLocation(230, 312);
        boden12.setLocation(231, 312);
        boden13.setLocation(247, 312);
        ecke_32.setLocation(263, 312);
        wand_2 wand_23 = new wand_2();
        addObject(wand_23, 263, 330);
        wand_2 wand_24 = new wand_2();
        addObject(wand_24, 264, 348);
        wand_2 wand_25 = new wand_2();
        addObject(wand_25, 266, 371);
        wand_2 wand_26 = new wand_2();
        addObject(wand_26, 268, 393);
        wand_23.setLocation(263, 328);
        wand_24.setLocation(263, 344);
        wand_25.setLocation(264, 360);
        wand_25.setLocation(263, 359);
        wand_25.setLocation(263, 360);
        wand_26.setLocation(263, 376);
        inset_ecke_2 inset_ecke_22 = new inset_ecke_2();
        addObject(inset_ecke_22, 259, 395);
        inset_ecke_22.setLocation(262, 392);
        inset_ecke_22.setLocation(263, 392);
        inset_ecke_1 inset_ecke_13 = new inset_ecke_1();
        addObject(inset_ecke_13, 298, 385);
        inset_ecke_13.setLocation(279, 393);
        ecke_1 ecke_13 = new ecke_1();
        addObject(ecke_13, 287, 376);
        ecke_13.setLocation(280, 377);
        ecke_13.setLocation(279, 377);
        ecke_3 ecke_33 = new ecke_3();
        addObject(ecke_33, 301, 378);
        ecke_33.setLocation(295, 377);
        wand_2 wand_27 = new wand_2();
        addObject(wand_27, 310, 394);
        wand_27.setLocation(297, 394);
        wand_27.setLocation(295, 392);
        wand_1 wand_17 = new wand_1();
        addObject(wand_17, 374, 399);
        wand_17.setLocation(376, 392);
        ecke_1 ecke_14 = new ecke_1();
        addObject(ecke_14, 381, 374);
        ecke_14.setLocation(376, 376);
        boden boden14 = new boden();
        addObject(boden14, 407, 365);
        boden14.setLocation(392, 376);
        middle middle = new middle();
        addObject(middle, 48, 381);
        middle.setLocation(39, 392);
        middle.setLocation(40, 392);
        middle middle2 = new middle();
        addObject(middle2, 45, 377);
        middle middle3 = new middle();
        addObject(middle3, 45, 363);
        middle middle4 = new middle();
        addObject(middle4, 66, 363);
        middle middle5 = new middle();
        addObject(middle5, 89, 365);
        middle middle6 = new middle();
        addObject(middle6, 108, 366);
        middle3.setLocation(39, 360);
        middle3.setLocation(40, 360);
        middle2.setLocation(40, 376);
        middle4.setLocation(56, 359);
        middle5.setLocation(72, 359);
        middle6.setLocation(87, 360);
        middle middle7 = new middle();
        addObject(middle7, 101, 375);
        middle7.setLocation(103, 360);
        middle middle8 = new middle();
        addObject(middle8, 103, 379);
        middle middle9 = new middle();
        addObject(middle9, 90, 379);
        middle middle10 = new middle();
        addObject(middle10, 74, 382);
        middle10.setLocation(56, 376);
        middle10.setLocation(56, 375);
        middle9.setLocation(56, 391);
        middle9.setLocation(56, 391);
        middle8.setLocation(71, 391);
        middle middle11 = new middle();
        addObject(middle11, 79, 377);
        middle11.setLocation(72, 375);
        middle8.setLocation(72, 391);
        middle middle12 = new middle();
        addObject(middle12, 90, 381);
        middle middle13 = new middle();
        addObject(middle13, 106, 382);
        middle12.setLocation(88, 376);
        middle13.setLocation(104, 375);
        middle middle14 = new middle();
        addObject(middle14, 98, 388);
        middle middle15 = new middle();
        addObject(middle15, 87, 390);
        middle14.setLocation(103, 391);
        middle14.setLocation(103, 391);
        middle15.setLocation(88, 392);
        middle middle16 = new middle();
        addObject(middle16, 153, 398);
        middle middle17 = new middle();
        addObject(middle17, 155, 385);
        middle middle18 = new middle();
        addObject(middle18, 155, 370);
        middle middle19 = new middle();
        addObject(middle19, 155, 357);
        middle middle20 = new middle();
        addObject(middle20, 157, 346);
        middle middle21 = new middle();
        addObject(middle21, 157, 333);
        middle21.setLocation(151, 328);
        middle20.setLocation(152, 343);
        middle20.setLocation(150, 344);
        middle20.setLocation(151, 344);
        middle19.setLocation(151, 358);
        middle18.setLocation(151, 374);
        middle17.setLocation(151, 388);
        middle16.setLocation(150, 397);
        middle middle22 = new middle();
        addObject(middle22, 177, 354);
        middle middle23 = new middle();
        addObject(middle23, 199, 354);
        middle middle24 = new middle();
        addObject(middle24, 219, 355);
        middle22.setLocation(167, 328);
        middle23.setLocation(183, 328);
        middle24.setLocation(199, 327);
        middle middle25 = new middle();
        addObject(middle25, 218, 350);
        middle24.setLocation(199, 327);
        middle24.setLocation(199, 328);
        middle25.setLocation(214, 328);
        middle25.setLocation(215, 328);
        middle middle26 = new middle();
        addObject(middle26, 235, 355);
        middle middle27 = new middle();
        addObject(middle27, 247, 381);
        middle26.setLocation(231, 328);
        middle27.setLocation(247, 328);
        middle middle28 = new middle();
        addObject(middle28, 246, 344);
        middle middle29 = new middle();
        addObject(middle29, 244, 365);
        middle middle30 = new middle();
        addObject(middle30, 239, 387);
        middle28.setLocation(247, 344);
        middle29.setLocation(246, 360);
        middle29.setLocation(247, 360);
        middle30.setLocation(247, 376);
        middle middle31 = new middle();
        addObject(middle31, 250, 391);
        middle31.setLocation(247, 392);
        middle middle32 = new middle();
        addObject(middle32, 173, 365);
        middle middle33 = new middle();
        addObject(middle33, 199, 370);
        middle middle34 = new middle();
        addObject(middle34, 225, 372);
        middle32.setLocation(166, 344);
        middle32.setLocation(167, 344);
        middle33.setLocation(183, 344);
        middle34.setLocation(199, 344);
        middle middle35 = new middle();
        addObject(middle35, 216, 367);
        middle35.setLocation(215, 344);
        middle middle36 = new middle();
        addObject(middle36, 225, 371);
        middle36.setLocation(231, 344);
        middle middle37 = new middle();
        addObject(middle37, 179, 377);
        middle middle38 = new middle();
        addObject(middle38, 197, 379);
        middle middle39 = new middle();
        addObject(middle39, 216, 379);
        middle middle40 = new middle();
        addObject(middle40, 234, 380);
        middle37.setLocation(168, 360);
        middle37.setLocation(167, 360);
        middle38.setLocation(183, 360);
        middle39.setLocation(198, 360);
        middle39.setLocation(199, 360);
        middle40.setLocation(215, 360);
        middle middle41 = new middle();
        addObject(middle41, 216, 376);
        middle41.setLocation(231, 359);
        middle41.setLocation(231, 360);
        middle middle42 = new middle();
        addObject(middle42, 214, 382);
        middle middle43 = new middle();
        addObject(middle43, 200, 384);
        middle middle44 = new middle();
        addObject(middle44, 182, 386);
        middle44.setLocation(167, 376);
        middle43.setLocation(231, 376);
        middle42.setLocation(215, 376);
        middle middle45 = new middle();
        addObject(middle45, 196, 391);
        middle45.setLocation(199, 376);
        middle middle46 = new middle();
        addObject(middle46, 187, 389);
        middle46.setLocation(183, 376);
        middle middle47 = new middle();
        addObject(middle47, 178, 391);
        middle47.setLocation(166, 392);
        middle middle48 = new middle();
        addObject(middle48, 184, 392);
        middle48.setLocation(181, 392);
        middle middle49 = new middle();
        addObject(middle49, 198, 394);
        middle49.setLocation(198, 393);
        middle49.setLocation(197, 392);
        middle middle50 = new middle();
        addObject(middle50, 212, 393);
        middle50.setLocation(213, 392);
        middle middle51 = new middle();
        addObject(middle51, 226, 394);
        middle51.setLocation(230, 392);
        middle middle52 = new middle();
        addObject(middle52, 394, 392);
        middle52.setLocation(392, 392);
        middle middle53 = new middle();
        addObject(middle53, 410, 393);
        middle53.setLocation(408, 393);
        boden boden15 = new boden();
        addObject(boden15, 424, 372);
        boden15.setLocation(408, 375);
        boden15.setLocation(408, 376);
        middle53.setLocation(408, 391);
        middle53.setLocation(408, 392);
        ecke_3 ecke_34 = new ecke_3();
        addObject(ecke_34, 432, 375);
        ecke_34.setLocation(423, 376);
        ecke_34.setLocation(424, 376);
        wand_2 wand_28 = new wand_2();
        addObject(wand_28, 455, 393);
        wand_28.setLocation(424, 392);
        ecke_1 ecke_15 = new ecke_1();
        addObject(ecke_15, 463, 395);
        ecke_15.setLocation(465, 392);
        boden boden16 = new boden();
        addObject(boden16, 488, 395);
        boden16.setLocation(481, 392);
        boden boden17 = new boden();
        addObject(boden17, 507, 394);
        boden17.setLocation(498, 392);
        boden17.setLocation(497, 392);
        boden boden18 = new boden();
        addObject(boden18, 521, 392);
        boden18.setLocation(514, 392);
        boden18.setLocation(512, 392);
        boden18.setLocation(513, 393);
        boden18.setLocation(513, 392);
        boden boden19 = new boden();
        addObject(boden19, 540, 394);
        boden19.setLocation(529, 392);
        boden boden20 = new boden();
        addObject(boden20, 548, 392);
        boden20.setLocation(546, 392);
        boden20.setLocation(545, 392);
        boden boden21 = new boden();
        addObject(boden21, 574, 392);
        boden21.setLocation(561, 392);
        boden boden22 = new boden();
        addObject(boden22, 582, 393);
        boden22.setLocation(577, 392);
        boden boden23 = new boden();
        boden boden24 = new boden();
        addObject(boden24, 591, 389);
        boden24.setLocation(593, 392);
        
        addObject(new Mario(), 10, 20);
    }
}
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

23.04.2013, 13:23

350 Zeilen Positionen... Respekt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

23.04.2013, 13:31

Na, es sieht so aus, als würdest du eine Parabel für deine Sprungbahn verwenden (was zunächst eine sehr gute Idee ist). Dementsprechend kann der Spieler unterschiedlich schnell runterfallen.
Alles was du tust, wenn der Spieler den Boden berührt, ist, ihn anzuhalten. Du müsstest ihn aber anhalten, bevor er den Boden berührt, oder aber (noch besser) ihn bei der Landung direkt auf den Boden setzen, statt ihn einfach anzuhalten.
Lieber dumm fragen, als dumm bleiben!

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

4

23.04.2013, 13:35

350 Zeilen Positionen... Respekt.

:) wie oben schon steht - die Welt ist Auto-Generiert.
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

23.04.2013, 16:43

Hat dir Jonathans Antwort dann geholfen?
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

6

24.04.2013, 14:30

Ja hatte heute Zeit das mal aus zu testen,
bis dass implementiert ist wird noch dauern - die Schule ihr wisst schon - nächsten Monat sind ja die ZP 10!
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

Werbeanzeige