In this post, johnm explains that Scratch runs at about 30 iterations/second (30 frames/second for you Actionscript buffs) to let the user see how the program works. This means that programs like Cathair's Full Raytracer are painfully slow simply because Scratch is a teaching language by design. What I propose isn't really a radical change to the way Scratch works, just one loop block that would let more advanced users create programs like 3D rendering engines and list sorting methods if lists are included in 1.3.
Blocks placed inside a "do at speed" loop would simply execute without the intentional pauses mentioned by johnm in the afformentioned post. This would avoid the "build-a-block" concept entirely, and could even benefit new Scratch users by giving them experience with the power of traditional programming languages. It's too late to add this to 1.3, and probably even 1.4, but I believe it would benefit Scratch greatly. Any suggestions?
Last edited by fullmoon (2008-08-29 15:21:11)
Offline
Hehe, fullmoon, I have actually created a "warp" block, which is a c-shaped block that runs its nested blocks at full throttle, like a single block. It's a little test-case to find out how custom-blocks built in Scratch could be executed. I'm just now in the process of finalizing some demos for it (e.g. a custom built if-on-edge-bounce block), then I might share the code...
Offline
Jens wrote:
Hehe, fullmoon, I have actually created a "warp" block, which is a c-shaped block that runs its nested blocks at full throttle, like a single block. It's a little test-case to find out how custom-blocks built in Scratch could be executed. I'm just now in the process of finalizing some demos for it (e.g. a custom built if-on-edge-bounce block), then I might share the code...
Please, share it! Please!
Offline
Jens wrote:
Hehe, fullmoon, I have actually created a "warp" block, which is a c-shaped block that runs its nested blocks at full throttle, like a single block. It's a little test-case to find out how custom-blocks built in Scratch could be executed. I'm just now in the process of finalizing some demos for it (e.g. a custom built if-on-edge-bounce block), then I might share the code...
Please, oh please post the code! PLEASE PLEASE PLEASE!
Offline
Is it this type of block?
[blocks]http://scratch.mit.edu/forums/viewtopic.php?pid=70155#req_messagehttp://scratch.mit.edu/forums/viewtopic.php?pid=70155#req_message[/blocks]
Offline
Jens wrote:
Hehe, fullmoon, I have actually created a "warp" block, which is a c-shaped block that runs its nested blocks at full throttle, like a single block. It's a little test-case to find out how custom-blocks built in Scratch could be executed. I'm just now in the process of finalizing some demos for it (e.g. a custom built if-on-edge-bounce block), then I might share the code...
AAAAHH!!!! OH, PLEASE! PLE-HE-HEASE!
Offline
This may be one of the best block suggestions I have ever seen!
@Jens - That would be great! If it is in any usable condition then please share it.
Offline
Spenfen wrote:
Sorry. i meant this:
[blocks]<end><forever>[/blocks]
i'm afraid it is not. it would be nice, but confusing to work with.
Offline
Hi Spenfen,
the "warp" feature has been incorporated in my "build your own block" (BYOB) prototype, only it's called "atomic" there instead of "warp". When you build your own block and set the "atomic" control to "on" your custom block is executed at the speed of a single block, including all internal loops. There are, however, two exceptions to this rule in the prototype: (1) a plain "forever" loop can never be atomic (but a "forever if" can), (2) timed blocks, such as waits, can also not be "warped" (because that wouldn't really make sense).
Please feel free to try that prototype (and its "atomic" feature)! I'd be interested to know if this is what you're looking for.
Offline
This problem is simple to fix the Scratch Team already has a fix to this! I will tell it to you lucky person(people) who are reading this right now, first make this face , second open Scratch, third move your mouse over the "extras" button but DO NOT CLICK YET!!!, fourth hold the "shift" button WHILE you press "extras", fifth click "set single stepping", finally/sixth set the script speed to what you need! (Teehee! that rhymed!)
Offline
henley wrote:
This problem is simple to fix the Scratch Team already has a fix to this! I will tell it to you lucky person(people) who are reading this right now, first make this face , second open Scratch, third move your mouse over the "extras" button but DO NOT CLICK YET!!!, fourth hold the "shift" button WHILE you press "extras", fifth click "set single stepping", finally/sixth set the script speed to what you need! (Teehee! that rhymed!)
its only sped up, not at instant speed like its needed
Offline
yambanshee wrote:
henley wrote:
This problem is simple to fix the Scratch Team already has a fix to this! I will tell it to you lucky person(people) who are reading this right now, first make this face , second open Scratch, third move your mouse over the "extras" button but DO NOT CLICK YET!!!, fourth hold the "shift" button WHILE you press "extras", fifth click "set single stepping", finally/sixth set the script speed to what you need! (Teehee! that rhymed!)
its only sped up, not at instant speed like its needed
Thats offline only.Its not permanant.
Offline
yambanshee wrote:
henley wrote:
This problem is simple to fix the Scratch Team already has a fix to this! I will tell it to you lucky person(people) who are reading this right now, first make this face , second open Scratch, third move your mouse over the "extras" button but DO NOT CLICK YET!!!, fourth hold the "shift" button WHILE you press "extras", fifth click "set single stepping", finally/sixth set the script speed to what you need! (Teehee! that rhymed!)
its only sped up, not at instant speed like its needed
if it was instant, blocks like <move( - )steps> will make it move at a speed where the sprite will be invisible because of its amazing speed.
Offline
bhz wrote:
yambanshee wrote:
henley wrote:
This problem is simple to fix the Scratch Team already has a fix to this! I will tell it to you lucky person(people) who are reading this right now, first make this face , second open Scratch, third move your mouse over the "extras" button but DO NOT CLICK YET!!!, fourth hold the "shift" button WHILE you press "extras", fifth click "set single stepping", finally/sixth set the script speed to what you need! (Teehee! that rhymed!)
its only sped up, not at instant speed like its needed
if it was instant, blocks like <move( - )steps> will make it move at a speed where the sprite will be invisible because of its amazing speed.
exactly, and as Keroro645 said, its only offline.
Offline
henley wrote:
wow you just did 3 quotes...................................................
ive seen way more...
henley wrote:
yambanshee wrote:
yambanshee wrote:
Back to the subject, I still feel that mabye they want to add a Blocks Per Second feuter. This will make it possible to dramaticly increase preformance, but avoid confusion.
Last edited by yambanshee (2008-12-14 09:20:54)
Offline
yambanshee wrote:
henley wrote:
wow you just did 3 quotes...................................................
ive seen way more...
henley wrote:
yambanshee wrote:
Back to the subject, I still feel that mabye they want to add a Blocks Per Second feuter. This will make it possible to dramaticly increase preformance, but avoid confusion.
nice quotes .........................
Offline