terça-feira, 29 de junho de 2010

Remake de Skool Daze para Linux - Pyskool

Quem tinha ou ainda tem o famoso ZX Spectrum, aquele famoso computador de há uns (bons) anos, lembra-se de certeza de um jogo chamado Skool Daze e do seu predecessor Back to Skool.
Navegando por aí encontrei um Remake deste jogo escrito em Python (uma linguagem de programação).



Este Remake é o Pyskool (Py[thon] + [back to ]skool[ daze])




Requisitos para jogar (pacotes):

Python
Pygame

Pode instalar estes via repositórios do Debian, com o Gestor de Pacotes Synaptic, por exemplo.

Este jogo incorpora 2 modalidades e algumas alterações. Os quais são:

Skool Daze
Back to Skool

Cada um com o seu próprio executável.

Página oficial do jogo: http://pyskool.ca/
Página para baixar: http://pyskool.ca/?page_id=44


Depois de baixar o Pyskool e descomprimir, encontrará dentro da pasta principal várias pastas e os respectivos ficheiros executáveis (sendo cada um deles um script de Python)

maquinadecafe@debian:~/Desktop/pyskool-0.5.1$ ls
back_to_skool_daze.py  COPYING  docs-src       icon.png  ini      pyskool.ini  skool_daze.py           sounds
back_to_skool.py       docs     ezad_looks.py  images    pyskool  save         skool_daze_take_too.py  utils

A cor-de-laranja estão sublinhados os scripts que se executam


Para executar o skool daze, abra um terminal na pasta principal do pyskool e escreva:

$ ./skool_daze.py

OU também pode executar com o seguinte comando:

$ python skool_daze.py

Para executar o back to skool, abra um terminal na pasta principal do pyskool e escreva:

$ ./back_to_skool

OU também pode executar com o seguinte comando:
$ python back_to_skool



Está disponível o código fonte, você pode alterá-lo para ajustar, configurar, etc... ao seu gosto.



Uma breve introdução ás regras da escola:


Os Rapazes devem assistir ás aulas tal e como se vê no horário no fundo do ecrã. (Lembre-se que você copiou nos exames do ano passado)

Os Rapazes não ganham pontos por assistir ás aulas, mas podem levar "linhas " (ou "lines") se são apanhados em sítios indevidos.

Os Rapazes que acumulem mais de 10.000 "linhas" (ou "lines") serão expulsos imediatamente da escola.

Os Rapazes não estão autorizados a entrar na sala dos Professores (staffroom) ou o escritório do Director (Headmaster’s study). Tenha cuidado.

Quando chega a hora do recreio, os Rapazes devem estar a brincar no Recreio mas nunca em nenhuma das salas de aula.

Os Rapazes não devem bater nos seus colegas.

Os Rapazes não devem usar ou disparar fisgas.

Os Rapazes devem andar silenciosamente nos corredores - os corredores não sao para correr ou sentar-se neles.

Os jantares (comidas) na Escola são obrigatórios.

Os rapazes devem ser sempre educados e portar-se bem.


Para controlar Eric, o nosso personagem, aqui temos as teclas de movimentos.

Controles:

q’ ou "cima" - sobe escadas, ou continua a andar na mesma direcção
a’ ou "baixo" - desce escadas ou continua a andar na mesma direcção
o’ ou "esquerda" - esquerda
p’ ou "direita" - direita
f’ - dispara a fisga
h’ - golpeia
j’ -salta
s’ - senta/levanta
w’ - escreve no quadro (carregue em Enter/Return para terminar)
Escape - sai do jogo
End - pausa o jogo/volta ao jogo
Insert - toma uma captura do ecrã (ou screenshot)
F2 - grava o jogo actual
F6 - carrega o jogo gravado mais recentemente
F10 - mostra/esconde o menu

NOTA: ás teclas de direcção, áparte de 'q', 'a', 'o', 'p', pode usar também as teclas de cursor. Daí a indicação aos movimentos.

As capturas de ecrã são gravadas para um ficheiro BMP file (se você usar o Pygame versão 1.7) ou um ficheiro PNG (se você usar Pygame na versão 1.8 ou superior). A pasta onde são gravadas as capturas é a pasta principal de Pyskool.

Por defeito, as partidas de cada jogo são gravadas na pasta /save/nome_do_jogo (onde nome_do_jogo é skool_daze ou back_to_skool).

Modo Back to Skool:

O modo Back to Skool também usa as seguintes teclas:


c’ - apanhar um rato ou um sapo
d’ - mandar uma bomba de mau cheiro
g’ - dispara a pistola de água (vulgo PT:bisnaga)
m’ - anda de bicicleta
o’ - abre uma mesa (quando sentado numa)
r’ - solta um rato
t’ - manda fora a pistola de água

Para pedalar a bicicleta, use as teclas de direcção (cursor) esquerda e direita (ou ‘o’ e ‘p’). Use a tecla de cursor cima (cursor) (ou ‘q’) para montar a sela, e a tecla baixo (cursor) (ou ‘a’) para desmontar.

Pode saltar enquanto estiver montado na sela carregando na tecla ‘j’ ou usando a tecla de cursor para cima (ou a tecla ‘q’).

Instruções do jogo original (em inglês):
In the role of our hero, Eric (or any other name you decide to call him and the rest of the cast), you know that inside the staffroom safe are kept the school reports. And, being Eric, you realise that you must at all costs remove your report before it comes to the attention of the Headmaster.

The combination to the safe consists of four letters, each master knowing one letter and the Headmaster’s letter always coming first. To get hold of the combination, you first have to hit all the shields hanging on the school walls. Trouble is, this isn’t as easy as it looks. Some of them can be hit by jumping up. Others are more difficult. You could try and hit a shield by bouncing a pellet off a master’s head whilst he is sitting on the ground. Or, being Eric, you may decide to knock over one of the boys and, whilst he’s flattened, clamber up on him so that you can jump higher.

OK. So all the shields are flashing wildly, disorientating the poor masters. Knock them over now and, before they can stop themselves, they’ll reveal their letter of the code. All except for the history master, of course, who because of his great age and poor eyesight can’t be trusted to remember. His letter has been implanted into his mind hypnotically. To make him reveal it, you must find out the year he was born (which, in case you were wondering, changes each game). Then, creep into a room before he gets there and, if the board is clean, write it on the blackboard. When he goes into that room and sees his birthdate he will, as if by post-hypnotic suggestion, give away his letter.

Now that you know all the letters of the combination, all you have to do is work out which order they go in. You know that the Headmaster’s letter is always first, but as for the other three...you’ll just have to try the various possibilities. Find a clean blackboard and write out a combination.

Rush back to the staffroom and jump up to reach the safe with your hand. If nothing happens, then the combination must be wrong, so you’d better find another clean blackboard and try a different one.

With the safe open, your troubles still aren’t over, as the flashing shields are rather a giveaway. To stop them flashing, you now have to hit all of them again.

Done it? Congratulations! You are now allowed, along with all your friends, to move on to the next class at school. But remember, there will be reports at the end of this term...

Use um traductor online se assim o preferir.

Agora para os mais curiosos e que lhes apeteçam mexer e personalizar o jogo dê uma vista de olhos mais abaixo.

Configuraçoes adicionais (não necessário):

Existem os ficheiros .ini que controlam parâmetros de configuração do jogo. Estes podem ser as cores de fundo, cores das fontes, modo gráfico, resolução, etc.

Existe um ficheiro config.ini tanto para o Back to Skool como para o Skool Daze.

Estes ficheiros estão nas seguintes pasta:

/pyskool-0.5.1/ini/back_to_skool/
/pyskool-0.5.1/ini/skool_daze/


Para fazer alterações no jogo ao seu gosto, simplesmente edite o config.ini correspondente ao jogo que quer mudar. Para editar pode usar um editor como o Kwrite, Kedit, Gedit... aquele que mais gostar. Altere, grave as alterações e volte a arrancar o jogo.

Os parâmetros  abaixo indicados podem ser aplicados á parte do ficheiro config.ini onde diz:

[ScreenConfig]
Scale, 2
Width, 64
Height, 48
GraphicsMode, 0
ScrollFps, 20
ScrollRightOffset, 9
ScrollLeftOffset, 10
ScrollColumns, 8
SpeechBubbleSize, (8, 3)
SpeechBubbleLipCoords, (8, 0)
SpeechBubbleLipSize, (1, 1)
SpeechBubbleInset, (4, 4)
SpeechBubbleInk, (0, 0, 0)
SpeechBubbleKey, (0, 254, 0)
SpriteKey, (0, 254, 0)
SpriteMatrixWidth, 16
SkoolInkKey, (255, 255, 255)
ScoreOffset, 1
LinesOffset, 9
HiScoreOffset, 17
FontInk, (0, 1, 2)
FontPaper, (255, 254, 253)
FlashCycle, 10
MessageBoxColour, (197, 0, 0)
MessageBoxKey, (1, 1, 1)
LinesInk, (205, 198, 205)
LinesPaperEric, (197, 0, 0)
LinesPaperOther, (0, 198, 0)
SecretInk, (205, 198, 205)
SecretPaper, (0, 0, 0)
InitialColumn, 120
EscapeAlarmInk, (197, 0, 0)
EscapeAlarmPaper, (197, 198, 0)
Background, (0, 0, 0)
LogoPos, (24, 21)
LessonBoxInk, (255, 255, 255)
LessonBoxPos, (16, 21)
ScoreBoxInk, (205, 198, 205)
ScoreBoxPos, (0, 21)
MouseInventoryInk, (205, 199, 205)
MouseInventoryPos, (8, 21)
MouseInventorySize, (8, 1)
InventoryKey, (0, 0, 0)
InventoryPos, (10, 23)
InventorySize, (6, 1)


Parametros:

Background - the background colour of the screen
EscapeAlarmInk - the ink colour to use for the escape alarm message box used by Albert
EscapeAlarmPaper - the paper colour to use for the escape alarm message box used by Albert
FlashCycle - length of the cycle in which a flashable object (such as a shield) flashes once
FontInk - the ink colour in font.png (used to create transparency)
FontPaper - the paper colour in font.png (used to create transparency)
GraphicsMode - 0 = hi-res colour; 1 = spectrum mode, meaning just two colours (ink and paper) per 8x8-pixel block
Height - the height of the screen (in tiles)
HiScoreOffset - the y-coordinate offset used to position the printing of the hi-score
InitialColumn - the x-coordinate of the leftmost column of the screen when the game starts
InventoryKey - pixels of this colour in inventory item and captured mouse images will be made transparent when the items are drawn
InventoryPos - the x, y coordinates of the inventory on screen
InventorySize - the size of the inventory (width and height in tiles)
LessonBoxInk - the ink colour to use when writing in the lesson box
LessonBoxPos - the x, y coordinates of the lesson box on screen
LinesInk - the ink colour used in a lines message box
LinesOffset - the y-coordinate offset used to position the printing of the lines total
LinesPaperEric - the paper colour used in a lines message box when Eric is the recipient
LinesPaperOther - the paper colour used in a lines message box when Eric is not the recipient
LogoPos - the x, y coordinates of the logo on screen
MessageBoxColour - the colour of the ‘inside’ of the message box in the MESSAGE_BOX image (see [Images]); pixels of this colour in the image will take on the designated paper colour (e.g. LinesPaperEric) when the message box is drawn
MessageBoxKey - pixels of this colour in the message box image will be made transparent when the message box is drawn; in the stock Pyskool, this feature is not used
MouseInventoryInk - the ink colour to use when writing in the mouse inventory
MouseInventoryPos - the x, y coordinates of the mouse inventory on screen
MouseInventorySize - the size of the mouse inventory (width and height in tiles)
Scale - the scale factor to use for graphics; 1 = original Spectrum size
ScoreBoxInk - the ink colour to use when writing in the score box
ScoreBoxPos - the x, y coordinates of the score box on screen
ScoreOffset - the y-coordinate offset used to position the printing of the score
ScrollFps - the number of frames per second at which the screen should be scrolled (when the game starts and during play); raise it to make the screen scroll faster, or lower it to scroll more slowly
ScrollColumns - the number of columns to scroll when Eric approaches the left or right edge of the screen
ScrollLeftOffset - how close Eric can get to the right edge of the screen before it scrolls left
ScrollRightOffset - how close Eric can get to the left edge of the screen before it scrolls right
SecretInk - the ink colour of the message box used to display a safe, bike or storeroom combination character
SecretPaper - the paper colour of the message box used to display a safe, bike or storeroom combination character
SkoolInkKey - the transparent colour used in the skool ink image
SpeechBubbleInk - the ink colour to use when drawing text in a speech bubble
SpeechBubbleKey - the transparent colour used in the speech bubble image (bubble.png)
SpeechBubbleInset - the inset (in pixels at scale 1) of the text window from the top-left of a speech bubble
SpeechBubbleLipCoords - the coordinates of the lip within the speech bubble image (bubble.png)
SpeechBubbleLipSize - the size of the speech bubble lip (width and height in tiles)
SpeechBubbleSize - the size of the bounding rectangle of a speech bubble, including the lip (width and height in tiles)
SpriteKey - the transparent colour used in the sprite matrix image
SpriteMatrixWidth - the number of sprites in a row of the sprite matrix image
Width - the width of the screen (in tiles)

Existem mais ficheiros de configuração e parâmetros que se podem mudar.
Veja a documentação na página oficial. Lá existe uma extensa quantidade de informação sobre o tema.

Espero que tenha gostado. Um Abraço a todos os que por cá passam regularmente.


Enhanced by Zemanta

1 comentário:

É favor manter a boa educação nos comentários. Qualquer comentário ofensivo, racista, desprestigioso, apenas com objectivo de inundar o blogue ou comentários de publicidade não solicitada serão eliminados. Serão aceites comentários em Português, Espanhol e Inglês. Comentarios en Portugues, Español y Ingles seran aceptados. Comments in Portuguese, Spanish and English will be accepted.