Hi,
On Tuesday 27 March 2007 10:18, Nicolas Roffet wrote:
> KSirtet and all other games depending on libksirtet
like KFoulEggs and
> Klickety are not in a good shape for KDE 4. :(
> (But Klickety seems at least to work. It's slow on my
computer, but it's
> working... KSirtet and KFoulEggs are not working...)
just in case you'd like a few more ideas, here's a mail with
some suggestions
for KSirtet, I sent to Nicolas Hadacek some time ago.
Regards
Thomas
----------------------------
Hi Nicolas,
first off: Thanks a lot for a nice game of tetris!
A few suggestions that came to my mind while playing, maybe
some of those are
worth implementing:
* Key handling:
I haven't read the code, but it seems KSirtet uses
Keypress-Events directly.
This is a fairly straightforward approach, but I think it is
limited, and
could be improved. Two problems:
a) When I need to move a tile fast and far, I tend to keep
the key pressed,
instead of trying to press the key repeatedly at a high
rate. However, this
won't work well, unless I adjust the keyrepeat delay and
frequency before
playing KSirtet. It would be nice, if this was configurable
inside the game.
b) When trying to slide a tile beneath another tile at high
levels, timing is
difficult to impossible. Suppose the falling block that
should be slid under
a block already there. However, the sliding can only be done
at the very last
point of movement, right before the block has
"landed". Currently you need to
get lucky (or be really good at it) to produce a keypress
event exactly at
the right moment. Instead, it would be nice, if you could
start pressing the
key earlier (while the block is still next to the block it
should be slid
under), and right before KSirtet considers a block as
landed, it will check
whether a key is currently pressed, and if so, move it one
step.
Both of these (in principle, the details may be slightly
hairy) can be
achieved by using a method like this:
MyWidget::keyPressEvent (QKeyEvent *event) {
KKey key (event);
if (leftAction->shortcut().contains (key)) {
left_key_pressed = true;
}
[...]
}
MyWidget::keyReleaseEvent (QKeyEvent *event) {
KKey key (event);
if (leftAction->shortcut().contains (key)) {
left_key_pressed = false;
}
[...]
}
void QObject::timerEvent ( QTimerEvent * ) {
// or some slot called by a custom timer
if (left_key_pressed) moveLeft ();
[...]
}
(See also http://edu
.kde.org/development/kaction.php, or ask for more info.
I
used something like this in a game I wrote)
* Tile generation
Randomness is a central part of the game, but I've often
wondered, whether it
would be possible to reduce the influence of luck. E.g.
sometimes a good game
is ruined by a long streak of bad luck (series of wrong
tiles), and of course
the other way around. I suggest two new game mode (with
separate highscores):
a) Reduced randomness: Instead of generating truely random
tiles, maybe you
could generate blocks of 24 tiles or so, with each of the 7
different tiles
guaranteed to appear 3 to 4 times in that block. Then the
next block would be
generated according to the same rules. This should rule out
long streaks of
bad/good luck, but still be random enough not to be
predictable. Of course
the numbers are just a wild guess, and may have to be
tweaked.
b) Replayable games: Might not be an equally good idea, but
here it goes:
Would it be possible to play two games with the exact same
random seed, i.e.
the exact same sequence of tiles? This might - for instance
- be a nice idea
for competitive plays: Two players would both get the exact
same sequence of
tiles, and so the scores would be more comparable.
* UI
- When I started playing KSirtet, the first problem was
figuring out, how to
adjust the starting level. I suspected it in the Mode-Menu,
and I think
that's where it should be.
- I think it would be cool, if the window was simply
resizable instead of
having a view menu with zoom in / out.
Well, that's it for now, hope you find some of these
comments useful. Thanks
again for your work on KSirtet.
Regards
Thomas Friedrichsmeier
_______________________________________________
kde-games-devel mailing list
kde-games-devel kde.org
https://mail.kde.org/mailman/listinfo/kde-games-devel
|