-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.ts
939 lines (939 loc) · 62.3 KB
/
main.ts
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
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
namespace SpriteKind {
export const pickupBullet = SpriteKind.create()
export const pickupMushroom = SpriteKind.create()
}
sprites.onOverlap(SpriteKind.Player, SpriteKind.pickupBullet, function (sprite, otherSprite) {
bullets += 3
otherSprite.destroy()
})
controller.B.onEvent(ControllerButtonEvent.Pressed, function () {
if (bullets > 0) {
projectile = sprites.createProjectileFromSprite(img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . 1 1 1 1 1 . . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . . 1 1 1 1 1 . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`, dude, bulletV, 0)
projectile.setFlag(SpriteFlag.AutoDestroy, true)
bullets += -1
}
})
scene.onOverlapTile(SpriteKind.Player, assets.tile`myTile`, function (sprite, location) {
if (mushroomActive) {
dude.ay = -150
mushroomActive = false
} else {
info.changeLifeBy(-1)
dude.setPosition(21, 87)
}
})
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
if (dude.isHittingTile(CollisionDirection.Bottom)) {
animation.stopAnimation(animation.AnimationTypes.All, dude)
dude.vy = -180
}
})
controller.left.onEvent(ControllerButtonEvent.Pressed, function () {
bulletV = -200
if (mushroomActive) {
animation.runImageAnimation(
dude,
assets.animation`dudeMushroomL`,
100,
true
)
} else {
animation.runImageAnimation(
dude,
assets.animation`walkLeft`,
100,
true
)
}
})
function cleanup () {
enemies = sprites.allOfKind(SpriteKind.Enemy)
for (let value of enemies) {
value.destroy()
}
for (let ff of sprites.allOfKind(SpriteKind.pickupBullet)) {
ff.destroy()
}
}
sprites.onOverlap(SpriteKind.Player, SpriteKind.pickupMushroom, function (sprite, otherSprite) {
otherSprite.destroy()
mushroomActive = true
mushroomSpawned = false;
})
scene.onOverlapTile(SpriteKind.Enemy, assets.tile`myTile`, function (sprite, location) {
sprite.destroy()
ghosties += -1
})
controller.right.onEvent(ControllerButtonEvent.Pressed, function () {
bulletV = 200
if (mushroomActive) {
animation.runImageAnimation(
dude,
assets.animation`dudeMushroomR`,
100,
true
)
} else {
animation.runImageAnimation(
dude,
assets.animation`walkRight`,
100,
true
)
}
})
// comment to show git push changes
function genGhostys () {
ghosty = sprites.create(img`
........................
........................
........................
........................
..........ffff..........
........ff1111ff........
.......fb111111bf.......
.......f11111111f.......
......fd11111111df......
......fd11111111df......
......fddd1111dddf......
......fbdbfddfbdbf......
......fcdcf11fcdcf......
.......fb111111bf.......
......fffcdb1bdffff.....
....fc111cbfbfc111cf....
....f1b1b1ffff1b1b1f....
....fbfbffffffbfbfbf....
.........ffffff.........
...........fff..........
........................
........................
........................
........................
`, SpriteKind.Enemy)
ghosty.setPosition(200, 0)
ghosty.ay = 350
ghosty.vx = 100
ghosties += 1
}
sprites.onOverlap(SpriteKind.Projectile, SpriteKind.Enemy, function (sprite, otherSprite) {
info.changeScoreBy(2)
otherSprite.destroy()
if (otherSprite == ghosty) {
ghosties += -1
}
})
scene.onOverlapTile(SpriteKind.Player, sprites.dungeon.collectibleInsignia, function (sprite, location) {
// for (let index = 0; index < 5; index++) {
// pubullet = sprites.create(img`
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . 1 1 1 1 1 . . . . . .
// . . . . 1 3 3 3 3 3 1 . . . . .
// . . . . 1 3 3 3 3 3 1 . . . . .
// . . . . 1 3 3 3 3 3 1 . . . . .
// . . . . 1 3 3 3 3 3 1 . . . . .
// . . . . 1 3 3 3 3 3 1 . . . . .
// . . . . . 1 1 1 1 1 . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// . . . . . . . . . . . . . . . .
// `, SpriteKind.Food)
// pubullet.setPosition(randint(0, 16 * 16), randint(0, 16 * 16))
// pubullet.ay = gravity
// }
if (level == 0) {
tiles.setTilemap(tilemap`level2`)
dude.setPosition(40, 230)
info.changeScoreBy(10)
level += 1
cleanup()
} else if (level == 1) {
tiles.setTilemap(tilemap`level3`)
dude.setPosition(40, 230)
info.changeScoreBy(10)
level += 1
cleanup()
} else {
game.over(true)
}
})
sprites.onOverlap(SpriteKind.Player, SpriteKind.Enemy, function (sprite, otherSprite) {
if (mushroomActive) {
otherSprite.destroy()
mushroomActive = false
} else {
info.changeLifeBy(-1)
if (level == 1) {
dude.setPosition(40, 210)
} else {
dude.setPosition(21, 0)
}
}
})
let Mushroom: Sprite = null
let mushroomSpawned = false
let level = 0
let ghosty: Sprite = null
let ghosties = 0
let enemies: Sprite[] = []
let mushroomActive = false
let projectile: Sprite = null
let dude: Sprite = null
let bulletV = 0
let bullets = 0
game.setDialogFrame(img`
..................................................................
............fff........fff.............fff..............ffff......
...........fddbf......fbdbf...........fbdbf............fbddf......
...........fddbbf.....fdddffff........fdddffff...fff..ffddbff.....
...........fddddffffffbdddbddbffffffffbdddbddbffffddffddddddf.....
...fff....fdddddfddddddddbbddddddddddddddbbddddddfdddddbccddf.....
.fffddf..fddffffddddddddddbbddddddddddddddbbdddddffbddbbddff......
.fdbddfffddfffdddfffffbdddbddbffffffffbdddbddbfffefddccbddf.......
.fdddcddddffeffffeeeeefbdbfddfeeeeeeeefbdbfddfeeeefffcddddf.......
.fbddcddddfeeeeeeeeeeeefffffffeeeeeeeeefffffffeeeeeeefdddddf......
..ffdbbbddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefffffddf.....
...fddbcddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffddfff..
....fddccffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffddddf.
....fdddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefffddddf.
...fddbdfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdfddbbf.
...fddfffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdfddbf..
...ffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddfff...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fbddbffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fdddddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fddbddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbddbff..
..ffbbbbffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbdddddbf.
.fbddbddbfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdddddddf.
.fdddddddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbddbddbf.
.fbdddddbfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffbbbbff..
..ffbddbfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddbddf...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdddddf...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffbddbf...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fbddbffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fdddddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fddbddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbddbff..
..ffbbbbffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbdddddbf.
.fbddbddbfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdddddddf.
.fdddddddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbddbddbf.
.fbdddddbfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffbbbbff..
..ffbddbfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddbddf...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdddddf...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffbddbf...
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
....fddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddf....
...fffddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffff...
..fbddfdfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefffddf...
.fbbddfdfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdbddf...
.fddddfffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefdddf....
.fddddffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffccddf....
..fffddffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddcbddf...
.....fddfffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddbbbdff..
......fdddddfeeeeeeefffffffeeeeeeeeefffffffeeeeeeeeeeeefddddcddbf.
.......fddddcfffeeeefddfbdbfeeeeeeeefddfbdbfeeeeeffffeffddddcdddf.
.......fddbccddfefffbddbdddbffffffffbddbdddbfffffdddfffddfffddbdf.
......ffddbbddbffdddddbbddddddddddddddbbddddddddddffffddf..fddfff.
.....fddccbdddddfddddddbbddddddddddddddbbddddddddfdddddf....fff...
.....fddddddffddffffbddbdddbffffffffbddbdddbffffffddddf...........
.....ffbddff..fff...ffffdddf........ffffdddf.....fbbddf...........
......fddbf............fbdbf...........fbdbf......fbddf...........
......ffff..............fff.............fff........fff............
..................................................................
`)
scene.setBackgroundImage(img`
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
`)
let textSprite = textsprite.create("My Awesome Game", 0, 5)
textSprite.setOutline(1, 2)
textSprite.setMaxFontHeight(10)
textSprite.setPosition(60, 50)
game.setDialogCursor(img`
. . . . . . . . . . . . . . . .
. . . . . . f f f f . . . . . .
. . . . f f f 2 2 f f f . . . .
. . . f f f 2 2 2 2 f f f . . .
. . f f f e e e e e e f f f . .
. . f e e 2 2 2 2 2 2 e f f . .
. f f e 2 f f f f f f 2 e f f .
. f f f f f e e e e f f f f f .
. . f e f b f 4 4 f b f e f . .
. . f e 4 1 f d d f 1 4 e f f .
. . e f e 4 d d d d 4 e f f d f
. . e 4 d d e 2 2 2 2 f e f b f
. . . e d d e 2 2 2 2 f 4 f b f
. . . . e e f 5 5 4 4 f . f c f
. . . . . f f f f f f f . f f .
. . . . . . . . . f f f . . . .
`)
game.showLongText("Use Arrow keys to move left and right Space to jump and x to shoot", DialogLayout.Bottom)
scene.setBackgroundImage(img`
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
................................................................................................................................................................
`)
let endlevel = 2
bullets = 3
let gravity = 350
bulletV = 200
info.setScore(0)
scene.setBackgroundColor(9)
info.setLife(3)
tiles.setTilemap(tilemap`level1`)
dude = sprites.create(img`
. . . . . . f f f f . . . . . .
. . . . f f f 2 2 f f f . . . .
. . . f f f 2 2 2 2 f f f . . .
. . f f f e e e e e e f f f . .
. . f f e 2 2 2 2 2 2 e e f . .
. . f e 2 f f f f f f 2 e f . .
. . f f f f e e e e f f f f . .
. f f e f b f 4 4 f b f e f f .
. f e e 4 1 f d d f 1 4 e e f .
. . f e e d d d d d d e e f . .
. . . f e e 4 4 4 4 e e f . . .
. . e 4 f 2 2 2 2 2 2 f 4 e . .
. . 4 d f 2 2 2 2 2 2 f d 4 . .
. . 4 4 f 4 4 5 5 4 4 f 4 4 . .
. . . . . f f f f f f . . . . .
. . . . . f f . . f f . . . . .
`, SpriteKind.Player)
dude.setPosition(21, 216)
scene.cameraFollowSprite(dude)
controller.moveSprite(dude, 100, 0)
dude.ay = gravity
let Sharky = sprites.create(img`
................
................
................
................
.......fff......
......fbbf......
.....fbbcbf.....
....fc1bbbf.....
...fcc11bbbf....
..f31c11bbbf....
..f33311bbbf....
.c1c1311bbbf....
.c11cc1ffbbf....
.c111c1ffbbf....
.c111111bbbcf...
.cfc11bbbcbccc..
.fbbbbbccbbccdc.
fbdbbbbbbcbcbddc
fdbbbbbccbbcbbdc
fbbfcbbbbbbccbbf
fbfdccbbbbbfffbf
ffddcccbbbcf..ff
.cddccccccf.....
..cdccccccf.....
..cdbcccccf.....
...cdccccf......
...cbccccf......
....ccccf.......
.....fccf.......
.....fcbfc......
.....fbbddc.....
....fbcbbddc....
...fbbccbbbc....
..fbbcfffbbbc...
..fbff...fcbc...
..ff.......cc...
`, SpriteKind.Enemy)
Sharky.setPosition(345, 150)
Sharky.setBounceOnWall(true)
Sharky.ay = gravity
let Sharky1 = sprites.create(img`
................
................
................
................
.......fff......
......fbbf......
.....fbbcbf.....
....fc1bbbf.....
...fcc11bbbf....
..f31c11bbbf....
..f33311bbbf....
.c1c1311bbbf....
.c11cc1ffbbf....
.c111c1ffbbf....
.c111111bbbcf...
.cfc11bbbcbccc..
.fbbbbbccbbccdc.
fbdbbbbbbcbcbddc
fdbbbbbccbbcbbdc
fbbfcbbbbbbccbbf
fbfdccbbbbbfffbf
ffddcccbbbcf..ff
.cddccccccf.....
..cdccccccf.....
..cdbcccccf.....
...cdccccf......
...cbccccf......
....ccccf.......
.....fccf.......
.....fcbfc......
.....fbbddc.....
....fbcbbddc....
...fbbccbbbc....
..fbbcfffbbbc...
..fbff...fcbc...
..ff.......cc...
`, SpriteKind.Enemy)
Sharky1.setPosition(360, 150)
Sharky1.setBounceOnWall(true)
let Ducky = sprites.create(img`
. . . . . . . . . . b 5 b . . .
. . . . . . . . . b 5 b . . . .
. . . . . . b b b b b b . . . .
. . . . . b b 5 5 5 5 5 b . . .
. . . . b b 5 d 1 f 5 d 4 c . .
. . . . b 5 5 1 f f d d 4 4 4 b
. . . . b 5 5 d f b 4 4 4 4 b .
. . . b d 5 5 5 5 4 4 4 4 b . .
. . b d d 5 5 5 5 5 5 5 5 b . .
. b d d d d 5 5 5 5 5 5 5 5 b .
b d d d b b b 5 5 5 5 5 5 5 b .
c d d b 5 5 d c 5 5 5 5 5 5 b .
c b b d 5 d c d 5 5 5 5 5 5 b .
. b 5 5 b c d d 5 5 5 5 5 d b .
b b c c c d d d d 5 5 5 b b . .
. . . c c c c c c c c b b . . .
`, SpriteKind.Enemy)
Ducky.setPosition(455, 240)
// Ducky.setBounceOnWall(true)
Ducky.vx = 100
Ducky.ay = gravity
let pubullet = sprites.create(img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . 1 1 1 1 1 . . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . . 1 1 1 1 1 . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`, SpriteKind.pickupBullet)
pubullet.setPosition(32, 100)
pubullet.ay = gravity
for (let index = 0; index < 5; index++) {
pubullet = sprites.create(img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . 1 1 1 1 1 . . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . 1 3 3 3 3 3 1 . . . . .
. . . . . 1 1 1 1 1 . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`, SpriteKind.pickupBullet)
pubullet.setPosition(randint(0, 64 * 16), randint(0, 16 * 16))
pubullet.ay = gravity
}
game.onUpdate(function () {
dude.say(Math.floor(dude.y / 16))
if (Ducky.isHittingTile(CollisionDirection.Left)) {
Ducky.image.flipX()
Ducky.vx = 100
}
if (Ducky.isHittingTile(CollisionDirection.Right)) {
Ducky.image.flipX()
Ducky.vx = -100
}
if (Ducky.vx == -100) {
if (Sharky.vy <= 0) {
Sharky.setImage(img`
.......fff......
......fbbf......
.....fbbcbf.....
....fc1bbbf.....
...fcc11bbbf....
..f31c11bbbf....
..f33311bbbf....
.c1c1311bbbf....
.c11cc1ffbbf....
.c111c1ffbbf....
.c111111bbbcf...
.cfc11bbbcbccc..
.fbbbbbccbbccdc.
fbdbbbbbbcbcbddc
fdbbbbbccbbcbbdc
fbbfcbbbbbbccbbf
fbfdccbbbbbfffbf
ffddcccbbbcf..ff
.cddccccccf.....
..cdccccccf.....
..cdbcccccf.....
...cdccccf......
...cbccccf......
....ccccf.......
.....fccf.......
.....fcbfc......
.....fbbddc.....
....fbcbbddc....
...fbbccbbbc....
..fbbcfffbbbc...
..fbff...fcbc...
..ff.......cc...
`)
} else {
Sharky.setImage(img`
..ff.......cc...
..fbff...fcbc...
..fbbcfffbbbc...
...fbbccbbbc....
....fbcbbddc....
.....fbbddc.....
.....fcbfc......
.....fccf.......
....ccccf.......
...cbccccf......
...cdccccf......
..cdbcccccf.....
..cdccccccf.....
.cddccccccf.....
ffddcccbbbcf..ff
fbfdccbbbbbfffbf
fbbfcbbbbbbccbbf
fdbbbbbccbbcbbdc
fbdbbbbbbcbcbddc
.fbbbbbccbbccdc.
.cfc11bbbcbccc..
.c111111bbbcf...
.c111c1ffbbf....
.c11cc1ffbbf....
.c1c1311bbbf....
..f33311bbbf....
..f31c11bbbf....
...fcc11bbbf....
....fc1bbbf.....
.....fbbcbf.....
......fbbf......
.......fff......
`)
}
}
if (Sharky1.vy <= 0) {
Sharky1.setImage(img`
.......fff......
......fbbf......
.....fbbcbf.....
....fc1bbbf.....
...fcc11bbbf....
..f31c11bbbf....
..f33311bbbf....
.c1c1311bbbf....
.c11cc1ffbbf....
.c111c1ffbbf....
.c111111bbbcf...
.cfc11bbbcbccc..
.fbbbbbccbbccdc.
fbdbbbbbbcbcbddc
fdbbbbbccbbcbbdc
fbbfcbbbbbbccbbf
fbfdccbbbbbfffbf
ffddcccbbbcf..ff
.cddccccccf.....
..cdccccccf.....
..cdbcccccf.....
...cdccccf......
...cbccccf......
....ccccf.......
.....fccf.......
.....fcbfc......
.....fbbddc.....
....fbcbbddc....
...fbbccbbbc....
..fbbcfffbbbc...
..fbff...fcbc...
..ff.......cc...
`)
} else {
Sharky1.setImage(img`
..ff.......cc...
..fbff...fcbc...
..fbbcfffbbbc...
...fbbccbbbc....
....fbcbbddc....
.....fbbddc.....
.....fcbfc......
.....fccf.......
....ccccf.......
...cbccccf......
...cdccccf......
..cdbcccccf.....
..cdccccccf.....
.cddccccccf.....
ffddcccbbbcf..ff
fbfdccbbbbbfffbf
fbbfcbbbbbbccbbf
fdbbbbbccbbcbbdc
fbdbbbbbbcbcbddc
.fbbbbbccbbccdc.
.cfc11bbbcbccc..
.c111111bbbcf...
.c111c1ffbbf....
.c11cc1ffbbf....
.c1c1311bbbf....
..f33311bbbf....
..f31c11bbbf....
...fcc11bbbf....
....fc1bbbf.....
.....fbbcbf.....
......fbbf......
.......fff......
`)
}
if (game.runtime() <= 100) {
Sharky1.ay = 350
}
if (dude.vx == 0) {
if (mushroomActive) {
animation.stopAnimation(animation.AnimationTypes.All, dude)
} else {
dude.setImage(img`
. . . . . . f f f f . . . . . .
. . . . f f f 2 2 f f f . . . .
. . . f f f 2 2 2 2 f f f . . .
. . f f f e e e e e e f f f . .
. . f f e 2 2 2 2 2 2 e e f . .
. . f e 2 f f f f f f 2 e f . .
. . f f f f e e e e f f f f . .
. f f e f b f 4 4 f b f e f f .
. f e e 4 1 f d d f 1 4 e e f .
. . f e e d d d d d d e e f . .
. . . f e e 4 4 4 4 e e f . . .
. . e 4 f 2 2 2 2 2 2 f 4 e . .
. . 4 d f 2 2 2 2 2 2 f d 4 . .
. . 4 4 f 4 4 5 5 4 4 f 4 4 . .
. . . . . f f f f f f . . . . .
. . . . . f f . . f f . . . . .
`)
}
}
if (level == 1) {
if (ghosties == 0) {
genGhostys()
} else {
if (ghosty.x < 16) {
ghosty.vx = 100
}
if (ghosty.x > 240) {
ghosty.vx = -100
}
if (ghosty.vx == 0) {
ghosty.vx = 100
}
}
}
if (dude.tileKindAt(TileDirection.Top, sprites.dungeon.floorLight0)) {
if (!(mushroomSpawned)) {
let tileAbove = tiles.getTileLocation(Math.floor(dude.x / 16), Math.floor(dude.y / 16) - 1)
mushroomSpawned = true
Mushroom = sprites.create(img`
. . . . . . b b b b . . . . . .
. . . . b b 3 3 3 3 b b . . . .
. . . c b 3 3 3 3 1 1 b c . . .
. . c b 3 3 3 3 3 1 1 1 b c . .
. c c 1 1 1 3 3 3 3 1 1 3 c c .
c c d 1 1 1 3 3 3 3 3 3 3 b c c
c b d d 1 3 3 3 3 3 1 1 1 b b c
c b b b 3 3 1 1 3 3 1 1 d d b c
c b b b b d d 1 1 3 b d d d b c
. c b b b b d d b b b b b b c .
. . c c b b b b b b b b c c . .
. . . . c c c c c c c c . . . .
. . . . . . b 1 1 b . . . . . .
. . . . . . b 1 1 b b . . . . .
. . . . . b b d 1 1 b . . . . .
. . . . . b d d 1 1 b . . . . .
`, SpriteKind.pickupMushroom)
tiles.placeOnTile(Mushroom, tileAbove)
Mushroom.y -= 16
// Mushroom.ay = gravity
tiles.setTileAt(tileAbove, sprites.dungeon.darkGroundNorthWest0)
}
}
})