Unfortunately, we are using the NodeBB project for this forum, which does not support such customized notifications. There are some settings you can change in your own setting page.
Posts made by info-creaticode
-
RE: Hiding unnecessary notifications
-
RE: skin
We can look into adding some new gradient patterns. It will still have 2 colors, right?
-
RE: skin
We will look into how to allow each user select a different theme on the forum.
For inverting colors, do you mean inverting the color of the costume of all sprites? It might not be straightforward.
-
RE: Removing huge amounts of blocks in a project permanently renders the sound blocks for the project and all copies of it unusable
Can you share a project link that shows the problem? Thank you
-
RE: Maybe Creaticode knows the issue:
@the_true_odst said in Maybe Creaticode knows the issue::
point towards mouse-pointer” is a bit buggy
We’ll look into that.
-
RE: Maybe Creaticode knows the issue:
In that case, you can skip that whole process when you debug the issue since it is unrelated to the issue, right?
-
RE: glitches.
@attractive-milk @The_True_Odst
Thanks for the feedback. It appears to be an issue related to computer speed and network latency between the 2 of you.
We will give it more tests and try to improve the performance.
-
RE: Maybe Creaticode knows the issue:
Can you pinpoint which block should trigger the “faded version” to appear? And does that block get to run or not?
You can try to use the “print to console” block at a few critical points to help you track the program flow.
Also, it is not clear why this project takes so long to load. Maybe you can make a copy of it, delete all sprites/code unrelated to the hanger, so that you can start it quickly as you debug.
-
RE: Stroke Width Size Scale
How about increasing or decreasing the value with the scrolling wheel on the mouse?
-
RE: Bot is stuck in Socratic Mode even though its toggled off.
Please try again. The issue should be resolved now.
-
3D - Moving Solar System (Difficulty: 4)
Introduction
The Sun is the center of the solar system, but many people do not know that the Sun itself is traveling across space at a very fast speed (about 137 miles per second!).In this tutorial, you will learn to build a simulation of the solar system as it moves in space. It will be a good practice on a few key techniques, such as parenting, transformer node, glow layer and trail mesh.
Step 1 - Create a new project
Log into the CreatiCode playground, and create a new project. Remove the “Sprite1”, and rename the “Empty1” sprite to “Scene”. This sprite will be used as the starting point.
Step 2 - Initialize a scene with a starfield background
There is no 3D scene for the space. However, we can achieve that in 2 steps:
- Initialize an “Empty” scene first;
- Set the sky type to one of the starfield choices.
We can also add a 3D axis temporarily as we develop the program.
Here is the code:
This is what the stage looks like.Note that the 3D axis looks quite small for now, since when the sky type is set to the starfield, the camera is zoomed out by default. This won’t be an issue, since we will add a new camera to replace it later.
Step 3 - Send 3 messages
The rest of the program will take 3 steps:
- Add the Sun
- Add planets (Earth and Mars)
- Make them move
We can easily sequence these events using 3 messages like this:
Make sure you use “broadcast and wait” for the first 2 messages, so these 3 steps are taken one at a time.
Step 4 - Add the Sun sprite
Next, add a new empty sprite, and rename it to “Sun”. In that sprite, when it receives the “add sun” message, add a yellow sphere to represent the Sun:
Note that we are giving it the name of “sun”, so that we can select it later.
Step 5 - Add the Follow Camera
Since the Sun will be moving in the scene, we will use a “follow camera” to follow the Sun:
You can adjust the distance and angle of the camera as you wish. Set its direction lock to “free” so that the user can drag the pointer to change the view angle.
Step 6 - Make the Sun glow
To make the Sun glow some yellow lights, we need to set its emission color to yellow (by default, it is black), and then add it to a “glow layer”.:
Now there is some glowing yellow light around the Sun:
Step 7 - Add the Sun’s trail
To clearly show that the Sun is moving, we will give it a “tail” using the trail mesh:
The trail has the same color, and it is added to the default glow layer as well. We will see its effect once the Sun starts to move.
Step 8 - Make the Sun start moving
To test what we have so far, we can make the Sun move forward when it receives the “start” message. Don’t worry about the planets for now. Add this to the Sun sprite:
Note that we need to select the “sun” object first before setting it speed. This is because the active “sprite object” in this sprite is the trail of the sun, not the sun object, as we added the trail object after adding the sun object.
After this step, the Sun will be moving when we run the project, leaving a trail behind it:
Step 9 - Add the Earth sprite
Now let’s work on the Earth. Add a new sprite and name it “Earth”. In this sprite, when it receives the “add planets” message, add a smaller blue sphere and move it to the right along the X axis for 200 units:
Step 10 - Make the Earth move and orbit
Now we arrive at the most challenging question of the project: how to make the Earth moves together with the Sun, and also orbit around it?
An immediate answer is to use parenting. If we make the sun object the parent of the earth object, then as the sun moves, the earth object will move as well. Also, if we make the sun object spin around itself, the earth object will orbit around it.
However, there is one issue with this solution: the orbit speed of the earth object is determined by the spinning speed of the sun, so if we add the Mars later, it would orbit around the sun at the same speed.
The solution is to add another intermediate object to help with the orbiting movement. Let’s call it “earthparent”. So the “sun” will be the parent of “earthparent”, and “earthparent” will be the parent of the “earth” object:
After this step, the sun will make the earthparent and the earth move with it (we will add the orbiting behavior later).
Step 11 - Add trail to earth
We will apply the same code as the sun to make the earth object glow and add a trail to it:
Now we can clearly see both of the sun and the earth moving:
Step 12 - Make earth orbit
To make the earth object orbit, we just need to rotate the “earthparent” object:
Note that they are moving along the Y axis, so the rotation should be around the Y axis as well:
Step 13 - Add the Mars
Since the code for Mars will be very similar, we will first duplicate the Earth sprite to a new sprite named “Mars”. Then we have to make a few changes:
- Names: mars and marsparent
- Color: blue to orange
- Size: Mars’s diameter is about half that of Earth
- Distance: Mars’s distance to the Sun is about 1.5 times that of Earth
- Orbit Speed: Mars’s orbiting speed is about half of that of Earth.
With all these changes, now we have a complete simulation:
Enhancements
For some extra practice, here are some ideas to enhance this project:
- Add other planets in the solar system: Make sure you get their size/distance/orbit speed correctly relative to the Earth.
- Make the Sun orbit: The Sun actually doesn’t travel in a straight line. It also orbits in a very big circle path. You can illustrate this by adding a new parent object to the Sun itself.
- Add the Moon: You can add the Moon of Earth that orbits around the Earth.
- Toggle camera views: You can allow the user to pick which object the camera should follow. Be prepared for some seriously dizzying results!
-
RE: Bot is stuck in Socratic Mode even though its toggled off.
We will investigate now. thanks for the heads up.
-
RE: Need help and ideas
Maybe you can try these ideas?
- Click the trash bin again to make it stop yelling
- Make random garbage items fly out of the trash bin
- Drag and drop garbage items into the trash bin
- Make the trash bin move to random places on the stage
- Add multiple clones of the garbage bin of different looks.
-
RE: costume idea
You can generate any costume you need using the AI image generation tool: https://www.forum.creaticode.com/topic/1154/search-or-generate-sprite-images-using-ai
You can also tweak them using the “generate variation” tool: https://www.forum.creaticode.com/topic/1876/ai-editing-images-generate-variation
-
RE: Project preview should have more than 1 image
That’s a great idea. We can combine it with this earlier request: https://www.forum.creaticode.com/topic/1793/feature-request-better-thumbnail-control?_=1743099954928
Thank you
-
RE: What is this?
Please give it a try. I would love to hear your feedback. It is always a challenge to know when to give out the answer and when to hold it back, even for human teachers. Our current setting is to make the AI keep providing more hints when the user struggles. Hopefully, that will be good enough for most situations.
-
RE: What is this?
Unfortunately, fake blocks may always exist due to AI hallucination.
You can easily spot it when the block image shows up as red in the XO chat window. When that happens, you can just tell the AI that this block doesn’t exist and make it try again.
-
RE: What is this?
Yes, it is a new mode we are introducing, where the coding assistant will not directly provide answers, but rather guide you with questions and hints so you can learn to solve the problem yourself.
-
RE: Anyone having issue with sound blocks not working?
Problem confirmed. It seems this is because this project is getting too big. It is over 145M when exported. You might need to consider using smaller clips or fewer sounds.
-
RE: Anyone having issue with sound blocks not working?
You mean it does not play sounds that are longer than 10 seconds?
Do you have a project for us to look into?
-
RE: Anyone having issue with sound blocks not working?
@sirbots said in Anyone having issue with sound blocks not working?:
The stage sound blocks are not working in the Stage
The sound blocks work in the stage as well. It might be some other issues. Can you post a project link?
-
RE: using the "pen" to create smoother lines
Please reload the page, maybe a few times. It’s likely the browser is using a cached version of the old code.
-
RE: "When this Sprite clicked" Won't work during playtest
This issue has been fixed.
-
RE: "When this Sprite clicked" Won't work during playtest
Thank you. The issue comes from the larger stage size. Can you switch back to 480x360 stage size for now? We will fix the issue then let you know.
-
RE: application has crashed
Sorry to hear that. Can you try to reload the page?
Is there a project link that we can look into?
-
RE: Anyone having issue with sound blocks not working?
The sound blocks are working normally. Can you post a project link?
-
RE: "When this Sprite clicked" Won't work during playtest
That block works fine in our test. Are you clicking a clone of the sprite? If so, that block may not be highlighted in the code area, but it will still run.
Please share a project link if that’s not the case.
-
RE: Could Scratch blocks be supported for this forum?
Yes, that’s the library we use, but we have to heavily modify it since we have many new blocks.
-
RE: Add a block to point at closest clone/ closest clone of a certain sprite
This needs some further discussion. Even if there is a block that returns the “clone ID” of the nearest clone of another sprite, you will still not know that clone’s x/y positions, right? So how would you calculate the distance to that clone?
-
RE: Could Scratch blocks be supported for this forum?
That’s a good idea. We will have to add quite some code to make it happen in this forum. We’ll do some research on that.
-
RE: Add a block to point at closest clone/ closest clone of a certain sprite
Can you describe in more detail what would be the input parameters and how the block would work?
-
RE: Problematic bug: "Clear all my prints" block doesn't work
This block has been fixed.
-
Teacher Tool - An AI Chatbot for Checking Student Understanding
Introduction
Traditional assessment tools, such as multiple-choice quizzes, often fail to accurately measure a student’s understanding and are highly susceptible to cheating.
As Large Language Models become more intelligent, we can use AI tools to check student understanding in new ways. In this article, we will introduce an example tool, which is a chatbot that can discuss a given program with a student and assess the student’s understanding. All chat messages will be stored in a Google Sheet under each student’s user name, so that the teacher can review them at any time.
This tool project is shared at
play.creaticode.com/projects/67d957d70b962dba34213579
It looks like this when a student runs it:
The chat messages will be stored in the Google Sheet like this:
To use this tool with your students, you need to do the following:
- Remix the project above
- Change the Google Sheet URL
- Change the system instruction.
- Publish the project and send its URL to your students.
Next, I will explain how this tool works and how you can make these changes.
Overview
As shown below, this program only has 3 key modules:
- Initialize Sheet: adds a new tab in the Google Sheet you provide so that the chat messages with this user can be stored there.
- Initialize Chat: set the instruction for AI and then get the first message from AI
- Handle User Message: send new user message to AI and get AI’s response
Initialize Sheet
In this module, a few steps are taken to set up the Google Sheet. You will only need to change the Google Sheet link in the first part:
1. Set Sheet URL (TODO)
- All chat messages with all users will be stored in one Google Sheet, and you will need to provide the link to it. The link should be set up so that “anyone with link” can edit it.
- To make sure no one else can see the content of this sheet, you should not share this project with students. Instead, you should publish this project and give its URL to your students, so they can run this project without looking inside its code.
2. Set Tab Name
- Each student’s chat messages will be stored in one new tab. To easily identify the student, we will use their “full name” from their profile. To handle duplicate full names, the first 4 letters from their random user ID are appended.
- Note that students must log in to CreatiCode before running this project so their full names in the profile can be used.
3. Add a New Tab
- We load all tab names into a list, so we can check if the tab for this student already exists.
- If it does not exist, we will add a new sheet with that name
- We will remove most rows and columns first. This makes sure there are no empty cells. In Google Sheet, there is a limit that the total number of cells in a sheet should be less than 10 million.
- We will add the table headers (Time/Who/Message) to the first row of the new tab
4. Add a row of dashed lines
- Sometimes, a student may run this program multiple times. To mark the beginning of a new run, we will add one row with dashed lines.
For example, the new tab will look like this after initialization:
Initialize Chat
In this module, you will need to modify the system instruction based on your requirements.
1. Set System Instruction (TODO)
The system instruction is given to the AI model before the chat begins. It contains all the instructions and requirements. You need to modify it to specify the code that you want the student to discuss and any key points you want to check. Here is an example system instruction:- The pseudocode is enclosed in the “```scratch” tags. You can get this pseudocode for any scratch program by right-clicking on any stack of blocks, and select “copy pseudocode of this script”:
-
You can also specify other coding languages after the 3 ticks, such as python, javascript, java, etc.
-
Feel free to update the “Key points to check”, so that the AI will try to assess how well the student understand these points about the given program.
-
Feel free to update the other instructions below. For example, the example instruction asks AI to conclude the chat with a rating. You can choose to do it differently or not give any rating.
2. Display the chat window
3. Get AI’s initial message
To make the AI present the given program to the student and ask its initial question, we simply need to send a message like “hi” to the AI. The response from AI will be added to the chat window.4. Store AI’s message
Laslty, this message from AI will be stored in the Google Sheet, using the “store message” block. This block will get the current time, then append one row at the bottom of the tab for this student:
Respond to student message
Whenever the student inputs a new message, we will get AI’s response to it. You don’t need to change anything here.
1. Display and store student message
- When the student clicks the “send” button, we will append that message (“value of widget [chat1]”) to the chat history.
- We will use the “store message” block to store this message in the Google Sheet as well.
2. Get AI’s response
- We will send the user message to the AI model and wait for its response.
- Then we add the response to the chat window
- Lastly, we also store the AI’s response in the Google Sheet.
Summary
In summary, you can reuse the example project by replacing the Google Sheet URL and the system instruction. You can also modify the system instruction to assess the student’s understanding of some concept instead of actual code. You can always review student’s conversation with the AI in the Google Sheet.
-
RE: Problematic bug: "Clear all my prints" block doesn't work
Acknowledged. We will fix this soon. Thank you.
-
AI - Editing Images (Generate Variation)
Introduction
You are not only generate images using a text prompt, but also modify an existing image with a text prompt. This tool can be used in many creative ways. Below are some examples.
How to generate a variation
You can generate a new image based on an existing image, which can be either a backdrop (a rectangular image that covers the entire stage) or a costume (with a transparent background). Here are the steps:
Step 1 - Search for any image in the library
For example, you can open the AI image tool for backdrops, and search for an image of a school like this:
Step 2 - Select an image as “reference”
You can select any image in the grid by checking the “use as reference” checkbox below that image, and a new button for “Generate Variation” will appear.
Step 3 - Specify how you want the image to be changed
Next, in the input box, remove the existing text and write down how you want the selected image to be changed. Note that this is different from the prompt you use to generate a new image. It should clearly tell the AI tool how the image should be changed, such as “make it …”, “change it so that …”, “add … to it”, “remove … from it”, etc. It is a common mistake to repeat the same prompt that was used to create the reference image.
For example, we can tell the AI tool to remove all the kids in the image and only show the background:
Step 4 - Click the “Generate Variation” button
Lastly, click the “Generate Variation” button and wait for a few seconds. During that time, the AI tool will automatically review if your request is appropriate, and if so, it will try to generate a new image based on the reference image and your prompt.
Note that sometimes the request may be rejected in the review process. You can try again when that happens, and the AI reviewer might let it pass sometimes. Of course, you can also change the reference image or your request.
Step 5 - Decide what to do with the new image
After the new image is generated, you can click on it to use it in your project. If you are not happy with it, you can either delete it or regenerate it.
Interesting Use Cases
Now let’s look at some interesting ways to use this new tool to help you generate the perfect images for your projects.
Use Case 1 - Remove People/Objects
You have already seen an example above, where we removed the kids from the image. Here is another example. Suppose we really like a table, but we want it to be completely empty, we can change it:
Request: remove objects on the table
Reference and Result Images:
Note that the current AI tool often fails if we ask it to remove some objects and keep other things. For example, if we say “remove the knife on the table but keep the plate of fruit”, it would still remove everything on the table.
Request: remove the ground so only show the wolf
Reference and Result Images:
Request: remove all the pills outside the bottle
Reference and Result Images:
Use Case 2 - Add People/Objects
Here are some examples of adding new people/objects.
Request: put on a green t-shirt for the cat
Reference and Result Images:
Request: add a car in the parking lot
Reference and Result Images:Note that the newly added car is drawn with the same style as the reference image.
Use Case 3 - Change properties of an object or scene
You can also keep the same object or scene, but change some properties like color, shape, material, etc.
Request: change it to rainy and cloudy with no sunshine
Reference and Result Images:
Request: make the hand 5 fingers
Reference and Result Images:
Request: change the robot’s eyes to blue
Reference and Result Images:
Request: turn the car to face straight towards the viewer
Reference and Result Images:
Request: change this table to steal
Reference and Result Images:
Use Case 4 - Change the pose of a character
You can also change the pose of a character so you can make animations. However, this feature is still very limited and often fails. Usually it works better with non-human characters. You might need to retry a few times and adjust your prompt to find out what works.
Here are some examples:
Request: make the dog body wave one hand
Reference and Result Images:
Request: frustrated with both hands covering face
Reference and Result Images:
Request: Rest his chin on hand, tilt his head and think
Reference and Result Images:
Request: surprised with both hands on face
Reference and Result Images:
Request: frustrated with head facing ground
Reference and Result Images:
Request: happy and jumping up
Reference and Result Images:
Request: raise both arms to show big thumb up to the viewer
Reference and Result Images:
Request: running and facing the side and looking straight forward
Reference and Result Images:
Request: sitting and playing piano
Reference and Result Images:
Request: eating a big burger with both hands holding it
Reference and Result Images: -
RE: Drop game simulation
That’s a good question. We have just created a new tutorial for a game like this, which should be helpful to answer your question. If you need further help, it would be easier if you post a project link.
https://www.forum.creaticode.com/topic/1874/3d-physics-game-for-drone-dropping-a-box-difficulty-4
The demo project is shared here:
-
3D Physics - game for drone dropping a box (Difficulty: 4)
Introduction
In a previous tutorial, you learned how to simulate a drone flying through a city. However, to keep it simple, no physics simulation was used.
In this tutorial, you will learn to simulate a drone carrying a box using the 3D physics engine. You will need to apply forces and impulses to the drone to fly it to the destination, and also use a physics constraint to attach a box to the drone.
Step 1 - Create a New Project
Please create a new project in the CreatiCode playground, and remove the “Sprite1”. We will only need the “Empty1” sprite for this project.
Step 2 - Initialize the 3D scene and physics engine
All 3D projects should start with initializing the 3D scene, and we will just use an “Empty” scene for this project. Since we will use the physisc engine, it should be initialized right away as well:
Note that to make things drop fast in this simulation, we will use a gravity of -1000.
Step 3 - Define 2 new custom blocks
To keep our blocks organized, let’s create 2 new custom blocks:
Step 4 - Add a static ground
In the “setup scene” block’s definition, we first need to add a large ground, so objects do not fall endlessly. We can use a large and thin 3D box for the ground, with a size of 20000 by 20000, and a thickness of 1. We will give it a grid material so that it is easy to see object movements. We also need to give the ground a physics body with a mass of 0, which makes it static (won’t fall).
The ground will look like this:
Step 5 - Add a basket
Next, we will add a basket so we can drop the box into it. The “rectangle tube” is a perfect shape for this purpose, and there is a corresponding body shape of “rectangle tube” as well.
You can place this basket at any position. For this example, we will put it at x of 400 and y of 1200, which will be at the front right direction from the camera view. We will also need to set its z position to be 75 or higher, so it is above the ground:
Step 6 - Add a wall
As an optional step, we can add a wall to block the drone. It can be a simple box right in front of the camera:
Again, make sure its z position is half of its height, so the entire box is above the ground. The scene will look like this now:
Step 7 - Add the drone
Next, we work on the “add drone” block.
First, we will add a drone, and move it above the ground:
Step 8 - Enable physics for the drone
Next, we will assign a physics body to the drone so it is controlled by the physics engine. Its mass will be 100, so it will fall due to gravity. Also, to prevent the drone from tilting forward or sideways, we will not allow it to rotate around any of the 3 axes:
When we run the program, the drone should fall to the ground like this due to gravity:
Step 9 - Add a follow camera
Since the drone will be flying around, we will use a follow camera that will follow the drone. We can add the camera right after adding the drone:
In this example, the camera will be 1500 units away from the drone, and looking down at an angle of 45 degrees. It will move as the drone falls down. The user can still drag the left mouse button to view it from different angles:
Step 10 - Add a gift box
Next, we will add a gift box object right below the drone. We will set its height to 100, but also offset its origin by 50 in the z direction, which ensures its position is anchored at the center of its body instead of its bottom. Note that we only need to add this offset for models added using “add model”, and you can refer to this article for more information.
The gift box will also have a box-shaped physics body with a mass of 100. We will set its z position to 50, which is precisely half of its height so that it will rest on the ground.
Now the drone will fall onto the gift box and stay there, since both of their bodies are approximated using simple boxes:
Step 11 - Link the drone and the gift box
To simulate the drone picking up the gift box, we will add a “fixed constraint” between them. This constraint will try to make sure these 2 objects stay at the same relative positions. So when we move the drone, the gift box will be moved as well, as if it is picked up by the drone.
Note that we are naming this constraint as “link”, which can be used to remove it later.By now, we have finished setting up all the objects. Next, we will allow the player to use different keys to control the drone.
Step 12 - “Turn on” the drone
When we play with a real drone, the first step is to turn it on, which starts the propellers. The goal is to apply an upward force to the drone to cancel out gravity. The drone may not fly higher yet, but it will be much easier to make it fly later.
To do that, we will need to apply a force in the z direction when the “L” key is pressed:
The strength of this force should match that of gravity. Since gravity is -1000 and the mass of the drone and the gift box is 200 in total, we need an upward force of 200000 to cancel out the gravity force.
Step 13 - Change the drone’s color
Since this drone model does not support animating the spinning propellers, we need another way to tell the player that the drone has been “turned on” and gravity is canceled out. For example, we can change its color to green like this:
Step 14 - Make the drone rise
Whenever the player presses the “J” key, we will give the drone a one-time push (an impulse) so it gains a rising speed. It will maintain this speed, since there is no gravity (it is canceled out). If the player presses the J key more times, then the rising speed will be faster.
The size of this impulse determines how much rising speed the drone gains. Feel free to try different values. You can try to make the drone rise now: press “L” once first, then press “J” one or multiple times.
Step 15 - Make the drone fall or slow down
Similarly, when the player presses the “K” key, we will apply a downward impulse of the same size. This will make the drone stay in the air or even fall, depending on how many times the player presses the “K” key:
If we press the J key once and then the K key once, then the drone will stay floating in the air:
Step 16 - Drop the gift box
To simulate dropping the gift box, we just need to remove the constraint between them. Let’s trigger that with the “SPACE” key:
We can test the program this way: we press the “L” key to turn on the drone, press “J” to make it rise, then press “K” to make it stay there. Then when we press “SPACE”, the gift box will start to fall to the ground, since it is no longer tied to the drone. However, something interesting will also happen: the drone itself will start to rise rapidly. Can you guess why?
Step 17 - Reduce the propeller force
The reason is that we are applying an upward force of 200000 to the drone, which balances out the gravity on both the drone and the gift box. When the gift box is detached, the gravity force will reduce to half of that (1000 * 100), so the upward force is too strong.
To avoid this issue, we need to reduce the upward force by 1000000 like this:
This will keep the upward force in balance with the gravity force, so the drone will still stay in the air without being pushed higher or lower.
Step 18 - Make the drone go forward
For the last part of the game, we need to add key controls for the player to move the drone toward the basket. We will start with the “W” key, which will give the drone a forward speed along the Y axis:
Step 19 - Make the drone go backward
Similarly, when the player presses the “S” key, we will apply a one-time push backward, along the negative Y direction. This will make the drone stop moving forward or even move backward:
Step 20 - Moving left and right
Lastly, we will use the “A” and “D” keys for moving left and right:
By now, the game is playable. The player has to fly the drone towards the basket and then drop the giftbox into the basket. Note that when the player press the “SPACE” key a second time, the upward force will be fully cleared out, so the drone will fall to the ground.
Further Enhancements
This program only illustrates the basics of how to use the 3D physics engine and impulses/forces. Here are some ideas for you to enhance it as practice:
- Stop moving: you can add a new key for the player to stop the drone in both directions. You will need to keep track of the impulses applied to the drone so far, and then apply impulses in the opposite directions.
- Pick up the gift box: Instead of starting the program with the gift box attached to the drone, you can place the gift box at a different position, and make the player fly the drone to the pick up the gift box first, then drop it off at the basket.
- Return home: when the “H” key is pressed, the drone will fly back towards the origin point automatically and land there
- Add Rotation: instead of using WASD to move forward or sideways, we can also allow the player to turn the drone left or right, then move it forward or backward. You can use this block to rotate the drone around the Z axis: set physics body rotation speed around xyz axes. To find out the drone’s current direction, you can use this block: get physics body [Rotation z v]. Once you have the current facing direction, you can use that to calculate the x and y values used in the “apply impulse” block to make the drone go forward or backward along the current facing direction.
- Add Propeller Animations: You can use a drone model without the propellers, then add 4 propeller objects as its children. Then you can simulate the spinning propellers. Here is a small example:
-
RE: Feature Suggesion
@jeffreyrb03-gmail @JD131111 @GreeniWasTakenYT @Tyller_ @c @The_True_Odst
We are releasing this feature for free for all users. Please try it out and let us know what you think:
https://www.forum.creaticode.com/topic/1869/remote-edit-2-users-working-on-the-same-project-remotely
-
"Remote Edit" - 2 users working on the same project remotely
Introduction
When 2 users are using their own computers, they can collaborate on the same project remotely, using a new feature called “remote edit”. This is a fun experience that allows 2 people to write code together. When one person makes a change, such as adding a block or changing an input value, the other person sees the change right away. This is similar to how 2 people can edit the same Google Doc at the same time.
How to start a “remote edit” session
Here are the 4 steps for two users to start a remote edit session:
-
Owner User shares a new project. There are a few ways to share a project, such as sharing with everyone, sharing with friends only and sharing unlisted (no one can see it unless they have the project URL). The owner user then gives the project URL to the guest user, maybe through email or text message.
-
Guest User opens the project and clicks “Look inside” to open the project in the playground. The guest user selects the “Edit” menu on top, and then select “Request to edit”, then wait for the owner user to accept the request.
-
Owner User receives a request from the guest user, and clicks “Accept” button.
-
Guest User will receive the approval, and their project will automatically reload. This is to make sure the guest user starts with exactly the same project content as the owner user.
Here is a screen recording for what the 2 users would see on their computers (the left half is for the owner user and the right half is for the guest user):
After the 4 steps above, both users will be able to see and change the same project at the same time.
Making Changes
After the remote edit session has started, both users can make changes, such as adding/removing blocks, changing input values, etc. When one user is changing a block, that block will become greyed out on the other user’s screen, which indicates the remote user is making some changes. Users should try to avoid making changes to the same block at the same time, since the changes may conflict with each other, and only one change will be saved.
Limitations
There are some limits put in place to ensure the 2 users are always in sync:
-
No New Sprites: Currently, neither user can add new sprites once the session has started, and the “add sprite” button is hidden. Therefore, it is suggested that the owner user first creates all the sprites they need before starting the session.
-
Only Owner can save the project: Only the owner user can save the project, since that user still owns the project. The owner user should save the project whenever some important changes have been completed.
How to end a “remote edit” session
To end a “remote edit” session, either the owner or the guest user can click the red “End” button at the bottom.
Best Practices
Here are some suggestions on how to make use of this feature effectively:
-
Voice Communication: When the 2 users are not in the same room, it is better to have a voice communication channel, such as a zoom meeting or a phone call on the side. This can make it much easier for the 2 users to decide who will do what.
-
Division of Work: Although these 2 users can both make changes at the same time, they can not change exactly the same block at the same time. For example, if one user is updating the input parameters in a block, and the other user is deleting that block, then the result may be unexpected. It is recommended that the 2 users work on different blocks or stacks of blocks to avoid conflicts.
-
-
RE: Text to Speech Blocks in the AI category does not speak when the code is active.
That block should be working fine. Can you try this project?
play.creaticode.com/projects/67cf5e2ed88ad0f9b2659ba3
Make sure you have logged in and that the sound volume on your device is not too low.
-
RE: erm
Are you referring to this forum? If so, only yourself can see them and no one else.
You can try to verify by looking at other user’s profile pages.
-
RE: Autoplay on project embeds doesnt work yet
@c said in Autoplay on project embeds doesnt work yet:
Isn’t a Chromebook considered a laptop?
Normally a Chromebook runs on ChromeOS, while a laptop runs on windows/macOS/linux
-
RE: Age Block?
@jeffreyrb03-gmail said in Age Block?:
let you change title, description & credits (rather than having to go to the project page to edit those)
Well, this would be counterintuitive since most users are already used to changing them on the project page, right?
-
RE: Age Block?
Well, in theory, we shouldn’t want to expose any information about a user to others, right?
-
RE: Age Block?
We try to avoid exposing information about a user’s birth year/month to other users/programs.
Maybe we can allow the author of a project to assign a rating to their project, so our system can automatically hide the “horror” level projects from young users?