Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » [v1.1-beta] sb3topy: Scratch to Python with Pygame
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Scratch to Python
sb3topy is a Scratch to Python converter I have created. I've been working on it intermittently for a long time now, but finally had some time to get it ready to release! Check it out on GitHub: https://github.com/BirdLogics/sb3topy
Converted projects do not run (always) faster than Scratch, but the code is converted into single readable file. Most blocks are converted to a single line of Python code.
Projects in the above image above by @griffpatch(left), @RokCoder (middle) , and @jonzo (right).
What's Supported
Although many blocks and features have been implemented, there are still a few major features missing. Click here to see a full list of supported blocks.
Working
About SVGs
Currently, I'm using the CairoSVG library to convert SVGs to PNG. I've had some trouble installing it on one of my computers, so let me know if you also have trouble. I'm considering adding support for a different library which is easier to setup (let me know if know a good one). If someone wants to add a “convert all costumes to bitmap” feature to nono word that could also be handy…
sb3topy is a Scratch to Python converter I have created. I've been working on it intermittently for a long time now, but finally had some time to get it ready to release! Check it out on GitHub: https://github.com/BirdLogics/sb3topy
Converted projects do not run (always) faster than Scratch, but the code is converted into single readable file. Most blocks are converted to a single line of Python code.
Projects in the above image above by @griffpatch(left), @RokCoder (middle) , and @jonzo (right).
What's Supported
Although many blocks and features have been implemented, there are still a few major features missing. Click here to see a full list of supported blocks.
Working
- Graphics
- Sounds
- Custom Blocks
- Pen
- Color, Brightness, and Ghost effects
- Touching [sprite v] block
- Cloning
- Variable monitors
- Speech bubbles
- Some “hacked” blocks
- Touching color block
- Sprite dragging
- Music blocks
About SVGs
Currently, I'm using the CairoSVG library to convert SVGs to PNG. I've had some trouble installing it on one of my computers, so let me know if you also have trouble. I'm considering adding support for a different library which is easier to setup (let me know if know a good one). If someone wants to add a “convert all costumes to bitmap” feature to nono word that could also be handy…
Last edited by imfh (May 7, 2022 20:28:24)
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- mbrick2
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Wow!!!!
My Forums
ATs
Collabaration
My collabs
AIPoint
AspectOS
CoreOS
OddyseyOS
Cops and Robbers
#BringBackManagerRights
#ReturnRightsToManagers
#WeAreForManagerRights
#LetsRemindAboutMangers
#WeAreMangers
#MangersMustManage
The road to 1000 posts!
0 ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ 1000
80% complete
Banner Made By @Abcde26
Card Made By @Polygon
Card Made By @Polygon
- skymover1239
- Scratcher
500+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
That is awesome!!
For God so loved the world that he gave his one and only Son that whoever believes in him shall not perish but have eternal life
First time a moderator got ninjaed??
500 Posts
Current Mainline projects
AquaCSS - A CSS framework.
Ink - An editor that does, lots of things.
500 Posts
Current Mainline projects
AquaCSS - A CSS framework.
Ink - An editor that does, lots of things.
- Sid72020123
- Scratcher
500+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
WOW!!!
Sid72020123
- god286
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
I will try it soon! This is cool!
Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
Here are some of my followers!
I joined: 5 years, 9 months, 24 days ago (31/03/2018)
I have: 479 followers
In total, I have attained: 1,403 loves, 1,145 favourites, and 33,731 views.
Fun Fact: If my account continued to gain followers at a similar rate to right now, in 14,210 years I would reach the number of followers griffpatch has today! Try to imagine how many followers he would have then!
Thank you everyone!
Script created by god286.
- Retr0id
- Scratcher
68 posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
btw i use aarch64
- SansStudios
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects
☁️ scratchcloud ☁️
Click above to check it out! I've worked on it for over a year!
Just like sudden sadness comes hangin' on the breeze
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Do you mean like the output log in the GUI? I guess I could add a screenshot of that. It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
Yeah, I'll probably add it eventually. Right now, I'm working on rewriting how blocks are stored so everything is saved in a single JSON file instead of messy Python code (see the feature-type-switches branch, it's currently broken). That means I have to finish that before adding new blocks, however, so it might be a little while until I add the for loop. Cool! I did a bit of testing, and it's pretty awesome! Will support for the “For Each” control block ever be added? I use it in most of my projects
Once I do get new format done, adding new blocks like that should be pretty easy.
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- NFlex23
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Very cool! I can't wait for variable monitors to be implemented so I can test out one of my projects in it.
Edit: I keep on getting this error when trying to convert https://scratch.mit.edu/projects/540224710
Another edit: it's probably because the costumes are SVGs…?
Edit: I keep on getting this error when trying to convert https://scratch.mit.edu/projects/540224710
Another edit: it's probably because the costumes are SVGs…?
Last edited by NFlex23 (May 1, 2022 18:20:06)
Help improve the Advanced Topics (Really!)
Before you create a topic:
Always search for duplicates or other similar topics before making an umbrella topic, e.g., “The Mac Topic”.
- Is it about something you are planning on making but haven't made yet? If so, please wait to post until you have created a working prototype. This is a key factor to keeping the ATs as clean as possible.
- The ATs aren't technical support. It is perfectly valid to ask questions about things related to programming, but not issues with external websites, apps, or devices. Most sites have their own support system; try asking there!
- Is it related to something you are making in Scratch? (This includes OSes and other Scratch projects) If so, please post in Collaboration, Show and Tell, or another similar forum.
- Is your topic questionably “advanced”? Try browsing the other forums to see if your topic fits better in one of those.
- Issues with Scratch itself should be put in Bugs and Glitches.
- Retr0id
- Scratcher
68 posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Do you mean like the output log in the GUI? I guess I could add a screenshot of that. It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
I mean like, an example of the python code that it generates.
btw i use aarch64
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
https://scratch.mit.edu/projects/540224710Ok, I found the issue. Since you don't have SVG conversion setup, it can't convert SVG files and needs to use a fallback image. However, it was still trying to get the bitmap resolution for the fallback image. I've fixed the error for now by just adding a default bitmap resolution. Edit: I keep on getting this error when trying to convert
Another edit: it's probably because the costumes are SVGs…?
Oh, yeah that could be helpful.Do you mean like the output log in the GUI? I guess I could add a screenshot of that. It would be cool to see some example output (e.g. for the projects demoed in the screenshot)
I mean like, an example of the python code that it generates.
Last edited by imfh (May 1, 2022 21:28:45)
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Version 1.1 Beta is now out! I finished refactoring the specmap and added hidden blocks. I also fixed a bug which broke a lot of projects, and improved performance by avoiding debug logs by default.
The new specmap, which stores the data for each block, is pretty neat. All of the blocks are stored in a JSON file, so it's really easy to add new ones or modify existing ones. Here's an example block:
You can see the file all of the blocks are stored in here and the documentation for it here.
The new specmap, which stores the data for each block, is pretty neat. All of the blocks are stored in a JSON file, so it's really easy to add new ones or modify existing ones. Here's an example block:
{ "control_for_each": { "type": "stack", "args": { "SUBSTACK": "stack", "VARIABLE": "variable", "VALUE": "int" }, "code": [ "for i in range(1, {VALUE}+1):", " {VARIABLE} = i", " {SUBSTACK}" ] } }
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Here's some example output for Opac3tyD by @griffpatch (the others are too big to post):
import math import time import engine from engine.events import * from engine.operators import * from engine.types import * @sprite('Stage') class Stage(Target): """Sprite Stage""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 0 self._ypos = 0 self._direction = 90 self.shown = True self.pen = Pen(self) self.costume = Costumes( 1, 100, "None", [ { 'name': "backdrop1", 'path': "4b2a86f1da4c2593288abbe7f56eab5a-svg-2x.png", 'center': (480, 360), 'scale': 2 }, { 'name': "backdrop2", 'path': "a10d191b1511644ed42d3e869577e1ce-svg-2x.png", 'center': (480, 360), 'scale': 2 } ]) self.sounds = Sounds( 100, [ ]) self.var_Resolution = 3 self.var_Zoom = 299 self.sprite.layer = 0 @sprite('Blank') class SpriteBlank(Target): """Sprite Blank""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 36 self._ypos = 28 self._direction = 90 self.shown = True self.pen = Pen(self) self.costume = Costumes( 0, 100, "all around", [ { 'name': "costume1", 'path': "3339a2953a3bf62bb80e54ff575dbced-fallback.png", 'center': (0, 0), 'scale': 1 } ]) self.sounds = Sounds( 100, [ { 'name': "pop", 'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav" } ]) self.sprite.layer = 3 @sprite('3d demo') class Spriteddemo(Target): """Sprite 3d demo""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 132.1725565687481 self._ypos = 4.912546966277481 self._direction = 90 self.shown = False self.pen = Pen(self) self.costume = Costumes( 0, 100, "all around", [ { 'name': "big rect", 'path': "c4958b3fc53e567c3f2d6903f3a7c11a-svg-2x.png", 'center': (522, 388), 'scale': 2 } ]) self.sounds = Sounds( 100, [ { 'name': "Julius_-_3d_Demo_Tune.mp3", 'path': "4baafbd297c5163c9bfe5da2a4b7a8b6.wav" }, { 'name': "silence", 'path': "22392866c0f23819792658e9bc4f6c0a.wav" } ]) self.var_pos = 1992 self.var_lastquad = 30 self.var_lastrendertime = 0 self.var_incx = 72 self.var_incy = 78 self.var_ymin = 90 self.var_ymax = 84 self.var_xmin = -93.44758896468164 self.var_xmax = 300 self.var_xcnt = 55.67592596131997 self.var_xminprv = -76.10188833345045 self.var_xmaxprv = -9999999 self.var_p = 6 self.var_ply = 6 self.var_pOrd = 38 self.var_distance = 4.500000000000004 self.var_speed = 0.5400382381196349 self.var_speedTarget = 0.6 self.var_starIdx = 192 self.var_GUI = 0 self.var_Stars = 300 self.var_ZoomSx = 0.399999999999975 self.var_beat = 7 self.var_beatTimer = 28.516000000000002 self.var_beatSize = 1.2893518518518519 self.var_a1 = -0.7020497095555254 self.var_a2 = 0.511866032704478 self.var_svx = 300 self.var_svy = 300 self.var_svz = 300 self.var_acc = 0 self.var_peri = 527.0775063128438 self.var_ind = 35.53957386718539 self.var_td = 0.0957606658924196 self.list_points = List( [-0.8040276720500144, -0.29271526339301984, 0.13363113549602848, -47.911626143953875, 13.445139405650869, 61.975484984148316, -0.5061708219851443, 0.6538253400375734, 0.2574947084610783, -38.88029270113208, 23.89699921288966, 77.33822300053956, 0.01381562942416649, -0.6126629922077974, 0.6119258045434227, 6.004924678902964, 35.531837354590095, 58.52431526753469, 0.3116724794890361, 0.33387761122279763, 0.7357893775084734, 26.866185715758053, 50.36695870415431, 72.03718446689328, -0.3116724794890361, -0.33387761122279763, -0.7357893775084734, -22.995111691367022, -43.109723620989236, 61.65754678663661, -0.01381562942416649, 0.6126629922077974, -0.6119258045434227, -7.884602343092702, -46.65410859267782, 76.84375374556744, 0.5061708219851443, -0.6538253400375734, -0.2574947084610783, 29.27939299558875, -17.99599701442316, 58.2407195907593, 0.8040276720500144, 0.29271526339301984, -0.13363113549602848, 55.35826330256229, -15.534842526976146, 71.60798937920059, 1.2516880008601288, -1.0616680911978267, -1.1351819042106337, 67.6241797993048, -61.796975030599754, 53.90906904828621, 0.9734028857521868, -0.8751494534208689, -1.5063532774331263, 54.10765307121713, -84.45917407126471, 55.749027701194485, -1.0724442096211277, -1.654249298486482, 0.309552256112522, -50.87156180170708, 15.471626388616022, 48.48204875370223, -1.3507293247290697, -1.4677306607095304, -0.06161911710997848, -66.61051083333321, -2.4757579894906603, 49.965101763102474, 1.3507293247290697, 1.4677306607095304, 0.06161911710997848, 132.1725565687481, 4.912546966277481, 99.14374107970566, 1.0724442096211277, 1.654249298486482, -0.309552256112522, 110.75265681961221, -33.68333243903171, 105.55043952572944, -0.9734028857521868, 0.8751494534208689, 1.5063532774331263, -79.79722095673223, 124.55922577748973, 82.21789763713979, -1.2516880008601288, 1.0616680911978267, 1.1351819042106337, -108.60164179576256, 99.24339143561592, 86.57573997496672, 1.0729604317551955, -0.878239189426486, -0.5722340487931296, 60.104749633485035, -32.42391212308745, 55.73066203911069, 0.5163902015393135, -0.5052019138725763, -1.3145767952381233, 30.550744891785886, -78.90050805164623, 59.81219060830805, -0.5871340043028463, -1.3015114803469603, 0.4597189228662642, -29.18742124287494, 23.933447513366314, 51.47577793817772, -1.1437042345187258, -0.9284742047930521, -0.28262382357872984, -62.339880852353936, -14.964981438402184, 54.9385086139351, 1.1437042345187258, 0.9284742047930521, 0.28262382357872984, 95.3694079008873, 22.89387466762048, 84.04656803688688, 0.5871340043028463, 1.3015114803469603, -0.4597189228662642, 53.12230722131608, -43.55985892315359, 93.68803318846312, -0.5163902015393135, 0.5052019138725763, 1.3145767952381233, -38.17092300043672, 98.58041852015454, 74.73096090730736, -1.0729604317551955, 0.878239189426486, 0.5722340487931296, -88.71398307386997, 47.857355846529, 82.25787544215683, 1.4705955986416253, -1.1129323546504821, 0.35878978205499035, 102.48209568488191, 23.816605196065094, 53.44256463273567, -0.19911509200601463, 0.006179472011234938, -1.8682384572799942, -18.50704863519583, -160.01940969568008, 66.49667969962444, 0.14252004979519134, -1.4515501873868624, 1.1843521593825015, 11.071858746144576, 76.65734402765746, 50.25577174938265, -1.527190640852448, -0.3324383607251463, -1.0426760799524786, -121.76466322491632, -81.7714278809795, 61.633737932011066, 1.527190640852448, 0.3324383607251463, 1.0426760799524786, 142.38215031514335, 95.61716369656168, 72.06971141134844, -0.14252004979519134, 1.4515501873868624, -1.1843521593825015, -21.59454499433319, -149.5124262967825, 98.01881952701814, 0.19911509200601463, -0.006179472011234938, 1.8682384572799942, 18.477995707473546, 159.76820636036223, 66.3922911897563, -1.4705955986416253, 1.1129323546504821, -0.35878978205499035, -168.37909504796193, -39.130917485907865, 87.80666134669723, -192.26192053601963, -174.00688689781055, -196.54504635194874, -317.17182014405154, -322.05863168518374, 1.6531120122882732, 173.5558715443796, 53.13940744302991, -40.10688178423276, -1016.3119080175866, 245.38398639931688, -5.8907569274120855, -225.22454882515484, -227.646269331458, -19.623365576069766, -283.3350581809263, -22.416976361931383, 1.2729316976338891, -48.76826731940144, 120.71832829993404, -176.23206449344138, 134.03127985821374, 454.7097634367476, -2.586674064449883, 182.50380724837163, 326.543905150942, -89.93573044034407, -163.84439779655244, 84.43353812857224, -0.9221403986062678, 179.78754746827403, -133.1917439481557, -100.69456904635393, 398.3269626438108, -225.7489422027148, 2.2068055861708267, 228.72607461792128, -85.24344380185924, 168.24962550341175, 795.5123194236439, 571.7422220394085, 3.440094729883623, -34.93355548077656, 348.0218715726326, -182.84261426345796, 35.58485167886467, 159.08704391500228, -0.8715988648726193, 67.21690284236072, -69.48321066083899, 267.62468124810874, 288.0666485176335, 1091.7864942265705, 4.088881088911711, -265.5517176249297, 287.26994087326875, -28.341920761260603, 288.09078352334006, 27.781030636783505, -1.0697993680706386, -175.80077762729297, -133.7152996779527, 53.835898802702246, -369.95716019371844, 118.02985026471049, 2.1303377712188336, -266.15535611576036, 52.95843172887552, 64.5114662714884, 1760.8876016958636, -442.45302199770487, -6.6149700575201775, -301.11811215299775, 128.73579531253384, 89.73837227865852, 748.7223483408355, -229.24779826722323, -2.4803692080800186, 39.01460417624886, 51.98139130986975, -3.129781861597584, -239.08223742352385, 21.686537784491968, -6.234990594580671, -74.23395590621182, 132.34822907171124, 297.28482031736894, 172.3693355622398, -701.6540054887984, -2.35504835322982, 304.89070273544723, -144.65958494069804, -4.925635308467054, 630.3992097294794, -15.728347345571565, 2.0562030080907334, -89.8453031686831, -83.48431075660312, 340.627639594944, -288.0116033943637, 1146.4711681148215, 3.3579821888439247, -19.81563198720707, -167.17215397464747, -28.736933165444245, -31.34570027668764, -49.673033558065725, 1.7393273374972194, 239.3814956991933, -56.96636429281584, -49.14602283128587, 1223.9666360326553, -261.9566260729376, 5.108098849198443, -276.7479651305599, 126.41192665530093, 106.67045870566174, 699.5782504728904, -275.3249856032113, -2.5227103198850287, -15.545223206711347, -93.31399890210425, -152.43307771677016, -48.08250903123014, -464.56711092106724, 3.0505801264309484, 386.7489773921464, -145.52504365724252, 27.56241914434311, 800.0920633971921, 49.61548668106367, 2.058200339656161, 87.55525585169912, 342.908153963228, -168.13409136645956, -72.09196223907269, 148.78754095467255, -0.8808710050730783, -58.03253485600112, -108.70739200789282, 300.0598704395114, -141.81941390471113, 789.1760881726049, 2.625630317626764, -96.22774768441079, 179.16127917303302, -73.56259978894205, 170.7685420707136, 125.31537032212893, -1.7237327120711181, 50.154250817250464, 59.97265536217123, -109.84457823124276, -258.26874983745387, 588.118697501457, -5.332559676151834, 92.04593869659791, 64.12225775649804, -133.77922324621775, -443.3736548657077, 662.6688703389234, -4.923385093549136, 234.45415725117243, -195.78945902261972, -38.42830461506092, 358.1869397282766, -61.37526368153722, 1.514642112554995, 241.9097553891191, 212.00846664080933, -14.215413704817946, -339.77829946836675, 23.265870984882337, -1.420731661570064, 41.125312662024726, 202.63278169755154, 73.68625276169294, -59.1528715074413, -110.363549216654, -1.505315056613652, -298.3659804108997, -24.495365879903833, -84.96891527632143, -2735.5328485657365, -753.4857924484423, 9.155352182406514, -11.709245956057263, -62.90923308153223, 154.98168099687135, -42.29523621297174, 686.6319621798629, 4.42759549091203, 335.49685482759463, 239.17418114054217, 68.01887623971191, -417.16164104753176, -81.41860475409698, -1.2522287012118758, -172.5824060609677, -261.48775048466143, -123.24555776788999, -190.10870087637525, -135.72726870355913, 1.115271557614242, -320.5583240377461, 89.82234468375691, 30.875638398538484, 1180.4995503795462, -123.94070125158963, -3.673606334361113, 26.81488707784487, 148.95412582542212, 127.48972401331325, -53.95254755937768, -262.77696708506045, -2.0651247381936866, -146.1709451055022, -94.97094643407553, 266.6244025384008, -421.23760691260543, 791.3807584841538, 2.953799421142513, 304.6455086565721, 96.77718859493534, 62.69997829838292, -946.6933639394834, -186.7816262653324, -3.114278716066836, 128.4611360163066, -298.8595909879796, -45.778602143276125, 130.49116354029044, -46.49394557860668, 0.9908266519950556, 311.8542389421845, 110.72848918054027, 116.84234034319596, -846.3136770397889, -309.8614106203002, -2.716850727584743, 133.96208387790298, 160.7478079734251, -144.93895591755586, -247.5213421782281, 276.780153715297, -1.8940687618826775, -310.5432045819966, 222.87053150644152, -59.3012820134749, 437.2870693119004, 78.77633070414828, -1.3936636077707536, -139.28090047136246, -50.11696568261712, -83.75631250797001, -739.9455241337347, -437.9653369823779, 5.308111868446278, -85.36388478568206, -83.85616250402967, 153.87706260058155, -277.5000299182539, 517.2967241895308, 3.345307578740305, 86.82734084256194, -16.15932251317108, 136.92658141781698, 1347.51149536859, 2079.109549265455, 15.271239640487874, -13.7839774946763, 3.615276817650848, -111.78072963530212, -4157.843680712906, -31313.948452776018, 280.457422094808, -11.080653069983345, 194.14957739635466, -102.92793635414104, 22.687099458212888, 162.25107181638643, -1.5779365585927425, -42.72454124647645, 96.36872880302587, 321.58774831829226, 134.25462000158515, -1053.5364781466676, -3.272293461263567, -53.88486107475325, -16.04877367491883, 389.31331320740725, -709.2354759291852, 5506.404576736134, 14.126985417583084, -78.41124465602591, -266.5578201373408, -125.00241597339367, -83.81824782645363, -136.6290957897552, 1.0992153627346932, 296.851133393138, -189.99054816778212, 11.99976166807852, 468.860720741208, 14.645155039284154, 1.5667749947559042, -253.84260458925326, 101.16837327126056, 1.3751251438654153, 815.1421063967218, -11.642863712261041, -3.1961252182506805, -37.766936992525444, -110.36626743875435, 81.96917179925393, -92.51221348245492, 213.41006059229693, 2.5929709926475835, -36.183637371449244, -150.0184746856947, 83.75679760894849, -64.82676731441435, 162.24804304497118, 1.9297621177073343, -325.9843506969062, 58.438818592337014, -33.363231827481656, 1957.7038257414258, 182.31978815612393, -5.9875770301369755, 334.9207502312929, -108.22045248110004, -65.70709426276952, 923.9042655416207, -189.10903329213917, 2.752817845821667, 363.65017079422853, -133.03853099256133, -29.669845064746173, 820.0340263244299, -73.95982281569601, 2.2468322268246856, -115.522737784733, 205.89174352029121, 187.38219217644885, 173.97188900795246, -281.69431763617797, -1.4951391863454877, -18.590020652148475, -77.51230632048258, 310.4114231876311, -54.071712432999, 1129.6673075841854, 3.6374572113216326, 24.681980410142227, -51.19375444792632, 262.90492212845834, 149.368025396936, 1418.7376702286263, 5.401136170296284, 90.42078783018077, -42.5889641684952, 166.7520932438373, 601.2691721284359, 1079.54162045827, 6.505706209537987, -121.50685122527547, -5.665565283328418, -50.497386982541514, -3125.416352192137, -1267.0933008879265, 25.644535780758005, -144.01746312415463, -370.583772166251, 193.86499095935483, -109.29108931637852, 154.85171008067013, 0.7935259426848453, -165.92001595830516, 158.8133271713293, 197.46866618196944, 326.080089036425, -390.5963991835826, -1.963357812770747, -101.63126192452143, -47.48442541472343, 1.147010724358604, -567.5281865956297, 11.543530395928174, 5.617560573955469, -73.55646197329725, -168.26876443715335, -195.1001505683045, -126.06893249901168, -334.73378468565176, 1.7215695398962028, 90.16811925137658, 8.838048357616303, 235.89107242594974, -5039.317506176801, -12854.449904073024, -54.68207203566801, 16.466366066130064, 194.56148910219767, -178.60482810159132, -19.623921784714582, 280.94913584505906, -1.5717890966450236, -237.0055101040107, 111.5300409377398, 104.41952288209433, 681.7124523869073, -305.90130041186046, -2.8714316975090317, 69.4138628740605, -33.60995031652267, 266.49218664397665, 579.8702211581484, 2135.3025235253012, 8.03163696211519, -29.014796257884925, -38.92246515815726, 344.3547315379032, -174.04062693329323, 2355.7775140770423, 6.836262813376172, 186.60806943945704, 232.22183774919438, -164.65856809836032, -236.97954554636823, 216.24042361429622, -1.3001540036003285, -275.75675938722316, -59.842226667088426, -173.56588142324256, -1220.7230183961374, -755.2557634048036, 4.414236487452396, 44.7083687467714, 102.34750945871632, 201.1147638923229, -137.47106735480833, -609.8132633815617, -3.0383208347708504, -181.84084375901344, -179.0802111449686, 168.92952214164075, -286.6721982711978, 274.48954708766405, 1.609463064353929, 116.79944697066608, 38.66364438906099, 261.8950368179907, -995.9689623800707, -2189.513587426294, -8.394049971011519, -18.225910069480488, -237.33927610335735, -4.569854561701366, -18.97006829274077, -5.443807116257143, 1.2353061125887272, -148.51111327717587, -85.6699482557785, -56.98340517835345, -480.90411245234696, -180.89769240081023, 3.2503760925442453, -56.63017426787696, 0.8934022150186097, 440.2978783853789, -3705.6806944184714, 30993.702534088785, 70.31459029041146, 307.4704494170437, -76.51905031985007, -25.15463391936967, 1192.7199932927256, -107.99173345432268, 3.8706080537859093, -180.4214018292526, 170.45754698470523, 78.13668514425723, 331.95722408529355, -145.6178854098321, -1.8260352699134288, -90.96588768500098, -1.073434638527773, -247.55616291172566, -4147.875793000821, -10986.365584122017, 44.527232256096305, 234.09569201551886, 159.54993433945086, 186.2042510726197, -442.6069306412746, -348.5642202605556, -1.8932852465622934, -289.0701312297313, 151.83521709374983, 103.08988364060072, 602.9691459176144, -219.72365014853483, -2.07937315962404, -196.18151892813523, -115.43774576349406, -174.95124130832136, -479.7301936825464, -423.2406814856343, 2.443770753685519, -219.81204056661582, -174.58550424596527, 68.98961208661541, -357.0261086813842, 116.71682948982121, 1.6450440922025316, -263.84195527125513, -201.82417493122153, -162.24494518428085, -374.9467020522853, -228.11922769476308, 1.4268027495264686, -70.3272630914353, 318.96846933097254, -92.7749448335672, 71.56808575530972, 87.8607943317393, -0.9535268850881597, -21.421737137338603, -91.86362704107165, 158.49032333705813, -58.43048614406426, 491.12866443253586, 3.0951788963773295, -256.473289598079, 31.443523858871266, -10.136817229530351, 3228.003681510227, 98.56878612712846, -12.564255004414342, 188.0972474283361, -19.60409738065256, -158.95944012150798, 2561.577875115355, -2201.628297198728, 13.70591106658382, -213.98899355731947, 68.23643763447042, 100.4315590122705, 1046.410641199856, -500.64148977273237, -4.891979298170431, 158.54224698225386, -19.064941863051246, -57.051584416371256, 2187.8021028818775, -808.2966174645703, 13.825150419813152, 370.3895509482492, -93.24305942017581, -16.072007892188225, 1191.338783142298, -62.17516162640001, 3.208164785382069, 132.3872153877578, -270.6778454720469, 65.1239447550521, 148.96013110295453, 69.89277538002439, 1.0931225149449142, -78.94366788467833, -289.0847056438151, 184.68331869523942, -74.86698368106488, 188.207442858694, 1.0152455621507261, 256.7048371661249, 51.16726022532056, -42.81981220228632, -1534.900201930804, 270.82813061153416, -6.003539582270415, 177.0610682306513, 287.8650872894075, -110.68002164664517, -180.68230026717612, 117.56523113504315, -1.0472826580175314, -152.7703908872902, 78.18551836642544, -192.37263640739818, 647.3801446686442, 795.5368550661407, -4.16511081114393, -231.82908550994378, 282.9672616077278, -12.680790361042119, 255.36429002385842, 11.509816014811413, -1.0848891425905702, -101.73553128536645, -99.92714628079887, 119.01027838226865, -281.40642925601196, 339.3596692091477, 2.8300160665916514, 124.46384005071978, -53.39362546686475, 69.79163893567814, 667.0408984838672, 364.362916407012, 5.305462296616829, -118.47069984635148, 61.615204182649975, -43.2117988184376, 642.5344983531955, 226.4578995747644, -5.37244982516657, -32.689371809007966, -22.20638284623683, -226.43162463267333, -379.5217188249461, -2492.185166788483, 11.02100146318495, 118.0497263990701, -185.30244813613695, -95.41102767905731, 189.62754508773554, -153.12816234988807, 1.587448196838764, -10.632792266249119, -173.01463645425292, -80.31736361463915, -15.53422368096858, -135.0227136152635, 1.683172677567968, 16.261997632586937, 266.13744069857813, -126.31867986611876, -13.557418767922654, 144.42628028822855, -1.1420806292224055, -137.80631094274676, -213.84418216712868, 161.55211110136557, -181.7482660512374, 221.229553419524, 1.35909778183325, 72.49155356255902, 123.36756354133495, -166.13072559811678, -173.53280138573135, 416.48247697126607, -2.497320920124876, 145.22094340345512, 292.5363629390353, 43.51266687457732, -146.51755264933294, -43.553926498167044, -1.0317515361366905, 26.903904915945294, -286.75894712242206, 107.84008997846357, 32.251881426984305, 110.59291864963312, 1.0278588170491958, 135.4604481542542, -141.10263178061223, -272.1516353253892, 279.85174578571, -567.7321364756019, 2.076935095813796, 58.2940365976277, 215.8165491908385, 159.04094251046467, -80.46919238819723, -223.53056851207936, -1.41016455528687, 3.065032888090375, 32.902826527662484, -357.5597954206483, 5.60688255750149, 3764.7509197384866, -10.528624593030655, -208.9614052598544, 45.10550504280237, -220.7501365100197, 1663.0973548650193, 1721.3952134241188, -7.864757519232542, 96.04500216508177, 240.02934863323088, -262.5685945514125, -114.65204171336951, 332.805041504468, -1.2634192903913743, -104.90369153831757, 181.47617898777716, -129.2076281562002, 184.28774764594723, 218.32316799351221, -1.7021218178262716, -295.816380837906, 138.3025281015969, -99.36839290176195, 685.4116736951752, 222.19187093905484, -2.2972284319367264, 214.42418351445318, 278.8519360365744, -5.819349788447696, -227.71836342007285, 8.350291830153928, -1.079587820666068, -237.97862082739735, 52.608523821550214, 41.863086095330495, 1576.0793941238153, -291.0214357149698, -6.616013886902045, -38.18958006907329, -75.23962335892236, -67.10107952756995, -141.14272489393736, -248.85430142809994, 3.7277505427458553, -131.56231642345728, 5.648411549206468, -153.1223418411277, -82715.35368906886, -94506.28121530352, 621.9936808318877, 298.71047875647326, 172.01341388533663, 161.53461606271475, -520.5423352676108, -277.4830984170167, -1.7467190902667136, -245.28465959161798, 47.46673073608521, 29.939003008406257, 1837.4250540946946, -240.39845240762241, -7.482267615237579, 16.077530039389497, 65.31626285745094, 279.40883573679565, -87.0530616447526, -1367.9296390812106, -4.8985130716897345, 50.1798783538343, 364.78871480261637, -122.38125376768404, -36.96350350060198, 101.76880987139629, -0.8285698583256305, -85.69998157092358, -62.61097548243769, 34.1376421727072, -371.23753600011815, 153.12213894083956, 4.387216034061772, 126.11236327041932, -44.98034102499225, 180.55038037630712, 800.4312671739222, 1119.667363304138, 6.240603004002219, -5.478878455856403, 134.9755768874976, 98.87656558079438, 14.327179833868323, -226.80579371097397, -2.292784097685381, 5.019337817296584, 196.8936263726841, 224.49878618174273, -7.164423399973881, -348.68199126501685, -1.5535298723915694, -100.403181344023, -78.23084048810459, 77.724746772329, -351.686497179316, 280.02273417732994, 3.561786892911227, 107.06963608369631, 87.56676823170974, 285.68190775165687, -384.4917313721352, -1008.6035557534441, -3.542514950486864, -49.09081679940234, -276.83865205449956, 156.33122157238685, -46.983284645769025, 166.27147179817948, 1.0606514081681668, 139.8698995967492, 262.50099075007864, -82.07094063911194, -156.4789270894857, 95.93063761934208, -1.1513904043329597, 82.58973060629422, 112.66508955646572, -315.1357036544986, -214.75442234764515, 865.3800136282487, -2.739749889190479, -198.10448835432894, -21.96880004348985, -100.94544281170448, -2055.515599564838, -1025.8388198252135, 10.34407619191553, -361.8358615247095, -158.48620275565415, -145.12728486989045, -644.9720694118432, -253.3981497812095, 1.785890198831347, 80.01375018301391, 319.5204198751301, -129.77865435398348, -70.90757272299308, 123.48297181443216, -0.9463145937412503, -63.940207575607765, -255.63552845331316, 63.61702103147021, -69.03013708452663, 73.5609617845278, 1.1460646419063978, 69.79052100329308, -53.93806968600549, -324.599701014942, 350.52975344163224, -1687.7336194458233, 5.189669519413027, -60.81564156151781, 255.18226428389974, 55.28534237743764, 75.89907216787728, -66.78871881205029, -1.1963635538197481, -307.11247349717087, -201.85209774336312, -224.11304170531773, -436.2901590132549, -314.98869244949987, 1.422967222484606, 307.4889730721536, 212.21973442314396, 211.5285133738096, -433.6574964249298, -295.15273660135955, -1.413749017880974, -314.8932480413668, 55.410673311510706, 82.07860436995637, 2000.2413155031077, -539.3771451819529, -6.35395072600807, 202.56704551258437, -44.10196449418278, -66.26920715687366, 1312.6605126821944, -441.30584236316247, 6.482525514186166, 342.46995868509657, 81.56831525987245, 94.05282672686242, -1259.271312214328, -334.76530074183523, -3.6791610951492855, 389.466663627288, -78.18992019180595, 32.419916393541676, 1499.3225673143595, 111.06395492218014, 3.8378282189030455, 107.71984870918793, 82.14994978561332, 269.0015211663384, -412.9738361401896, -1014.5261694934396, -3.785143486315452, 157.52327261365147, -188.7908701914874, 9.296516656135143, 249.8646905203663, 12.327316277786574, 1.5626170930316798, 303.7060094431977, -132.6582620747572, 32.97640588172267, 684.8244067553393, 67.81638278924535, 2.2409828220145376, 137.73015007816042, -7.083682162931004, 127.57047666528737, 4204.0702915489965, 3822.6456804502877, 30.258020471766937, -204.4174170152079, 96.88457164341115, 57.8091553934238, 682.1870239756212, -198.3808129077407, -3.3266930581025416, 60.54118594214363, -101.83044710719993, -103.29726301917478, 172.33157846238987, -294.02098069594706, 2.831644735792644, 6.193479047652108, 16.43463328416534, -229.43091053878803, -98.3487581251097, 5725.356774552244, -24.949579473558675, -121.29676638181866, -360.07439928285856, 141.69869001194812, -94.43778642495145, 116.63420273451658, 0.8168996685281826, -223.36436005199417, 32.83575460246687, 150.29030022326768, 2596.224501670522, -1777.6760483346386, -11.673751537731777, 65.47098519211981, 152.06295342278892, 47.53322886498274, -129.03463853475026, -94.61504589694239, -2.015382824188461, -75.8451373737298, 375.5860382505655, -111.37612520158744, 65.78622299305282, 89.42467972137949, -0.8078540135709921, -125.39503690934966, -102.03319993200583, 324.2827596749147, -335.55545421289753, 900.6280679321817, 2.7678414360513672, -22.284510963254565, 138.41252198486745, 226.35894802531755, 49.117869278997645, -506.8177105195149, -2.2371218507616946, -301.1848179220171, -188.3364927741768, -131.510713578647, -456.452306657743, -195.98137816598287, 1.5214198215948112, -44.18594697677704, -82.68294225332603, 300.06187915597906, -138.0586756347308, 1024.4930565801492, 3.4099228284814806, -49.254066477607886, -215.51766358767193, -134.68545861503597, -64.79677603527242, -181.93198221889938, 1.3552733334344764, -33.801270971914576, -287.4655026596302, 81.60304928597404, -30.218346699486784, 83.76500455613059, 1.0227497389844724, -107.9969236847696, -13.172682359834477, 99.94570741895159, -1684.166757834995, 1589.2915402089413, 15.750136719048124, 43.210939974307365, 147.47485470252442, -137.45174117155156, -83.71428505635188, 287.23431160555526, -2.0839406988536338, -65.56733222955525, -252.95994831528986, 13.645091986840432, -72.17700993501322, 16.47619974092063, 1.1578250491807351, -139.76069077562855, -266.8638138261884, 95.96172335546177, -148.5086978309984, 106.44641741746837, 1.0950549269452896, 340.51382557237184, 107.08715949743318, 80.05417962255179, -951.8871254692883, -215.67711617636678, -2.8006755795446043, 209.05627790439988, -205.97570773844782, -155.17241716707971, 302.2415132513188, -225.82756943506047, 1.4380820483015253, -191.0091216229755, -165.63687209080504, -282.18600160070616, -331.9043226426924, -486.1574475882405, 1.7333773008658961, 146.59323408800492, 84.39799517458219, -113.29784267927424, -529.1011360019578, 419.5423995362336, -3.6608348136122197, -237.40293611935115, 57.335282584277586, 50.54216077453232, 1423.0628567128547, -315.3683607217525, -5.988649654961074, -187.23710467286148, 57.84833878067454, 61.68334870998467, 1097.3030669740408, -371.0137390599034, -5.856238228967833, -230.92809761739917, -194.30466029863442, 118.60400620744204, -337.3449288586416, 178.9527102163723, 1.4830871903152867, -76.58171430780816, -341.60132264812574, 190.19930305795384, -60.91129537684709, 164.47552950768122, 0.8616884536496996, 234.2910936998803, -76.8568203120425, 12.0296054136393, 896.5272892459019, 37.85567621485612, 3.809929950951908, -73.55649702004787, 162.90737931047306, -34.06797872187583, 144.00060507124257, 63.42895767163745, -1.8985309981575738, 151.90644749272596, -302.965648295814, 63.900281169152855, 152.81179246536115, 61.19503793529645, 0.9784841167498138, 221.75500159525905, 138.95060737238725, 167.59309652096317, -482.85361797133436, -360.96813594596057, -2.1796890965990405, -66.35037994851355, 158.4329147794841, -200.6754532268328, 136.87008573366077, 390.7757100081264, -1.9531490929564606, 209.55829232787949, 207.2842224083768, -62.38245940330246, -300.6130755896993, 93.56367675937274, -1.4561967182818156, 109.22134529346066, 236.14775976328573, 20.613883462819995, -136.68400259755688, -25.20301091140128, -1.2834242967102139, -155.09220270500745, 215.67447701432235, -155.2189658891298, 227.3548021247175, 219.81509210485373, -1.428973817481504, -16.893112970633712, -211.39083800912738, 120.62560040411738, -18.298933316545632, 167.12615898309284, 1.3838188420687707, -0.764872889209264, -120.8815330034893, 232.14665354783975, 6.6549562428215685, 553.7101584080162, 2.385198959544599, -73.40770932727229, -53.976023312196006, 71.02039718177245, -363.1676734019559, 361.00120793525974, 5.036755726923069, 140.72075522378924, 314.72431284266565, -14.706257175103268, -131.05266811186272, 15.301465063504285, -0.9585692031388444, 37.25321613095274, -242.48909807860184, -91.85986362005124, 47.786142169398765, -111.81246011776638, 1.2128611320469358, 117.78349726136871, -30.977819015560726, 139.94792557847347, 1049.4882041969092, 1220.8034606182148, 8.789707838151841, -112.18794096061426, -227.0157719103335, 189.60934395203265, -138.29443512759914, 244.74976470033897, 1.2840744963467636, 146.2989308348164, 318.7477913489981, 11.422186429668209, -134.80610017252138, -9.570069006497455, -0.9461498053065058, 177.88947308865946, 108.47486891080818, -80.20933220932555, -495.31217912147207, 230.42566521972674, -2.817100504715394, -92.86352979614388, -12.350054435014695, 122.69001789229131, -1523.9144802337096, 2054.7433429067123, 16.6356137440523, -36.45199040744687, -91.0878559805698, 123.0010342537164, -106.60565900328972, 384.0392396984136, 3.114123532935643, -11.052535160843583, -25.805153082451458, 301.1078443335845, -79.11495166749367, 2961.854189630379, 9.833690602010096, -45.88265394576343, -60.72054421433828, -230.50552402666798, -214.4350408239563, -1045.4757277370488, 4.543839206582993, -160.1880811148066, 102.1132358647208, 307.4697766534957, 495.87478141898697, -965.3115121382501, -3.1251124611324403, 52.52666339255677, 147.1078834585669, 140.9617665537515, -108.48582235592163, -293.22070832651707, -2.087174918455067, -139.2900280761503, 117.17334047359175, 159.27239402462476, 375.2796603075527, -432.46186903452167, -2.694291830442138, 242.2669738510959, -185.9906843285693, -132.31091083382248, 387.9926087343683, -214.4085879183523, 1.594472083764723, 192.49130982499787, 249.68363697669506, -113.14669565278605, -227.59128580659558, 138.75621983472539, -1.2080272812611748, -16.365099060158713, 195.18530321524946, 5.2802042726439735, 29.36711558111021, -8.518011580069636, -1.5697950912568495, -131.21225638144722, 268.4034709971366, -104.86619764546884, 154.39150733305166, 118.2138252256118, -1.1400717557541737, 52.1819195714061, 67.42855101485083, -165.5428557900884, -234.66015335066538, 781.0991615558016, -4.705347937798019, -32.745171422087296, -195.37469353070682, -35.90936349194006, -45.78840485060624, -53.174519932705095, 1.4930205462695958, 172.69129516881546, 193.21864381874676, 202.01304497669648, -269.6493736465709, -314.0722107710188, -1.566740132583988, -103.10100342094194, -28.07776381884655, 152.09806555911143, -896.2905107932751, 1352.687440889967, 8.840339657621552, -4.247402235493655, 205.2925404415548, 92.87589506402163, 8.836840285455331, -138.39188262675242, -1.4895240960246126, -36.22984799918423, 13.686573069632889, 236.10394920819834, 1169.2053417028653, -8062.629795104431, -34.10325469933826, 234.39300473510707, -162.1481671391007, 136.13188334239118, 433.7918984812579, 244.73828235133234, 1.8259626257564157, 306.42265769811274, 214.06371779385714, 100.09933191558397, -427.03899815105456, -136.4661592152628, -1.4016962127384751, 308.2372030303256, -93.83014450125116, -77.53533704058697, 976.0352121136758, -253.87864692165752, 3.1621814618479034, -325.1526854207685, 32.52653131969404, -114.36237742421396, 4063.3960459300315, 1386.917654003148, -12.443966524386605, 22.75745063912823, 1.6579347092909533, -129.3845021005878, 2503.195771597655, -15031.963277246448, 116.00290466045858, -28.510810651646533, 139.6528672373184, -304.4900793259985, 73.08311352614389, 674.9994452045663, -2.218763700948843, -246.25938770713483, -228.04703029948556, -173.78683247403828, -310.9606045003864, -217.78335761853285, 1.2692824052746097, 149.7108836794905, 151.317828783129, 25.75975609927029, -297.8456467274754, -49.123939756239324, -2.01152300590007, -324.27568567211927, -25.81807500350987, 6.534841192836657, -2824.1285338242146, 82.24410361202747, 8.720114864602534, 210.52876486929938, 284.77036380329304, -48.4197945474789, -218.39887901037594, 53.17561906587616, -1.057197777832537, 185.98637030944988, 154.6260226332373, 331.6079918102122, -366.8762738173684, -647.1847841946653, -1.9615629284627407, -42.23365829679538, -154.8081115952867, -205.08477692861536, -78.87460250942371, -382.9233475181713, 1.870662774544653, 105.63590494580839, 51.682372191398876, -349.58830844679096, -628.8580020769242, 2163.847830598708, -6.17328467940006, -118.11726683101338, 160.99867849128157, 308.212158802615, 226.21336437907502, -596.2817102006476, -1.9281226339452409, 97.25387683966837, 116.66812657511795, 70.57783763362983, -254.38417451239036, -183.86022014680688, -2.6376454820289075, 22.748500414352648, 35.31331078658848, 0.6897662625636489, -214.6544072903198, -4.678985355329385, -9.617408409193057, -37.58804828615286, 19.447887164947005, -325.75898519300546, 842.8150178385408, 6733.294089546101, -20.691712612952536, 291.10782901520696, -53.20959684697158, -49.668589372848416, 1608.5442554887297, -288.6344204914745, 5.522279898598592, 91.551105663039, -318.733770190507, 99.88081646625996, 89.43544226297882, 91.96126006389002, 0.9283488547702003, 150.20117810780377, -117.64537607252798, -58.57619841590842, 375.54898410631637, -148.91438525006515, 2.485398303247675, -48.345110625160274, 214.34921686340775, 46.969809958142235, 72.22772379935327, -67.73154471145327, -1.428940580759666, 189.62325221974535, 336.8958631418871, -81.98900373457558, -165.04359094335317, 74.75761748701353, -0.8933775785697179, -224.41823583196006, -111.8226016922879, -224.70682886137277, -564.9905956505714, -559.123998809207, 2.5107390777173455, -200.08593706786974, -244.59933046632008, 35.18214372687529, -233.8848613114508, 43.94530299832212, 1.1887314900615513, 92.3141659237413, 6.136604515068434, 30.861572218688927, -9982.998807470733, -3241.433959837259, -107.9195895513197, -216.29975555387819, 61.73825267835837, 154.12917459239654, 1180.9582471996262, -854.58384470342, -5.4761580345414025, 300.6922916429186, 75.90449713552042, 32.27461376423125, -1194.6858821350334, -117.81783414467101, -3.982074054467668, -80.1303356304353, 75.01958662262422, 93.73468215732792, 344.83541730237164, -406.0771204506972, -4.29953303231435, -150.34023796018974, -167.87010318054874, -285.51083880177316, -258.8184931312324, -487.64494590225456, 1.7161148300101543, -202.82172062431252, 234.66656966887882, 159.5272680220389, 268.2272474881066, -211.86851793690366, -1.3132386639426765, 305.62573267431515, 120.30639339374979, 108.81305283451101, -763.0155194509014, -265.29819961944514, -2.5009642897806588, -302.09304195043933, -218.8688135862864, -50.529528222096005, -394.8245047990368, -62.982631442761964, 1.316836938984909, -218.85779270335047, -122.65371409544741, -284.1607472787243, -506.2532251982922, -649.7608322742005, 2.3025306737199265, 83.88629520354807, 283.462097277854, -241.05668700964694, -83.5771770624171, 258.25737813160333, -1.0680775082079237, -42.64293374946823, -103.42335165051202, -2.4880389636014595, -114.13415085752177, -5.809643663794627, 2.757327508798265, 217.20788748824046, 123.99522452478564, 251.04763592746363, -533.2852700797139, -609.61932696257, -2.4473154147200247, 44.92237773681762, 234.95495168691627, 201.58410005559858, -56.74172126078975, -260.38397868013675, -1.2943174874996743, 191.203232740007, 26.49992325697094, -78.84844203873571, -2336.6577778551614, 989.8691999679025, -12.288355042656425, -88.16699798268135, -34.995920015649126, -218.20601517445752, -660.4731567644052, -1601.221923174842, 7.364999101009269, -115.02992320579958, -73.45152134064445, 153.0587791029776, -424.9138553835787, 580.6756422087968, 3.7686558257362037, -154.84982418811336, 126.4372578363258, -158.48391325747696, 393.1343245735875, 391.3835224519126, -2.491393556105712, -31.621667328029286, 216.15060505907425, -173.46176805613928, 50.698710009066, 245.13106142221255, -1.4155323400030237, -78.58249319669223, 12.897796366450812, -278.108678676131, 3279.9755759007403, 11202.87377391098, -40.38591686968666, -292.9452307816561, 286.7335761064503, 103.73497889440232, 317.0966322548721, -114.12105115386753, -1.073091689449003, -210.03550543421622, -258.4361432006343, -33.01278732154164, -233.2814442099235, -35.0644464377682, 1.126203446525064, -19.169472284491217, -114.51876268523891, 358.2568656254007, -36.529901941899254, 898.9974858051049, 2.5082667864262667, 320.06067314085425, -19.05346511106695, 53.5549121811362, 4886.698525092436, 772.3608104045211, 15.235902831362178, 112.76902169932032, 127.7195320175895, 350.0812282561703, -274.2615504289076, -837.4302693630934, -2.399102439916358, -83.37238140695173, -49.762464219905745, -266.93958453681284, -460.24957067973196, -1438.9774197425272, 5.405947773585864, -118.12652054807342, -97.48919873920705, -123.42196134617166, -341.1382394165441, -353.6852384632205, 2.8904888514312406, 275.2963665919354, 301.98678772380555, 22.133393395511654, -270.10050644710753, -19.552818986444528, -0.9938852786917182, 99.92925592506154, -157.85889175557418, -243.15573777874695, 184.94826608159502, -452.7949704518886, 1.8554223127235958, -8.043655979878366, -141.51694441891925, 138.32661858597277, -10.383029675732997, 283.24710821336697, 2.046687296067853, -212.24212387878484, -211.5466418269764, 106.70659271034879, -285.3956925792934, 148.5271209255128, 1.3676728586976254, -6.195647405579523, 270.81708706283393, -38.42809480653016, 11.070251104865173, 43.096450665206206, -1.123145419723889, 76.76782108622878, 111.93404987944447, 2.7330887575039586, -208.07310866845364, -5.648443224625955, -2.7591545745449735, -9.207356371578912, 38.81690046246936, 150.3411867642336, 72.86703385584107, -1314.3754441086905, -8.738185033891046, 188.62479218075052, -124.43121956203187, -276.6921706451856, 443.05654500446065, -657.2235694111757, 2.36100320950239, 275.17444128772064, 65.0091219377018, -26.811171647299968, -1283.142315017678, 137.01060476691407, -4.6811772118503585, -132.30537960555742, 47.277037661865506, -189.57100845957368, 978.1823757972546, 1369.4077419134842, -7.269333314291645, 166.2484585622525, 64.99200803852627, -176.8515973806965, -783.814864061993, 853.0654178524231, -4.783640732945346, -208.84208212146106, 153.47863287291358, 275.463775739896, 425.18289364069784, -566.2325662780097, -2.0418131664047614, -187.47053229900075, -129.28598545611112, -286.7785400914035, -413.9431145809001, -626.3020527194316, 2.1968395646484975, 379.72558404684617, 86.839487596671, 72.81057926696282, -1303.5606031819902, -238.58336393446058, -3.437040606218969, 60.5374355422547, 64.3760344231829, 205.19001988445368, -303.63160014502967, -1009.1081914091076, -4.931114140953819, 205.71729426772737, -148.01576476876556, -225.92194764897457, 409.58402415965355, -453.956265511713, 1.993215378323415, 290.1986857038882, -55.255792866834156, -129.49331254898414, 1540.929563009414, -702.5789787256609, 5.319317096829011, -162.57686847903324, -215.35715595453888, -156.0610634307434, -217.41152474829659, -208.3665799519153, 1.347757432565357, 25.31478737801536, 242.39688593352554, 114.95177423623474, -29.33333291533088, -144.0024447779371, -1.2552401214481863, 192.8965259093468, -236.30284671729248, -152.90812125589673, 243.7809017826764, -193.89895220974725, 1.2539925265474303, 81.19064215053537, -196.35271373737032, -120.47693068412875, 123.44251860770302, -181.3203842013483, 1.4960742502907398, 109.2996651030947, 221.29349076116864, -233.42615953749848, -143.25541935690777, 321.3509691041092, -1.3709904963544255, 116.11763781157262, -160.01976478765624, -202.4953530553351, 213.1148636474652, -373.0911834512536, 1.8331500911417884, 10.28061707284499, 6.112146913530975, 290.375531191783, -2162.6906248797363, -49050.34710961527, -168.98057735719863, 117.69132117805921, -198.12958791701433, -203.9667084566345, 175.7833314327112, -304.6694376119402, 1.4861200327060373, 87.03866304681445, -276.43881189056987, -10.190860725354016, 96.50469380012052, -11.718446518603495, 1.0684190041434412, 94.10861036905796, -160.16016203036025, -1.513805945344063, 175.65008050702227, -4.305865526524845, 1.828799201793264, -236.9293813188425, 119.49252851588508, -31.73330547340615, 636.670928019735, 79.00811084601169, -2.667804955138077, -203.99444414652675, -168.52154319892122, 153.1265950001909, -341.67427051632757, 263.9895265576226, 1.703785943238236, 195.85176078896876, 25.892605766618885, 139.63043914541652, -2471.3128988576777, -1731.7237873820613, -12.56008176360326, -284.96195978108744, 287.3340609627466, 19.9202625426004, 308.5790348763381, -24.047760761794777, -1.0704444177825676, -280.02743927716705, 213.8448905548876, 113.99997399604703, 408.90382990941214, -169.16405740285393, -1.4520883163596034, 46.63355580069706, -109.63776806144489, 272.3084093099481, 132.74938262911135, 716.0536604322904, 2.6337030889301962, 135.0150926121084, -41.51384289226989, -61.46970923195447, 909.6000055280914, -422.40755436715506, 6.739818578010325, -93.32381167160987, -28.345823798977513, -49.34754485388361, -821.6090888960259, -426.7127470833716, 8.796050868113708, -220.67282504999162, -39.21695966354013, 82.42895711174654, -1413.7369802360777, 543.7494441908246, 6.442752101818647, -107.86287072224815, 20.635958980748583, -252.26723327110193, 2231.733060187549, 5081.880716089588, -20.222884841634926, 215.73780745278444, 182.4347765605042, 1.3224740967064592, -353.52106174179085, 1.0016650173915507, -1.6559179038057814, -188.6843940682933, -176.56379382722952, -193.77673804173995, -306.9024256672869, -313.1847022855473, 1.6304623562104499, -94.76931473838451, 55.67592596131997, 147.52615932611886, 562.5530797603858, -886.7596031079629, -5.9768018793175335] ) self.list_polys = List( [0, 12, 18, 6, 15790320, 128, 24, 30, 42, 36, 15790320, 128, 12, 36, 42, 18, 4253248, 128, 0, 24, 30, 6, 4210918, 128, 48, 60, 66, 54, 12853280, 128, 72, 78, 90, 84, 12853280, 128, 60, 84, 90, 66, 4253248, 128, 48, 72, 78, 54, 4210918, 128, 96, 108, 60, 48, 12853280, 255, 108, 132, 84, 60, 4253248, 255, 132, 120, 72, 84, 12853280, 255, 120, 96, 48, 72, 4210918, 255, 102, 114, 66, 54, 12853280, 255, 114, 138, 90, 66, 4253248, 255, 138, 126, 78, 90, 12853280, 255, 126, 102, 54, 78, 4210918, 255, 144, 156, 180, 168, 16776960, 128, 186, 174, 150, 162, 65535, 128] ) self.list_polyOrd = List( [-5.058797503814708, 24, -4.895668059457755, 48, -3.7765562327960276, 72, -2.238223653323433, 96, -1.5754094115399973, 54, -1.185162414577317, 36, -0.6398954576295532, 12, -0.45629758487826977, 78, -0.0823246956595538, 6, 0.08232469565955391, 0, 0.45629758487826977, 66, 0.6398954576295534, 18, 1.185162414577317, 42, 1.5754094115399973, 90, 2.238223653323433, 102, 3.7765562327960276, 60, 4.895668059457755, 84, 5.058797503814708, 30] ) self.list_beat = List( [24.488, 25.448, 26.418, 27.265, 27.719, 28.232, 28.716, 29.187, 29.662, 30.148, 30.587, 31.09, 31.568, 32.075, 32.547, 33.028, 33.48, 33.981, 34.462, 34.934, 35.415, 35.911, 36.37, 36.858, 37.322, 37.811, 38.28, 42.736, 43.118, 43.587, 44.07, 44.556, 45.004, 45.527, 45.97, 46.419, 46.92, 47.429, 47.908, 48.378, 48.881, 49.36, 49.806, 50.285, 50.77, 51.29, 51.749, 52.205, 52.707, 53.179, 53.644, 54.13, 54.564, 55.074, 55.556, 56.045, 56.543, 57.021, 57.499, 57.975, 58.38, 58.905, 59.39, 59.868, 60.353, 60.852, 61.303, 61.821, 62.284, 62.777, 63.226, 63.706, 64.223, 64.681, 65.164, 65.617, 66.101, 66.579, 67.066, 67.571, 68.047, 68.513, 69, 69.485, 69.938, 70.41, 70.933, 71.427, 71.932, 72.361, 72.862, 73.327, 73.805, 74.278, 74.74, 75.241, 75.721, 76.24, 76.733, 77.19, 77.676, 78.153, 78.619, 79.089, 79.574, 80.053, 80.572, 81.037, 81.505, 81.977, 82.454, 82.911, 83.408, 83.913, 84.385, 84.862, 85.353, 85.826, 86.285, 86.804, 87.259, 87.733, 88.204, 88.686, 89.156, 89.663, 90.121, 90.624, 91.08, 91.604, 92.082, 92.559, 92.996, 93.508, 93.983, 94.466, 94.958, 95.472, 95.917, 96.355, 96.807, 97.332, 97.816, 98.335, 98.764, 99.236, 99.749, 100.21, 100.689, 101.184, 101.632, 102.106, 102.619, 103.122, 103.571, 104.054, 104.5, 104.996, 105.506, 105.979, 106.482, 106.937, 107.404, 107.873, 108.376, 108.84, 109.334, 109.822, 110.316, 110.779, 111.273, 111.752, 112.261, 112.704, 113.178, 113.681, 114.147, 114.628, 115.103, 115.588, 116.03, 116.545, 117.005, 117.497, 117.982, 118.446, 118.929] ) self.sprite.layer = 1 @warp async def my_Create(self, util, ): self.list_points.delete_all() self.list_polys.delete_all() await self.my_AddCube(util, 0.5, 0.5) await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 240, 240, 240, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 240, 240, 240, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd) await self.my_AddCube(util, 1.4, 0.25) await self.my_AddPolycolorpoffset(util, 0, 2, 3, 1, 196, 32, 32, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 4, 5, 7, 6, 196, 32, 32, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 2, 6, 7, 3, 64, 230, 64, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 0, 4, 5, 1, 64, 64, 230, 128, self.var_pOrd) await self.my_AddCube(util, 1, 0.5) await self.my_AddPolycolorpoffset(util, 0, 2, -6, -8, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 2, 6, -2, -6, 64, 230, 64, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 6, 4, -4, -2, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 4, 0, -8, -4, 64, 64, 230, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 1, 3, -5, -7, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 3, 7, -1, -5, 64, 230, 64, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 7, 5, -3, -1, 196, 32, 32, 255, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 5, 1, -7, -3, 64, 64, 230, 255, self.var_pOrd) await self.my_AddCube(util, 0.8, 1.5) await self.my_AddPolycolorpoffset(util, 0, 2, 6, 4, 255, 255, 0, 128, self.var_pOrd) await self.my_AddPolycolorpoffset(util, 7, 5, 1, 3, 0, 255, 255, 128, self.var_pOrd) async def my_pause(self, util, ): if util.inputs["p"]: while not not util.inputs["p"]: await self.yield_() while not util.inputs["p"]: await self.yield_() while not not util.inputs["p"]: await self.yield_() async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res): if lt(arg_c3, arg_c1): await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res) else: if lt(arg_c4, arg_c1): await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res) else: if lt(arg_c3, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res) else: if lt(arg_c4, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res) else: self.pen.set_size(1) self.xpos = tonum(arg_c1) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c2) self.pen.up() self.pen.set_size(1) self.xpos = tonum(arg_c3) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c4) self.pen.up() @warp async def my_AddCube(self, util, arg_size, arg_size2): self.var_xmin = (0 - arg_size) self.var_ymin = (0 - arg_size2) self.var_pOrd = len(self.list_points) await self.my_AddPoint(util, self.var_ymin, self.var_xmin, self.var_xmin) await self.my_AddPoint(util, arg_size2, self.var_xmin, self.var_xmin) await self.my_AddPoint(util, self.var_ymin, arg_size, self.var_xmin) await self.my_AddPoint(util, arg_size2, arg_size, self.var_xmin) await self.my_AddPoint(util, self.var_ymin, self.var_xmin, arg_size) await self.my_AddPoint(util, arg_size2, self.var_xmin, arg_size) await self.my_AddPoint(util, self.var_ymin, arg_size, arg_size) await self.my_AddPoint(util, arg_size2, arg_size, arg_size) @warp async def my_AddPoint(self, util, arg_x, arg_y, arg_z): self.list_points.append(arg_x) self.list_points.append(arg_y) self.list_points.append(arg_z) self.list_points.append(0) self.list_points.append(0) self.list_points.append(0) @warp async def my_CreateStars(self, util, ): self.var_starIdx = len(self.list_points) self.var_xmax = 300 self.var_xmin = (0 - self.var_xmax) for _ in range(self.var_Stars): await self.my_AddPoint(util, pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax), pick_rand(self.var_xmin, self.var_xmax)) async def my_fill4crossingsres(self, util, arg_c1, arg_c2, arg_c3, arg_c4, arg_res): if lt(arg_c3, arg_c1): await self.my_fill4crossingsres(util, arg_c3, arg_c2, arg_c1, arg_c4, arg_res) else: if lt(arg_c4, arg_c1): await self.my_fill4crossingsres(util, arg_c4, arg_c2, arg_c3, arg_c1, arg_res) else: if lt(arg_c3, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c3, arg_c2, arg_c4, arg_res) else: if lt(arg_c4, arg_c2): await self.my_fill4crossingsres(util, arg_c1, arg_c4, arg_c3, arg_c2, arg_res) else: self.pen.set_size(1) self.xpos = tonum(arg_c1) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c2) self.pen.up() self.pen.set_size(1) self.xpos = tonum(arg_c3) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = tonum(arg_c4) self.pen.up() @warp async def my_rasterquadfillresolution(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res): if lt(arg_y2, arg_y1): await self.my_rasterquadfillresolution(util, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_res) else: if lt(arg_y3, arg_y1): await self.my_rasterquadfillresolution(util, arg_x3, arg_y3, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_res) else: if lt(arg_y4, arg_y1): await self.my_rasterquadfillresolution(util, arg_x4, arg_y4, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_res) else: if lt(arg_y4, arg_y2): await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x4, arg_y4, arg_x3, arg_y3, arg_x2, arg_y2, arg_res, div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2)))) else: await self.my_rasterquadfillinnerresolutionextras(util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, div((tonum(arg_x1) - tonum(arg_x2)), (tonum(arg_y1) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x2)), (tonum(arg_y3) - tonum(arg_y2))), div((tonum(arg_x3) - tonum(arg_x4)), (tonum(arg_y3) - tonum(arg_y4))), div((tonum(arg_x1) - tonum(arg_x4)), (tonum(arg_y1) - tonum(arg_y4)))) @warp async def my_AddPolycolorpoffset(self, util, arg_p1, arg_p2, arg_p3, arg_p4, arg_r, arg_g, arg_b, arg_a, arg_off): self.list_polys.append(((arg_p1 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_p2 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_p3 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_p4 * self.var_p) + tonum(arg_off))) self.list_polys.append(((arg_r * 65536) + ((arg_g * 256) + arg_b))) self.list_polys.append(arg_a) async def my_rasterquadfillinnerresolutionextras(self, util, arg_x1, arg_y1, arg_x2, arg_y2, arg_x3, arg_y3, arg_x4, arg_y4, arg_res, arg_x21y21, arg_x32y32, arg_x43y43, arg_x14y14): self.ypos = (math.ceil((tonum(arg_y1) + div(arg_res, 2))) + 0.5) if lt(arg_y2, arg_y3): for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() if lt(arg_y3, arg_y4): for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))): await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res) self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() else: for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))): await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res) self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x32y32)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() else: for _ in range(math.ceil(div((tonum(arg_y3) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y2) - self.ypos), arg_res))): await self.my_filllinescrossingsres(util, arg_y1, arg_y2, arg_y3, arg_y4, (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x21y21)), (tonum(arg_x2) + ((self.ypos - tonum(arg_y2)) * arg_x32y32)), (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)), (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)), arg_res) self.ypos += tonum(arg_res) await self.yield_() for _ in range(math.ceil(div((tonum(arg_y4) - self.ypos), arg_res))): self.pen.set_size(1) self.xpos = (tonum(arg_x3) + ((self.ypos - tonum(arg_y3)) * arg_x43y43)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = (tonum(arg_x1) + ((self.ypos - tonum(arg_y1)) * arg_x14y14)) self.pen.up() self.ypos += tonum(arg_res) await self.yield_() async def my_filllinescrossingsres(self, util, arg_y1, arg_y2, arg_y3, arg_y4, arg_c12, arg_c23, arg_c34, arg_c41, arg_res): if gt(self.ypos, arg_y2): self.pen.set_size(1) self.xpos = arg_c41 self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = arg_c23 self.pen.up() else: if lt(self.ypos, arg_y3): self.pen.set_size(1) self.xpos = arg_c41 self.pen.down() self.pen.set_size(tonum(arg_res)) self.xpos = arg_c12 self.pen.up() else: if lt(arg_c23, arg_c12): await self.my_fill4crossingsres(util, arg_c23, arg_c12, arg_c34, arg_c41, arg_res) else: await self.my_fill4crossingsres(util, arg_c12, arg_c23, arg_c34, arg_c41, arg_res) @on_pressed('t') async def key_t_pressed(self, util): pass @on_pressed('y') async def key_y_pressed(self, util): pass @warp async def my_ProcessPoints(self, util, arg_rot1, arg_rot2, arg_from, arg_to, arg_mul): await self.my_ProcessPointssincos(util, math.sin(math.radians(arg_rot1)), math.cos(math.radians(arg_rot1)), math.sin(math.radians(arg_rot2)), math.cos(math.radians(arg_rot2)), arg_from, arg_to, arg_mul) @warp async def my_orderpolys(self, util, ): self.var_lastquad = 0 self.list_polyOrd.delete_all() for _ in range(toint(div(len(self.list_polys), 6))): self.var_incx = self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 1))]) + 2))] self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 2))]) + 2))]) self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 3))]) + 2))]) self.var_incx = tonum(self.var_incx) + tonum(self.list_points[toint((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 4))]) + 2))]) self.var_incy = 1 while not (gt(self.var_incy, len(self.list_polyOrd)) or gt(self.list_polyOrd[toint(self.var_incy)], self.var_incx)): self.var_incy = tonum(self.var_incy) + 2 self.list_polyOrd.insert(toint(self.var_incy), self.var_incx) self.list_polyOrd.insert(toint((tonum(self.var_incy) + 1)), self.var_lastquad) self.var_lastquad = tonum(self.var_lastquad) + self.var_ply @warp async def my_renderatresolution(self, util, arg_res): self.pen.clear_all() self.var_pOrd = self.var_starIdx self.pen.exact_color("#ffffff") for _ in range(toint(div((len(self.list_points) - self.var_starIdx), self.var_p))): self.var_ymin = (tonum(self.list_points[toint((tonum(self.var_pOrd) + 6))]) * 3) if (gt(self.var_ymin, 0.01) and lt(self.var_ymin, 45)): self.var_incx = self.list_points[toint((tonum(self.var_pOrd) + 4))] self.var_incy = self.list_points[toint((tonum(self.var_pOrd) + 5))] if (lt(abs(tonum(self.var_incx)), 280) and lt(abs(tonum(self.var_incy)), 240)): self.gotoxy(tonum(self.var_incx), tonum(self.var_incy)) if gt(self.var_ymin, 1): self.pen.exact_color(((70 * 16777216) + 14737663)) self.pen.set_size(((tonum(self.var_ymin) * 2) - 2)) self.pen.down() self.pen.up() self.pen.exact_color("#ffffff") self.pen.set_size(tonum(self.var_ymin)) self.pen.down() self.pen.up() self.var_pOrd = tonum(self.var_pOrd) + self.var_p self.var_pOrd = 2 for _ in range(toint(div(len(self.list_polyOrd), 2))): self.var_lastquad = self.list_polyOrd[toint(self.var_pOrd)] self.var_incx = self.list_polys[toint((tonum(self.var_lastquad) + 1))] self.var_incy = self.list_polys[toint((tonum(self.var_lastquad) + 2))] self.var_ymin = self.list_polys[toint((tonum(self.var_lastquad) + 3))] self.var_ymax = self.list_polys[toint((tonum(self.var_lastquad) + 4))] if lt(self.list_polys[toint((tonum(self.var_lastquad) + 6))], 255): self.pen.exact_color(((tonum(self.list_polys[toint((tonum(self.var_lastquad) + 6))]) * 16777216) + tonum(self.list_polys[toint((tonum(self.var_lastquad) + 5))]))) await self.my_fillquadresolution(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res) else: self.pen.exact_color(self.list_polys[toint((tonum(self.var_lastquad) + 5))]) await self.my_fillquadtrires(util, self.list_points[toint((tonum(self.var_incx) + 4))], self.list_points[toint((tonum(self.var_incx) + 5))], self.list_points[toint((tonum(self.var_incy) + 4))], self.list_points[toint((tonum(self.var_incy) + 5))], self.list_points[toint((tonum(self.var_ymin) + 4))], self.list_points[toint((tonum(self.var_ymin) + 5))], self.list_points[toint((tonum(self.var_ymax) + 4))], self.list_points[toint((tonum(self.var_ymax) + 5))], arg_res) self.var_pOrd = tonum(self.var_pOrd) + 2 @on_pressed('space') async def key_space_pressed(self, util): if eq(self.var_speedTarget, 0.6): self.var_speedTarget = 0.05 else: self.var_speedTarget = 0.6 @warp async def my_ProcessPointssincos(self, util, arg_s, arg_c, arg_s2, arg_c2, arg_from, arg_len, arg_mul): self.var_pos = (tonum(arg_from) * self.var_p) self.var_xcnt = util.sprites.stage.var_Zoom for _ in range(toint(arg_len)): self.var_incx = self.list_points[toint((self.var_pos + 1))] self.var_incy = self.list_points[toint((self.var_pos + 3))] self.var_pOrd = self.list_points[toint((self.var_pos + 2))] if (gt(arg_from, 31) and gt(util.timer(), 42.2)): self.var_incx = (((tonum(self.var_incx) + self.var_svx) % 600) - 300) self.var_incy = (((tonum(self.var_incy) + self.var_svy) % 600) - 300) self.var_pOrd = (((tonum(self.var_pOrd) + self.var_svz) % 600) - 300) self.var_xcnt = div(util.sprites.stage.var_Zoom, (self.var_distance - tonum(self.var_pOrd))) self.list_points[toint((self.var_pos + 4))] = ((tonum(self.var_incx) * tonum(arg_mul)) * self.var_xcnt) self.list_points[toint((self.var_pos + 5))] = ((tonum(self.var_incy) * tonum(arg_mul)) * self.var_xcnt) self.list_points[toint((self.var_pos + 6))] = self.var_xcnt self.var_xmin = ((arg_c * tonum(self.var_incx)) - (arg_s * tonum(self.var_pOrd))) self.var_xcnt = ((arg_c * tonum(self.var_pOrd)) + (arg_s * tonum(self.var_incx))) self.list_points[toint((self.var_pos + 1))] = ((arg_c2 * self.var_xmin) - (arg_s2 * tonum(self.var_incy))) self.list_points[toint((self.var_pos + 2))] = self.var_xcnt self.list_points[toint((self.var_pos + 3))] = ((arg_c2 * tonum(self.var_incy)) + (arg_s2 * self.var_xmin)) self.var_pos += self.var_p @warp async def my_filltriangleresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_res): await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4)) self.pen.set_size(tonum(arg_res)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.down() self.gotoxy(tonum(arg_Bx), tonum(arg_By)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.up() async def my_filltriinner1(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_lena, arg_lenb, arg_lenc, arg_res14): self.var_peri = ((arg_lena + arg_lenb) + arg_lenc) self.var_ind = (sqrt(div(((((arg_lenb + arg_lenc) - arg_lena) * ((arg_lenc + arg_lena) - arg_lenb)) * ((arg_lena + arg_lenb) - arg_lenc)), self.var_peri)) + div(arg_res14, 1.5)) if gt(self.var_ind, arg_res14): self.var_incx = div((((arg_lena * tonum(arg_Ax)) + (arg_lenb * tonum(arg_Bx))) + (arg_lenc * tonum(arg_Cx))), self.var_peri) self.var_incy = div((((arg_lena * tonum(arg_Ay)) + (arg_lenb * tonum(arg_By))) + (arg_lenc * tonum(arg_Cy))), self.var_peri) if (lt(arg_lena, arg_lenb) and lt(arg_lena, arg_lenc)): await self.my_filltriinner2(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Ax)) * (tonum(self.var_incx) - tonum(arg_Ax))) + ((tonum(self.var_incy) - tonum(arg_Ay)) * (tonum(self.var_incy) - tonum(arg_Ay))))) * 4))), arg_res14) else: if (gt(arg_lenb, arg_lena) or gt(arg_lenb, arg_lenc)): await self.my_filltriinner2(util, arg_Cx, arg_Cy, arg_Bx, arg_By, arg_Ax, arg_Ay, (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Cx)) * (tonum(self.var_incx) - tonum(arg_Cx))) + ((tonum(self.var_incy) - tonum(arg_Cy)) * (tonum(self.var_incy) - tonum(arg_Cy))))) * 4))), arg_res14) else: await self.my_filltriinner2(util, arg_Bx, arg_By, arg_Ax, arg_Ay, arg_Cx, arg_Cy, (tonum(self.var_incx) - tonum(arg_Bx)), (tonum(self.var_incy) - tonum(arg_By)), (tonum(self.var_incx) - tonum(arg_Ax)), (tonum(self.var_incy) - tonum(arg_Ay)), (tonum(self.var_incx) - tonum(arg_Cx)), (tonum(self.var_incy) - tonum(arg_Cy)), self.var_ind, (-0.5 - div(self.var_ind, (sqrt((((tonum(self.var_incx) - tonum(arg_Bx)) * (tonum(self.var_incx) - tonum(arg_Bx))) + ((tonum(self.var_incy) - tonum(arg_By)) * (tonum(self.var_incy) - tonum(arg_By))))) * 4))), arg_res14) async def my_filltriinner2(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Aox, arg_Aoy, arg_Box, arg_Boy, arg_Cox, arg_Coy, arg_ind, arg_rate, arg_res14): self.gotoxy(toint(self.var_incx), toint(self.var_incy)) self.pen.set_size(arg_ind) self.pen.down() self.pen.up() self.var_td = (arg_rate + 1) while not lt((arg_ind * self.var_td), arg_res14): self.pen.set_size((arg_ind * self.var_td)) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.down() self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By))) self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy))) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.up() self.var_td += (self.var_td * arg_rate) await self.yield_() self.pen.set_size((arg_ind * self.var_td)) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.down() self.gotoxy(((arg_Box * self.var_td) + tonum(arg_Bx)), ((arg_Boy * self.var_td) + tonum(arg_By))) self.gotoxy(((arg_Cox * self.var_td) + tonum(arg_Cx)), ((arg_Coy * self.var_td) + tonum(arg_Cy))) self.gotoxy(((arg_Aox * self.var_td) + tonum(arg_Ax)), ((arg_Aoy * self.var_td) + tonum(arg_Ay))) self.pen.up() @warp async def my_fillquadresolution(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res): await self.my_rasterquadfillresolution(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res) self.pen.set_size(1) self.pen.exact_color("#000000") self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.down() self.pen.set_size(tonum(arg_res)) self.gotoxy(tonum(arg_Bx), tonum(arg_By)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.gotoxy(tonum(arg_Dx), tonum(arg_Dy)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.up() @warp async def my_fillquadtrires(self, util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_res): await self.my_filltriinner1(util, arg_Ax, arg_Ay, arg_Bx, arg_By, arg_Cx, arg_Cy, sqrt((((tonum(arg_Bx) - tonum(arg_Cx)) * (tonum(arg_Bx) - tonum(arg_Cx))) + ((tonum(arg_By) - tonum(arg_Cy)) * (tonum(arg_By) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Cx)) * (tonum(arg_Ax) - tonum(arg_Cx))) + ((tonum(arg_Ay) - tonum(arg_Cy)) * (tonum(arg_Ay) - tonum(arg_Cy))))), sqrt((((tonum(arg_Ax) - tonum(arg_Bx)) * (tonum(arg_Ax) - tonum(arg_Bx))) + ((tonum(arg_Ay) - tonum(arg_By)) * (tonum(arg_Ay) - tonum(arg_By))))), (tonum(arg_res) * 1.4)) await self.my_filltriinner1(util, arg_Cx, arg_Cy, arg_Dx, arg_Dy, arg_Ax, arg_Ay, sqrt((((tonum(arg_Dx) - tonum(arg_Ax)) * (tonum(arg_Dx) - tonum(arg_Ax))) + ((tonum(arg_Dy) - tonum(arg_Ay)) * (tonum(arg_Dy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Ax)) * (tonum(arg_Cx) - tonum(arg_Ax))) + ((tonum(arg_Cy) - tonum(arg_Ay)) * (tonum(arg_Cy) - tonum(arg_Ay))))), sqrt((((tonum(arg_Cx) - tonum(arg_Dx)) * (tonum(arg_Cx) - tonum(arg_Dx))) + ((tonum(arg_Cy) - tonum(arg_Dy)) * (tonum(arg_Cy) - tonum(arg_Dy))))), (tonum(arg_res) * 1.4)) self.pen.set_size(tonum(arg_res)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.pen.down() self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.exact_color("#000000") self.gotoxy(tonum(arg_Bx), tonum(arg_By)) self.gotoxy(tonum(arg_Cx), tonum(arg_Cy)) self.gotoxy(tonum(arg_Dx), tonum(arg_Dy)) self.gotoxy(tonum(arg_Ax), tonum(arg_Ay)) self.pen.up() @on_broadcast('start music') async def broadcast_startmusic(self, util): await self.sounds.play("Julius_-_3d_Demo_Tune.mp3") pass # hide variable pass # hide variable while not gt(util.timer(), 202): await self.yield_() pass # hide variable pass # hide variable util.stop_all() return None @on_broadcast('green flag') async def broadcast_greenflag(self, util): self.var_lastrendertime = 0 pass # hide variable pass # hide variable await self.sounds.play("silence") util.sprites.stage.var_Zoom = 100 util.sprites.stage.var_Resolution = 3 self.var_Stars = 300 self.var_GUI = 0 self.var_ZoomSx = 0 self.var_beat = 1 self.var_beatSize = 1 self.var_beatTimer = self.list_beat[1] self.shown = False await self.my_Create(util, ) await self.my_CreateStars(util, ) self.var_distance = 50 self.var_speed = 25 self.var_speedTarget = 0.3 self.var_acc = 0 util.send_broadcast("start music") util.timer.reset() while True: if lt(util.timer(), 4): util.sprites.stage.var_Zoom = 100 else: if lt(util.timer(), 10): self.var_ZoomSx += ((300 - util.sprites.stage.var_Zoom) * 0.1) self.var_ZoomSx = (self.var_ZoomSx * 0.8) util.sprites.stage.var_Zoom += toint(self.var_ZoomSx) else: if lt(util.timer(), 55): if gt(util.timer(), 43): self.var_ZoomSx += ((120 - util.sprites.stage.var_Zoom) * 0.015) self.var_ZoomSx = (self.var_ZoomSx * 0.5) util.sprites.stage.var_Zoom += toint(self.var_ZoomSx) else: if lt(util.timer(), 73): if gt(util.timer(), 65): self.var_ZoomSx += ((280 - util.sprites.stage.var_Zoom) * 0.1) self.var_ZoomSx = (self.var_ZoomSx * 0.8) util.sprites.stage.var_Zoom += toint(self.var_ZoomSx) else: util.sprites.stage.var_Zoom = (200 + (80 * math.cos(math.radians(((util.timer() - 73) * 20))))) if eq(self.var_GUI, lt(util.inputs.mouse_y, 100)): self.var_GUI = (1 - self.var_GUI) if eq(self.var_GUI, 1): print(util.sprites.stage.var_Resolution) print(util.sprites.stage.var_Zoom) else: pass # hide variable pass # hide variable self.var_pos += 1 self.var_distance = div(((self.var_distance * 6) + 4.5), 7) self.var_speed = div(((self.var_speed * 20) + self.var_speedTarget), 21) await self.my_pause(util, ) self.var_a1 = (self.var_speed * -1.3) self.var_a2 = ((self.var_speed * -2.5) * math.sin(math.radians((util.timer() * 20)))) if lt(util.timer(), 12): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 0, 8, 1) else: if lt(util.timer(), 27): await self.my_ProcessPoints(util, (12 * math.cos(math.radians((util.timer() * 9)))), 20, 0, 8, 1) else: await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), 6, 0, 8, 1) await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 8, 16, 1) if gt(util.timer(), self.var_beatTimer): self.var_beatSize = 1.5 self.var_beat += 1 if gt(self.var_beat, len(self.list_beat)): self.var_beatTimer = 99999 else: self.var_beatTimer = (tonum(self.list_beat[self.var_beat]) - 0.2) if eq(self.var_beatTimer, 99999): if lt(self.var_beatSize, 2): self.var_beatSize += 0.05 await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize) else: await self.my_ProcessPoints(util, (8 * math.cos(math.radians((util.timer() * 9)))), (5 * math.sin(math.radians(((util.timer() - 45) * 5)))), 24, 8, 2) else: self.var_beatSize = div(((self.var_beatSize * 5) + 1), 6) await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 24, 8, self.var_beatSize) if gt(util.timer(), 42.2): if lt(self.var_acc, 13): self.var_acc += 0 self.var_svx = (((tonum(self.list_points[toint(((10 * self.var_p) + 1))]) + tonum(self.list_points[toint(((12 * self.var_p) + 1))])) * self.var_acc) + 300) self.var_svy = (((tonum(self.list_points[toint(((10 * self.var_p) + 3))]) + tonum(self.list_points[toint(((12 * self.var_p) + 3))])) * self.var_acc) + 300) self.var_svz = (((tonum(self.list_points[toint(((10 * self.var_p) + 2))]) + tonum(self.list_points[toint(((12 * self.var_p) + 2))])) * self.var_acc) + 300) if (lt(util.timer(), 12) or gt(util.timer(), 28)): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 1) else: if lt(util.timer(), 16): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((16.01 - util.timer()), 4)) else: if lt(util.timer(), 27): await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), 0.01) else: await self.my_ProcessPoints(util, self.var_a1, self.var_a2, 32, div(self.var_Stars, 2), div((util.timer() - 27.01), 1)) if lt(self.var_speedTarget, 0.6): self.var_speedTarget = 0.6 await self.my_ProcessPoints(util, self.var_a1, self.var_a2, (32 + div(self.var_Stars, 2)), div(self.var_Stars, 2), 1) await self.my_orderpolys(util, ) self.var_incx = toint((util.sprites.stage.var_Resolution * div(util.sprites.stage.var_Zoom, 300))) if lt(self.var_incx, 1): self.var_incx = 1 await self.my_renderatresolution(util, self.var_incx) await util.sprites["fade to black"].broadcast_tick(util) await self.yield_() @sprite('fade to black') class Spritefadetoblack(Target): """Sprite fade to black""" def __init__(self, parent=None): super().__init__(parent) if parent is not None: return self._xpos = 0 self._ypos = 0 self._direction = 90 self.shown = False self.pen = Pen(self) self.costume = Costumes( 2, 100, "don't rotate", [ { 'name': "black", 'path': "f5e250886e3bafbbd9bc2398a5e321c5.png", 'center': (480, 360), 'scale': 2 }, { 'name': "white", 'path': "b61b1077b0ea1931abee9dbbfa7903ff.png", 'center': (480, 360), 'scale': 2 }, { 'name': "credits", 'path': "78dfd0b4f1aa8bde356a6b71a1d6de30-svg-2x.png", 'center': (480, 360), 'scale': 2 } ]) self.sounds = Sounds( 100, [ { 'name': "pop", 'path': "83a9787d4cb6f3b7632b4ddfebf74367.wav" } ]) self.var_tick = 100 self.var_mode = 2 self.sprite.layer = 2 @on_broadcast('tick') async def broadcast_tick(self, util): if eq(self.var_mode, 0): if lt(self.var_tick, 100): self.var_tick += 3 if lt(self.var_tick, 100): self.costume.set_effect('ghost', self.var_tick) else: self.shown = False self.costume.switch("white") self.var_mode = 1 self.var_tick = 0 else: if eq(self.var_mode, 1): if gt(util.timer(), 27): self.shown = True self.var_tick += 15 if lt(self.var_tick, 100): self.costume.set_effect('ghost', self.var_tick) else: self.shown = False self.costume.switch("credits") self.var_mode = 2 self.var_tick = 100 else: if gt(util.timer(), 194): self.shown = True self.var_tick += -1 if gt(self.var_tick, 0): self.costume.set_effect('ghost', self.var_tick) else: self.var_mode = 3 @on_green_flag async def green_flag(self, util): self.gotoxy(0, 0) self.costume.switch("black") self.costume.clear_effects() self.shown = True self.var_tick = 0 self.var_mode = 0 util.send_broadcast("green flag") if __name__ == '__main__': engine.start_program()
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- Gamer_Logan819
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
Wow!!!!
Now do python to scratch, lol
The forum boogeymen are out to get you
- -OofyRoblox-
- Scratcher
500+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
hello I am Oofy and I play Roblox
Madness Combat is a good show and Super Smash Bros is a good game
- RED-001-alt
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
im 14 and all i know is scratch and i stalk the forums 24/7 thats all i spend my life on I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
Please don't remove the automatic browser/OS info after making a new Bugs and Glitches forum post, that information really helps a lot!
(unless you are reporting from a different device, then you should specify what device, OS, and browser you have)
Join the Ohio Army!!
Scratch Etiquette
Sratch 2.0 player alternative: https://scratch.mit.edu/discuss/topic/633464/?page=1#post-6649811
Scratch 15th Birthday Celebration: https://youtube.com/watch?v=7Gd_b1mbrxM
Encore event: https://www.youtube.com/watch?v=gI4Gcf-T28g
Please help with this: https://scratch.mit.edu/discuss/topic/606203/
I am actually @RED-001 but I forgot my password, so this account was created
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
There's a replit someone made in the issues of the GitHub which lets you use it online. I'm pretty sure it is not the latest version though, which run a little bit faster. It also doesn't have SVG support so some of the projects won't work right. I know this might sound stupid, but I'm 12 (I've already learned java and python; yep I'm a nerd) and I'm on a school Chromebook, is there a way I could use this because python doesn't install on here
I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- kccuber
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
I think so, just no replit collab links. I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
- imfh
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
I see a lot of people on Scratch sharing and using replit as of recently, but I'm still not sure if it is allowed since about a year ago it seemed like the answer was a solid no. I'll just leave it alone for now.I think so, just no replit collab links. I should probably make my own replit for it at some point. Are we allowed to link to replits on the forums?
Scratch to Pygame converter: https://scratch.mit.edu/discuss/topic/600562/
- mumu245
- Scratcher
1000+ posts
[v1.1-beta] sb3topy: Scratch to Python with Pygame
No. My project also runs everything live. It is not a transpiler. I will try it soon! This is cool!
Also there is another project https://github.com/Secret-chest/scratch2python/ I am not sure if it has some of the functions in your to-do list though
- Discussion Forums
- » Advanced Topics
- » [v1.1-beta] sb3topy: Scratch to Python with Pygame