Avançar para o conteúdo principal

Mensagens

A mostrar mensagens de maio, 2012

Delegates

Um delegate pode ser definido como um ponteiro para uma função. O delegate encapsula o endereço de uma função no seu código. As funções associadas a eventos são um exemplo da utilização de delegates, quando o evento “acontece” é chamada a função para a qual o delegate aponta. Os delegates podem agrupar funções que são chamadas em conjunto. Para utilizarmos delegates começamos por definir um: Private Delegate Sub MinhaFuncao () Agora vamos criar a função que será associada ao delegate:     Private Sub EscreveDebug()         Debug .Print( "Olá mundo" )     End Sub De seguida criamos uma variável do tupo do delegate e associamos à função:       Dim funcDel As MinhaFuncao   Depois associamos a variável à respectiva função:      funcDel = New MinhaFuncao ( AddressOf EscreveDebug) Por fim executamos a função através do delegate:      funcDel.Invoke() Delegates Multicast Os delegates multicast permitem criar uma sequência de funções a serem chamadas quando o delegate é

Hashtables - Tabelas de Dispersão

As hashtables são, nas linguagens de programação modernas, uma das estruturas mais úteis para armazenar grandes quantidades de informação. As suas principais características são: Não são ordenadas, ou seja um ciclo de pesquisa sequencial pode obter os dados por qualquer ordem; São muito eficientes nas pesquisas, na maior parte das situações basta uma comparação para obter o valor a pesquisar, independentemente do número de elementos na tabela; Internamente cada elemento representa uma lista ligada; Ao inserir um elemento deve ser indicada uma chave da qual é calculado o código hash que servirá para indexar o elemento na tabela, muito importante, o código hash é obtido a partir da chave e não dos valores armazenados; Caso existe um elemento com a mesma chave o novo elemento inserido substitui o antigo; Para obter um elemento basta indicar a chave associada; A principal desvantagem é o espaço em memória que a tabela necessita. A plataforma .NET implementa dois tipos de hashtables: Dictio

PONG em Flash AS3.0

Mais um pequeno jogo para demonstrar algumas das funcionalidades do AS3.0. Para este exemplo vamos implementar uma versão do Pong. Para este Pong vamos criar a possibilidade de acelerar a bola com a raqueta e, para tornar o jogo mais difícil, quando se atingir uma determinada pontuação fazemos aparecer uma parede no meio do campo de jogo. O código é muito parecido com o jogo do post anterior, mas um pouco mais complicado. Para controlar a nossa raqueta utilizamos a seguinte função: function teclado(e:KeyboardEvent):void{ dir_j1=0; if (e.keyCode == Keyboard.UP){ if(jogador1.y>0) jogador1.y -=5; dir_j1=-5; } if (e.keyCode == Keyboard.DOWN){ if(jogador1.y<370) jogador1.y +=5; dir_j1=5; } } Agora está mais simples pois só percorremos as linhas, ou seja, a coluna nunca muda. A raqueta que é controlada pelo computador depende do seguinte código: function movepc():void { if (bola.y>jogador2.y) jogador2.y = jogador2.y + velocidade_y; if (bola.y<jogador2.y) jogador2

PHP e base de dados MS Access

O PHP tem uma ligação natural ao MySQL no entanto é possível utilizar outros formatos de base de dados, nomeadamente o MS Access. A via de ligação será o ODBC - Open Data Base Connectivity. No Windows através do Painel de Controlo acedemos às Ferramentas Administrativas e escolhemos Origem de Dados, no Windows 7 a opção está em Sistema e Segurança e depois Ferramentas Administrativas. Um problema que pode surgir nesta ferramenta é não existirem drivers (controladores) para o MS Access, mesmo tendo o MS Access instalado! Isto deve-se ao facto de o Windows ser 64bits e a aplicação e os respectivos drivers serem 32 bits, para resolver este problema devemos correr a mesma aplicação mas a versão de 32 bits que está em Agora que temos a versão certa da ferramenta devemos selecionar o separador Controladores para verificar se temos ou não o controlador do MS Access Confirmada que está a existência do driver vamos então criar uma ligação à nossa base de dados para que o PHP a possa manipular,

Um jogo simples em Flash e AS3.0

Agora para uma coisa totalmente diferente, um pouco de Flash e AS3.0. Este jogo muito simples tem como principal objetivo introduzir um pouco de código que permite gerir eventos do teclado, controlar imagens (sprites) totalmente por código, definir eventos associados a temporizadores (timers) e ainda gerar números aleatoriamente. O resultado final será qualquer coisa como isto: Então vamos a isso... Para começar vamos criar duas camadas (layers) na linha de tempo (Timeline) como se apresenta a seguir: Uma camada vai servir para inserir os objetos, neste caso três Clipes de Filme (Movieclips): a nossa nave, o inimigo e um projetil. Na outra camada vamos inserir o código que vamos utilizar. O movieclip que representa o inimigo vai ter o nome inimigo, o nosso será a nave e o projetil chamasse bala. O movieclip bala vai ficar invisível inicialmente, para isso utilizamos a propriedade alpha e definimos em 0. Começamos por associar uma função ao que teclamos, para isso fazemos:      stage.ad