Well, it seems I was being very naive when trying to implement this... :)<div><br></div><div>I really like your single-key morph idea. It would allow you to configure your keyboard before running the game, so it will work on any platform, right?</div>

<div><br></div><div>Cheers</div><div>Richo<br><br><div class="gmail_quote">On Sat, Jul 31, 2010 at 4:52 PM, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div>[moving to a more appropriate list]</div><div><br></div><div>Unfortunately, keyUp/keyDown event codes are different between VMs on different platforms. They are supposed to refer to physical keys. E.g. the Windows VM produces keycode 65 when you press &quot;A&quot;, independent of the shift key. On†Linux I think you get either 65 or 97 depending on caps lock and the shift key. On an American Apple keyboard you get 0 for &quot;A&quot;, 1 for &quot;S&quot;, †2 for &quot;D&quot; (*). It gets even more funny on all platforms when you involve modifier keys (like Alt-A makes ń etc). Or †in countries which do not use latin scripts, you might get values way outside the ASCII range anyway.†</div>


<div><br></div><div>So up/down events are generally not used in Squeak (except for a few games). There is a reason we have not exposed this in Etoys yet, because we can&#39;t, unless we change the VMs or rewrite the keyboard handling code in the system. We might borrow the latter from Pharo, I know Michael worked on it, but I haven&#39;t actually looked yet.</div>


<div><br></div><div>Your approach with an array won&#39;t work anyway because keycodes can be much larger than a byte. A Set of the currently pressed key codes would be more appropriate (that&#39;s how we implemented keyboard support in our games at impara).</div>


<div><br></div><div>My suggestion would be to make a single-key morph. When you click it, it would allow you to press the key you want. It would have only a single slot named &quot;pressed&quot; to be used in tile scripts. You would make as many of these as you want scripts to expose.†</div>


<div><br></div><div>For your particular purpose, you could just†add cursor-key handling to the Joystick morph. Map the arrow keys to the eight directions, and space to button 1 and return to button 2.</div><div><br></div>


<span style="font-family:Helvetica;font-size:12px">- Bert -</span><div><font face="Helvetica"><br></font></div><div><font face="Helvetica">(*)†google for &quot;mac virtual keycode&quot;<br></font><div><div></div><div>
<div><font face="Helvetica"><br></font><div><div>On 29.07.2010, at 01:03, Ricardo Moran wrote:</div><br><blockquote type="cite">Mmm... I really don&#39;t know. I didn&#39;t think there would be so much difference between platforms. I guess I was wrong... I won&#39;t be able to test on a Mac, but tomorrow I&#39;ll test in a linux computer and I&#39;ll see how different it is from Windows.<div>




<br></div><div>Cheers</div><div>Richo<br><br><div class="gmail_quote">On Thu, Jul 29, 2010 at 1:38 AM, Randall Caton <span dir="ltr">&lt;<a href="mailto:rcaton@cnu.edu" target="_blank">rcaton@cnu.edu</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Dear Richo,<br><br>Great tools. They don&#39;t work on the Mac. How hard is it to make it work on the Mac or is there a key mapping? I tried to change the up key to the a key and still couldn&#39;t move the ship. Maybe I did something wrong.<br>





<br>Randy<div><div></div><div><br><br><div class="gmail_quote">On Wed, Jul 28, 2010 at 12:38 PM, Ricardo Moran <span dir="ltr">&lt;<a href="mailto:richi.moran@gmail.com" target="_blank">richi.moran@gmail.com</a>&gt;</span> wrote:<br>




<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
Hi guys,<div><br>
<div>I may have diverged from the actual GSoC requirements but yesterday I was looking at Morphic events and I made this simple object called KeyboardMorph which I believe it could be useful to handle keyboard events better than what we currently have.</div>







</div><div><br></div><div>I made an Asteroids remake to test it:†<a href="http://tecnodacta.com.ar/gira/gsoc/Asteroids.051.pr" target="_blank">http://tecnodacta.com.ar/gira/gsoc/Asteroids.051.pr</a>. I did this project some time ago and I felt really dissapointed at that time because Etoys keyboard support wasn&#39;t enough to play with it so I made it work with a joystick. Now you can choose between joystick or keyboard :)</div>







<div><br></div><div>Please note that to handle multiple keys simultaneously the KeyboardMorph has a set of boolean slots to test if a specific key is currently pressed or not. I only added support for number, letters, and a few special keys (space, enter, arrows). I think this is more than enough for most purposes. I also added a currentKeyValue slot which returns the key value of the currently pressed key.</div>







<div><br></div><div>I know different keyboards have different layouts, maybe we can make specific KeyboardMorphs for each supported layout. What do you think?</div><div><br></div><div>Cheers</div><div>Richo</div>
</blockquote></div><br><br clear="all"><br></div></div>-- <br>The views expressed in this email are my own<br>and not necessarily those of CNU.<br><br>Randall Caton<br>41596 Bald Eagle Drive<br>Bigfork, MN 56628<br>218-832-3490<br>




<br>
email: <a href="mailto:rcaton@cnu.edu" target="_blank">rcaton@cnu.edu</a><br>web: <a href="http://www.pcs.cnu.edu/~rcaton" target="_blank">www.pcs.cnu.edu/~rcaton</a><br>
</blockquote></div><br></div>
</blockquote></div><div><span style="border-collapse:separate;border-spacing:0px 0px;color:rgb(0, 0, 0);font-family:Lucida Grande;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-size:medium"><br>


</span></span>
</div>
<br></div></div></div></div></div><br>_______________________________________________<br>
etoys-dev mailing list<br>
<a href="mailto:etoys-dev@squeakland.org" target="_blank">etoys-dev@squeakland.org</a><br>
<a href="http://lists.squeakland.org/mailman/listinfo/etoys-dev" target="_blank">http://lists.squeakland.org/mailman/listinfo/etoys-dev</a><br>
<br></blockquote></div><br>
</div>