Re: [maemo-developers] to Nokia: simple method to gain a gaming audience on 770/800

2007-01-30 Thread Marcelo Oliveira

Hei all

We were doing a very simple prototype for a cross platform python game (same
code on s60, 770 and desktop) , and at least in the pygame(python + sdl) it
was so simple to make the bitmap solution (even with cap and simbols) take
less then a couple of hours to prototype (not clean coding etc)

Of course I cannot assure that we supported languages like hungarian, or
even our brasilian portuguese, but for the game input was ok and made in
just one day.

So I agree with jacub, if you  really need, go and make a simple thing for
you the fits your need. It's not a problem at all.

I had a lot more problems with the DOOM, that needed more visual controls
then a keyboard : / but at least was playable in the end and showed
something :
maybe you don't need a full keyboard =)

http://www.marceloeduardo.com/blog/wp-content/uploads/2007/01/picture-8.png


Together goes the keyboard for the demo in python (you can bring it easily
to C)

Obs : this was a fast prototype of a non-python developer =) so do not look
at with demanding eyes =)

BR

Marcelo Oliveira
INdT - Recife
www.marceloeduardo.com

-
( http://www.marceloeduardo.com/blog/wp-content/uploads/2007/01/2.png )
class KeyBoard:

   # Constructor
   def __init__(self, people):
   self.show = 0
   self.shift = 0
   self.msg = ""
   self.whisper = ""
   self.text = 0
   self.people = people
   self.lower_keys = pygame.image.load("pixmaps/keyboard-lower.png")
   self.upper_keys = pygame.image.load("pixmaps/keyboard-upper.png")
   self.keymap1 = (("q", "w", "e", "r", "t", "y", "u", "i", "o", "p",
"[", "]", "1", "2", "3"),
   ("a", "s", "d", "f", "g", "h", "j", "k", "l", ";",
"`", "'", "4", "5", "6"),
   ("z", "x", "c", "v", "b", "n", "m", ",", ".", "?",
"!", "+", "7", "8", "9"),
   (" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "
", " ", "-", "0", "="))
   self.keymap2 = (("Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
"{", "}", "!", "@", "#"),
   ("A", "S", "D", "F", "G", "H", "J", "K", "L", ":",
"\"", "/", "$", "%", "^"),
   ("Z", "X", "C", "V", "B", "N", "M", "<", ">", "?",
"~", "\\", "&", "*", "("),
   (" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "
", " ", "_", ")", "+"))

   # Create text
   def create_text(self):
   if self.msg != "":
   self.text = font.render(self.msg, 1, (255, 255, 255))
   if self.text.get_width() > 484:
   self.text = self.text.subsurface(self.text.get_width() -
484, 0, 484, self.text.get_height())
   else:
   self.text = 0

   def set_whisper(self, name):
   self.show = 1
   self.whisper = name

   # Update keyboard state
   def update(self, event):
   if event.type == KEYDOWN and event.key == K_RETURN:
   self.whisper = ""
   self.show = not self.show
   elif self.show and event.type == MOUSEBUTTONDOWN:
   x, y = pygame.mouse.get_pos()
   if x >= 7 and x < 472 and y >= 347 and y < 471:
   x = (x - 7) / 31
   y = (y - 347) / 31
   if x == 0 and y == 3:
   self.shift = not self.shift
   else:
   if self.shift:
   self.msg += self.keymap2[y][x]
   else:
   self.msg += self.keymap1[y][x]
   self.create_text()
   elif x >= 472 and x < 505 and y >= 347 and y < 378:
   self.msg = self.msg[:-1]
   self.create_text()
   elif x >= 472 and x < 505 and y >= 378 and y < 441 and
self.msg.strip() != "":
   self.people.msg_me(self.msg, self.whisper)
   self.show = 0
   self.text = 0
   self.msg = ""
   self.whisper = ""
   elif x >= 472 and x < 505 and y >= 441 and y < 471:
   self.whisper = ""
   self.show = not self.show

   # Draw keyboard
   def draw(self):
   if self.show:
   if self.shift:
   map.blit(self.upper_keys, (0, 302))
   else:
   map.blit(self.lower_keys, (0, 302))
   if self.text:
   map.blit(self.text, (14, 315))






On Jan 26, 2007, at 6:09 PM, Kees Jongenburger wrote:

On 1/26/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Kees Jongenburger wrote:

I have been asking
around but did not find a simple pluggable virtual keyboard for sdl.


This is IMHO a very simple problem. Just a quick guess: You have to draw a
nice keyboard,
export it to BMP and load it with SDL_LoadBMP(). Then you display (blit) it
with
SDL_BlitSurface(). Don't forget to update the screen with SDL_UpdateRects().
Then you can
SDL_WaitEvent() to wait for SDL_MOUSEBUTTONDOWN events. You just need a
table
which contains the x and y coords of our virtual keyboard to decode coords
to the key
pressed. Of course you should handle shift, delete and someth

Re: [maemo-developers] to Nokia: simple method to gain a gaming audience on 770/800

2007-01-26 Thread Kees Jongenburger

On 1/26/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

Kees Jongenburger wrote:
> I have been asking
> around but did not find a simple pluggable virtual keyboard for sdl.

This is IMHO a very simple problem. Just a quick guess: You have to draw a nice 
keyboard,
export it to BMP and load it with SDL_LoadBMP(). Then you display (blit) it with
SDL_BlitSurface(). Don't forget to update the screen with SDL_UpdateRects(). 
Then you can
SDL_WaitEvent() to wait for SDL_MOUSEBUTTONDOWN events. You just need a table
which contains the x and y coords of our virtual keyboard to decode coords to 
the key
pressed. Of course you should handle shift, delete and something else. The 
decoded char
can now be displayed, you probably need some kind of "displaying a 
text"-function (sfont.c)
for it. And so on. This all can be packed in a function like "char 
*SDL_EnterText()".

An other problem would be to incoperate such a virtual SDL keyboard to the 
large number of
different SDL-GUI toolkits.

For the most number of action games, you don't need to enter text during  game 
play. Its
enough if you do this on startup, and therefor you can use a Maemo startup 
window.

This sounds good and easy to me.The bmp can even have alpha! and
perhaps the code is already there?

http://www.mulliner.org/nokia770/feed/fotos/n770_xkbdbthid_02.png
greetings

keesj
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] to Nokia: simple method to gain a gaming audience on 770/800

2007-01-26 Thread klaus
Kees Jongenburger wrote:
> I have been asking
> around but did not find a simple pluggable virtual keyboard for sdl.

This is IMHO a very simple problem. Just a quick guess: You have to draw a nice 
keyboard, 
export it to BMP and load it with SDL_LoadBMP(). Then you display (blit) it 
with 
SDL_BlitSurface(). Don't forget to update the screen with SDL_UpdateRects(). 
Then you can 
SDL_WaitEvent() to wait for SDL_MOUSEBUTTONDOWN events. You just need a table 
which contains the x and y coords of our virtual keyboard to decode coords to 
the key 
pressed. Of course you should handle shift, delete and something else. The 
decoded char 
can now be displayed, you probably need some kind of "displaying a 
text"-function (sfont.c) 
for it. And so on. This all can be packed in a function like "char 
*SDL_EnterText()".

An other problem would be to incoperate such a virtual SDL keyboard to the 
large number of 
different SDL-GUI toolkits.

For the most number of action games, you don't need to enter text during  game 
play. Its 
enough if you do this on startup, and therefor you can use a Maemo startup 
window.

-Klaus
-- 
 Klaus Rotter * klaus  rotters  de * www.rotters.de

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers