PlayWithFire wrote:
is there a way to import a sprite from byob into a scratch game? because i converted a project to byob with a sprite that has 289 costumes and i now realized i don't have it saved as a scratch sprite.
i then tried making the game using byob but it lagged so much that i couldn't do it.
please help!
PLEASE HELP!!!!!!!!!!!!!!!!!!!!
otherwise i won't be making a sequel to scratch bash
btw why is byob so laggy, it lags like 100 times more than scratch.
Offline
The ULTIMATE Scratch would be this.
[blocks]
((<{ Scratch }> <+> (( <{ BYOB3 }> <+> <{ Panther }> )) ))
[/blocks]
Because...
-Scratch has a great website and a great community
-BYOB3 has OOP and lots of cool custom block features
-Panther has the blocks that can't be created custom made, and features Scratchers have been begging for for AGES
If the Scratch Team were to combine these... All my desires for Scratch would be fufilled! (Honestly, there wouldn't be much left to add).
In short,
LETS ADD PANTHER TO THE PICTURE!
Last edited by shadow_7283 (2010-05-29 20:13:09)
Offline
shadow_7283 wrote:
The ULTIMATE Scratch would be this.
[blocks]
((<{ Scratch }> <+> (( <{ BYOB3 }> <+> <{ Panther }> )) ))
[/blocks]
Because...
-Scratch has a great website and a great community
-BYOB3 has OOP and lots of cool custom block features
-Panther has the blocks that can't be created custom made, and features Scratchers have been begging for for AGES
If the Scratch Team were to combine these... All my desires for Scratch would be fufilled! (Honestly, there wouldn't be much left to add).
In short,
LETS ADD PANTHER TO THE PICTURE!
I personally disagree. One of the goals of Scratch is to make it as simple as possible to make games, and make it easy for new users. This means having a low floor. But also, a goal is to make it have lots of possibilities. Panther may do that by adding many blocks, but doing that, also raises the floor. Whereas BYOB only adds a few more blocks, while tons more possibilities, so BYOB fills the goal of Scratch a lot better.
Offline
PlayWithFire wrote:
is there a way to import a sprite from byob into a scratch game? because i converted a project to byob with a sprite that has 289 costumes and i now realized i don't have it saved as a scratch sprite.
i then tried making the game using byob but it lagged so much that i couldn't do it.
I don't think so. But if you're using the latest BYOB, it saved your project as <whatever>.ypr, leaving your original <whatever>.sb unchanged.
289 costumes! That's intense.
Offline
Lucario621 wrote:
But also, a goal is to make it have lots of possibilities. Panther may do that by adding many blocks, but doing that, also raises the floor. Whereas BYOB only adds a few more blocks, while tons more possibilities, so BYOB fills the goal of Scratch a lot better.
I've been making suggestions over at the Panther forum for ways in which they could retain all the Panther capabilities with fewer blocks. Mainly I want to overload the [ <var> OF <sprite> ] block and the [SET <var> TO <value> ] block so that they can handle a lot of the zero-input reporter and special-purpose setter needs. nXIII has been trying out some of this, but I don't know if/when they'll get into an official Panther release.
But in principle, at least, all of us are agreed on more capabilities without many more blocks as the ideal. The new features in Panther are great! The only problematic one is the ability to read and write arbitrary files, which opens the door to malware in Panther projects. I think I know how to solve that one, too.
Anyway, the point is, although I really appreciate your support, I don't think this has to be an "X is better than Y" situation, but rather "how can we learn from each other?"
Big BYOB deal-killer: It's too slow. Big Panther deal-killer: It's too dangerous (at least if you envision it on the Scratch web site, with half a million users, at least one of whom will be both smart enough and immature enough to think it funny to write Scratch viruses). So, we both have some work to do before we start taking over the world. Oh, and I think we both need a debugger; the one Jens made for 013 is a good start, but not quite ready for prime time yet.
Offline
bharvey wrote:
PlayWithFire wrote:
is there a way to import a sprite from byob into a scratch game? because i converted a project to byob with a sprite that has 289 costumes and i now realized i don't have it saved as a scratch sprite.
i then tried making the game using byob but it lagged so much that i couldn't do it.I don't think so. But if you're using the latest BYOB, it saved your project as <whatever>.ypr, leaving your original <whatever>.sb unchanged.
289 costumes! That's intense.
that's too bad because i saved it using the old byob!
i guess i'll have to export each costume one at a time...
Offline
If the pictures are in one place in your computer files, it is really easy to import them. Just open up the Scratch project you want to put them in and open the location of the picture files in your regular (not Scratch) file browsing program. Select all your images by clicking and dragging. Once they are seleted, open the costumes tab of a sprite. Drag the selection into the tab, wait, and now all your pictures are in Scratch!
I'm not sure if this works on macs though, and if you don't have the image files stores
in one place this might not be as easy.
Offline
fullmoon wrote:
I implemented first-class timers with this project.
Excellent. You pave the way of showing how Byop and Scratch can positively cooperate . I've loaded your project without problem and found out that your hash functions are included. Up to now I could not load your project, because it crashed when loaded. Have you any writing exposing how to use them;
Offline
fullmoon wrote:
I implemented first-class timers with this project. You can pause and reset them, but the caveat is that you can't use the "reset timer" block.
Very nice! I'm pleased that people are using the OOP capabilities (the next tutorial if I ever find time). And that you used the IGNORE block. I added a pointer to it in the BYOB web page.
By the way, I am finding that BYOB struggles to detect keyboard input when a custom atomic block is continually being called. Try pressing the spacebar in the above project...it should pause the timer instance but it rarely does.
Yeah, I see what you mean. If you hold down the spacebar it eventually notices, but then it runs the script half a dozen times in quick succession. If you're looking at the script and let go as soon as it lights up it kind of works. Once Jens gets back from vacation I'm going to stand over him with a whip until BYOB is a lot faster! (Never mind that we're on two different continents.)
Offline
xly wrote:
Excellent. You pave the way of showing how Byop and Scratch can positively cooperate . I've loaded your project without problem and found out that your hash functions are included. Up to now I could not load your project, because it crashed when loaded. Have you any writing exposing how to use them;
Thanks for the feedback! I did post some explanation of the hash blocks earlier in this thread here. I think the timers are pretty much self-explanatory, but here's some "documentation":
The somewhat convoluted block names are due to the fact that I try to keep them alphabetized by function.
Last edited by fullmoon (2010-05-30 11:51:33)
Offline
bharvey wrote:
The BYOB web site now has a link to the paper that Jens and I are presenting at Constructionism 2010 in Paris in August.
Refering to your paper, no doubt that Byob widens largely the capabilities of Scratch in many respects : audience, application, level, "tinkerability", user-friendliness ( with its the block editor), function-sharing, upgradibility etc
As far as I am concerned, the main interest of your efforts is that Byob will make Scratch entirely compatible with its father "Logo" which already benefits of a large base of experience, users, books, applications, in many domains. For example, you can immediately write (or rewrite) the many examples of "Turtle geometry" of Harold Abelson.
It is clear that the initial aim of MIT Scratch Team was to develop interest for programming in the lower grades (and social classes). But the revolutionary concept they invented for this purpose, broadens largely the audience initially aimed at by Scratch.
Scratch will certainly contribute to develop amongst the upper layer of college and university populations, more interest for programming, for understanding and "applying" the scientific concepts : mathematics, computer science, engineering, artificial intelligence, robotics... And there Byob brings other tools adapted to this upper level of scientific applications.
Offline
xly wrote:
As far as I am concerned, the main interest of your efforts is that Byob will make Scratch entirely compatible with its father "Logo" which already benefits of a large base of experience, users, books, applications, in many domains. For example, you can immediately write (or rewrite) the many examples of "Turtle geometry" of Harold Abelson.
Indeed, I've been mining my own Logo books for BYOB examples, e.g. in the tutorials.
But I'm equally pleased that we have a community of kids who've probably never heard of Logo who are nevertheless latching onto these very advanced ideas in a way that, honestly, not many kids did in the Logo heyday. My first day introducing BYOB at Berkeley High School I watched a (Scratch-experienced) student's eyes light up the instant I put a list of blocks on the stage, before I said a word. I'd never had that experience before. (That doesn't mean it's all been smooth sailing since then; the ideas still take some getting used to, unless you're nXIII and just get it instantly. )
Offline
bharvey wrote:
(That doesn't mean it's all been smooth sailing since then; the ideas still take some getting used to, unless you're nXIII and just get it instantly. )
After a month of staring at them, I finally understand what the "with inputs" does. And now I feel really dumb for not getting it sooner.
Now can someone explain the difference between "launch" and "run" to me? (I THINK it might have to do with one executing immediately and continuing, and the other running it as if it were a block)
Last edited by shadow_7283 (2010-05-31 09:14:28)
Offline
shadow_7283 wrote:
bharvey wrote:
(That doesn't mean it's all been smooth sailing since then; the ideas still take some getting used to, unless you're nXIII and just get it instantly. )
After a month of staring at them, I finally understand what the "with inputs" does. And now I feel really dumb for not getting it sooner.
Now can someone explain the difference between "launch" and "run" to me? (I THINK it might have to do with one executing immediately and continuing, and the other running it as if it were a block)
Yes, I believe "run" executes a script in the current thread and "call" starts a new thread for the block; threads in this case are basically separate stacks, each with its own top block, so running a script in the current thread would run the script, then continue and run the rest of the scripts in the stack after the "run" block, whereas calling a script in the current thread starts the script as a separate process and continues to run the rest of the stack while the script is running. Well, almost while it's running, if I am not mistaken; BYOB (and Scratch) runs each separate thread until it gives up control, (e.g. at the end of a loop) so I am not sure how it deals with calls: does it run the called script until it gives up control, and THEN finish running the thread, or does it finish its own thread, THEN run the called script until it gives up control?
Offline
Hey, bharvey and Jens. I have a question.
I've been working on a Scratch Wiki article for BYOB (the Scratch Team, JSO, and I are working on a wiki to connect to the main site - see my signature?)
One of the questions that I brought up upon editing was - what's the logo? Is the new 'gobo' the mascot, or the logo? And if it's the mascot, than what is the logo?
Thanks,
-Lucario621
Offline
nXIII wrote:
shadow_7283 wrote:
Now can someone explain the difference between "launch" and "run" to me?
Yes, I believe "run" executes a script in the current thread and "call" starts a new thread for the block
That's right, except that you meant to say "launch," not "run"!
does it run the called script until it gives up control, and THEN finish running the thread, or does it finish its own thread, THEN run the called script until it gives up control?
Geez, you know the code way better than I do, but my impression is that each thread gives up control after each command block, and LAUNCH counts as a command block, so whoever is next in line (not necessarily the new thread) runs after the launch.
Offline
shadow_7283 wrote:
After a month of staring at them, I finally understand what the "with inputs" does. And now I feel really dumb for not getting it sooner.
Well, that is an important thing to understand! But don't feel dumb. Plenty of Scratchers who didn't instantly understand the trailer just gave up -- read the comments on that project -- and you were among the first to get it that this is something worth learning, despite (or maybe because of) having to struggle with the ideas.
And bear in mind that what you're learning is the content of a course designed for computer science majors at MIT. You're not doing so badly.
Offline
Lucario621 wrote:
what's the logo? Is the new 'gobo' the mascot, or the logo? And if it's the mascot, than what is the logo?
Huh. I haven't thought about this before. My first reaction was "what's the difference?" but I guess you're saying that is the logo, whereas the cat is the mascot?
So, Lambda-Gobo, or Globo (my abbreviation), or Lobo (Jens's abbreviation, but confusing because it also means "wolf") is definitely the mascot, but up to now it's been the logo, too. Do we need a logo? I'm tempted to suggest but the Greek upsilon isn't really a "y," is it, even though it looks like one? How about this: Maybe it's a little busy... I guess we're open to suggestions!
Offline
shadow_7283 wrote:
Now can someone explain the difference between "launch" and "run" to me? (I THINK it might have to do with one executing immediately and continuing, and the other running it as if it were a block)
P.S. You really already understand this distinction. LAUNCH is to BROADCAST as RUN is to BROADCAST AND WAIT!
Offline
bharvey wrote:
shadow_7283 wrote:
Now can someone explain the difference between "launch" and "run" to me? (I THINK it might have to do with one executing immediately and continuing, and the other running it as if it were a block)
P.S. You really already understand this distinction. LAUNCH is to BROADCAST as RUN is to BROADCAST AND WAIT!
Except that it runs scripts, not starts hat blocks. I really like those blocks...
Offline
nXIII wrote:
shadow_7283 wrote:
Now can someone explain the difference between "launch" and "run" to me?
Yes, I believe "run" executes a script in the current thread and "call" starts a new thread for the block
That's right, except that you meant to say "launch," not "run"!
I think "launch", not "call"...?
does it run the called script until it gives up control, and THEN finish running the thread, or does it finish its own thread, THEN run the called script until it gives up control?
Geez, you know the code way better than I do, but my impression is that each thread gives up control after each command block, and LAUNCH counts as a command block, so whoever is next in line (not necessarily the new thread) runs after the launch.
No, not after each command block; only special-forms can give up control.
Last edited by nXIII (2010-05-31 16:21:30)
Offline
nXIII wrote:
No, not after each command block; only special-forms can give up control.
Oh! I didn't believe you so I did an experiment, unrolling loops of move-turn by duplicating the whole script six or seven times to make 64 or 128 moves, and doing the same for two sprites, then clicking the green flag, and sure enough, sprite1 drew his entire picture before sprite2 started. That sounds like a bug to me! Maybe there'd be too much overhead in switching threads every command block, but at least it should be every 10 command blocks or something like that.
EDIT: And, to answer your question , the original script continues before the LAUNCHed script runs. (I did another experiment to find out.)
Last edited by bharvey (2010-05-31 16:50:16)
Offline