Glaudiston 的个人资料Site pessoal de Glaudist...照片日志列表更多 工具 帮助
12月23日

Desafio, um jogo 2D até dia 23-12-2007 ... Feito!

No início deste mês aceitei um desafio do meu amigo Bill Guedes no forum programadoresdejogos.com.br, aqui está o desafio:
http://www.programadoresdejogos.com/forum/viewtopic.php?t=9193&postdays=0&postorder=asc&start=0

Se trata de um desafio para testar os conhecimento e capacidades de colocar estes conhecimentos em prática: "Quem consegue fazer um jogo do tipo space invaders até o dia 23 ?".
Como achei a idéia simples, e eu tinha outras prioridades, trabalhei pouco nela, só peguei firme nesta ultima semana, quando acordei do fato que o prazo estava acabando.

No final das contas, fiquei satisfeito com o resultado, fiz o jogo com usando o autotools, em bibliotecas divididas para o ambiente, o menu e o jogo em si.
Coloquei audio... e está bem jogável.

Sei que tem alguns detalhes errados, e falta algumas coisas do que eu havia pensado em fazer, mas já está bom. Pelo meno concluí a tempo.

Quem quiser testar este jogo "beta", pegue-o no meu projeto bombas.sf.net no link de downloads
12月10日

autotools parte2 - adicionando dependencias

Bem, no artigo anterior, já expliquei como funciona o autotools:
http://glaudiston.spaces.live.com/blog/cns!50A3054EE15AB96C!298.entry

Agora vou explicar como adicionar dependências.

Neste exemplo, vou puxar pro lado de desenvolvimento de games, usando SDL que é uma biblioteca portável, que tem funções de controle de hardware entre outras coisas que facilitam muito nossa vida, e outras bibliotecas derivadas do SDL, como o SDL_image para controle de imagens de vários formatos, o SDL_mixer para o controle de mid, wav, ogg e mp3, o SDL_gfx, para rotação e zoom de imagens ou filmes, o SDL_mpeg para reprodução de filmes... etc.

Vamos começar com a teoria:
Pelo que já vimos, você deve ter percebido que o autotools trabalha com macros, macros são funções prontas, programas que você passa um comando com parâmetros ou não e eles executam determinadas funções.
Você também já deve ter percebido que estas configurações são centralizadas nos arquivos configure.ac e Makefile.am. Sim... continua assim, porém vamos colocar mais um arquivo importante: o acinclude.m4 .

acinclude.m4:
    Este arquivo é uma forma de adicionar macros que podem ser usadas dentro do configure.ac, por exemplo: o Sam Lantinga, desenvolvedor do SDL, criou um arquivo chamado sdl.m4 que está no código fonte do SDL, você pode baixar este código na página do SDL em http://www.libsdl.org, e copiar este arquivo sdl.m4 para o nosso diretório base. depois disto é só adicionar sdl.m4 em nosso arquivo acinclude.m4.in ou acinclude.m4, adicionar o teste desta biblioteca no arquivo configure.ac e executar o autogen.sh
Depois de copiar o sdl.m4, só é necessário adionar uma linha com o conteudo sdl.m4 no acinclude.m4.in ... NÃO é preciso nada como #include sdl.m4 ... apenas o sdl.m4... depois disto o script de teste no configure.ac, deve ser colocado na parte de libraries é assim:
dnl Check for SDL 
SDL_VERSION=1.2.0
AM_PATH_SDL($SDL_VERSION,
:,
AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
)
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
LIBS="$LIBS $SDL_LIBS"
Para mais informações, consulte o artigo: http://www.samhart.com/snh/files/docs/sdl-kdev/sdl-kdev-mini-how2-2.html

Agora se tudo está certo, você pode executar nosso script de reconfiguração (vide artigo anteiror citado acima):
$ sh autogen.sh

O resultado esperado é:
 sh autogen.sh
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for sdl-config... /usr/bin/sdl-config
checking for SDL - version >= 1.2.0... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands

Observe que agora temos uma parte onde o SDL está sendo checado por uma versão superior à 1.2.0

Isto é suficiente pro SDL, mas e quando temos outras dependências que não nos dão as macros m4 prontas ?
A primeira coisa é procurar no google... muitas vezes, no código fonte não vem o arquivo m4, mas alguém criou e postou em algum lugar. Então, se você encontrar vai simplificar muito seu configure.ac da forma q fizemos acima. Mas se o google não achar ? como fazer ?

Neste caso, você pode criar seu arquivo m4, ou pode simplesmente adicionar o uma verificação no configure.ac, só q vai poluir um pouco nosso arquivo configure.ac que até então está bem simples.

Depois vou postar mais entrada a respeito disto: autotools, criando seu próprio m4.

Por hora é só. Tenho que fazer algum código também Tongue out

Abs,
Ton
12月7日

ifconfig não funciona??? net-tools!!!

Hahaaa!!!

Usando o LinuxFromScratch, e tentando executar alguns programas que configuram VPN, tive vários problemas, e testando, descobri que o problema é que o ifconfig que eu estava usando era o do netutils, e não o do net-tools... segue alguns:
'ifconfig: can not resolve`down`: No address associated with name"
"ifconfig: cannot resolve `up': No address associated with name"
"ifconfig eth0 up"
"ifconfig: can not resolve `up': Unknown host"
# ifconfig -a
ifconfig: option requires an argument -- a
Usage: ifconfig [OPTION]... [SYSTEM OPTION]...
Try `ifconfig --help' for more information.': No address associated with name"
"ifconfig: can not resolve `up': No address associated with name"
"ifconfig eth0 up"
"ifconfig: can not resolve `up': Unknown host"
# ifconfig -a
ifconfig: option requires an argument -- a
Usage: ifconfig [OPTION]... [SYSTEM OPTION]...

E o incrível, é q o google não acha nenhum resultado com a maioria destas pesquisas.

O LFS Book bem q me avisou pra não instalar o ifconfig do netutils... mas não disse q tinha ifconfig no net-tools tbm... então eu q fiquei quebrando a cabeça e consegui resolver com a ajuda do Guedes... valeu mais esta Bill!

resumindo, é só instalar o net-tools:
http://www.linuxfromscratch.org/blfs/view/stable/basicnet/net-tools.html

Abs