
-----------------------------------
vdemons
Sun May 15, 2011 2:44 pm

Making an Etch-A-Sketch?
-----------------------------------
I am trying to make an Etch-A-Sketch program for school and I got it to make lines with the arrow keys however, I want to make it so that it makes lines only when you click a button then stop making line when you click it again. Right now it always makes lines. 

Post any relevant code (You may choose to attach the file instead of posting the code if it is too long)


-----------------------------------
mirhagk
Sun May 15, 2011 2:52 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
So have you checked out any of the mouse commands, i'd suggest going into the Turing help file, and doing a search for mouse.

-----------------------------------
Tony
Sun May 15, 2011 2:56 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
did you mean to ask a question in there somewhere? If so, please fill out the provided template next time.
[code]
if  then
   % draw the line
else
   % don't draw the line
end if
[/code]

-----------------------------------
vdemons
Sun May 15, 2011 2:58 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
What I really mean, is how do I make my circle move without making a line?

-----------------------------------
Tony
Sun May 15, 2011 3:11 pm

Re: RE:Making an Etch-A-Sketch?
-----------------------------------
What I really mean, is...
Nice, now we are getting somewhere.

As you move the circle, you'd need to clear the screen from the circle's previous location. I imagine that right now you do that by drawing a piece of a "line" on top.

The two basic approaches are either:
- re-draw the entire screen as it was before.
- draw some minimal changes on top.

-----------------------------------
vdemons
Sun May 15, 2011 3:16 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
...and how would I do that, the only way I know of doing that is to use "cls" but it erases the entire screen!

-----------------------------------
Tony
Sun May 15, 2011 3:20 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
That's one way. Then you would need to re-draw the entire screen, as it was before (less the moving non-drawing circle). Meaning that you'd have to remember what was on the screen, somehow.

-----------------------------------
vdemons
Sun May 15, 2011 3:21 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
Is there a command to do that?

-----------------------------------
vdemons
Sun May 15, 2011 3:26 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
What about "View.Update" would it do?

-----------------------------------
Tony
Sun May 15, 2011 3:30 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
- [tdoc]array[/tdoc] of variables
- [tdoc]whatdotcolor[/tdoc]
- [tdoc]Pic.New[/tdoc]
in no particular order, could all be useful for at least 3 different approaches

-----------------------------------
Raknarg
Sun May 15, 2011 3:40 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
If I were you, I'd use a flexible array to save the dots positions.

-----------------------------------
Tony
Sun May 15, 2011 3:45 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
@Raknarg -- if the screen size doesn't change, a static sized array offers a number of advantages.

-----------------------------------
Raknarg
Sun May 15, 2011 3:48 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
Are you sure? I thought he could use the flexible array so that it would only save the amount of positions needed... whats the advantage?

-----------------------------------
Tony
Sun May 15, 2011 3:52 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
Mostly in performance:

- no need to resize the array every time a new pixel is drawn
- constant time lookup for an arbitrary position

The downside is naturally the space requirement, but that is only the case if there are very few dots in a very large (mostly blank) screen.

-----------------------------------
Raknarg
Sun May 15, 2011 3:56 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
hmm... Well, the space requirement is the only real reason I would've suggested it, having a large for loop when you dont need it seems to slow down things a lot... or at least in bigger games.

-----------------------------------
vdemons
Sun May 15, 2011 4:01 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
Sorry I tried I just don`t know how to use them, I tried and failed! :(

-----------------------------------
Raknarg
Sun May 15, 2011 4:05 pm

RE:Making an Etch-A-Sketch?
-----------------------------------
Show what you have so far.

-----------------------------------
vdemons
Sun May 15, 2011 4:12 pm

Re: Making an Etch-A-Sketch?
-----------------------------------
This is it, (I had more but I deleted it when it didn't work) btw, if you add cls after view.update it moves without lines, but I don't know how to merge the two since cls clears the entire screen!



View.Set ("graphics")
var x, y, radius : int
x := 200
y := 100
radius := 5



var chars : array char of boolean
View.Set ("offscreenonly")
loop
    Input.KeyDown (chars)
    if chars (KEY_UP_ARROW) then
        y += 1
    elsif chars (KEY_RIGHT_ARROW) then
        x += 1
    elsif chars (KEY_LEFT_ARROW) then
        x -= 1
    elsif chars (KEY_DOWN_ARROW) then
        y -= 1
    end if
    if y + 12 >= maxy then
        y -= 1
    end if
    if y - 12 = maxx then
        x -= 1
    end if
    if x - 12 