sexta-feira, 12 de agosto de 2011
Protótipo para jogo de labirinto
;***********************************************************
;GAME ENGINE LABIRINTO
;***********************************************************
; inicia o jogo
aprenda iniciar
mapa
andar
fim
; carrega o mapa
aprenda mapa
pc
carreguebitmap "mapabase2.bmp
fim
; define movimento de teclas e colisões
aprenda andar
un
ativetecla [atr "x car asciitecla
se :x = "o [mudeestadojanela [Janela de Comandos] 0][]
se :x = "p [mudeestadojanela [Janela de Comandos] 4][]
se :x = "w [pf 1][]
se :x = "s [pt 1][]
se :x = "a [pe 90][]
se :x = "d [pd 90][]]
; detecta colisão apartir da cor do pixel
se pixel = [0 0 0] [pt 10] []
objetivo
andar
fim
; define objetivo
aprenda objetivo
se pixel = [255 0 0] [tat dt pd 90 rotule [YOU WIN] []
fim
segunda-feira, 1 de agosto de 2011
Jogo de dados
Protótipo de jogo de dados feito com quatro procedimentos (dado, chave1, chave2 e joga)! Pode ser adaptado para várias funções, como um joguinho caça-níqueis, por exemplo! Agora só falta trabalhar o design da interface gráfica rs!!!!
;
; JOGO DE DADOS
;
;use este primeiro procedimento para iniciar o jogo
aprenda dado
dt
rjc
; sorteia um número random de 1 a 6:
atr "y sortel [1 2 3 4 5 6]
; customiza saída para erros:
atr "trataerro [esc []]
; cria caixa de questão e atribui variável "x" pra ela:
atr "x pri caixadequestão [Faça sua aposta!][Pense em um número de 1 a 6 e jogue o dado!]
; confere se entrada digitada é número
se énúmero :x [chave1] [esc [Favor digitar apenas números!]esc [Tente novamente!] pare]
fim
aprenda chave1
; confere se entrada digitada é menor que 1
se :x < 1 [esc [Este não é um número válido!] esc [Tente novamente!] pare] [chave2]
fim
aprenda chave2
; confere se entrada digitada é maior que 6
se :x > 6 [esc [Este não é um número válido!] esc [Tente novamente!] pare] [joga]
fim
aprenda joga
rjc
;joga o dado
esc [O dado foi lançado e você apostou em:]
espere 60
esc :x
espere 60
esc []
esc [O dado parou e o número é:]
espere 60
esc :y
espere 100
esc []
; confere resultado
se :x = :y [esc [Parabéns! Você acertou!]] [esc [Você errou!]]
atr "z caixasimnão [Fim do jogo] [Gostaria de jogar novamente?]
se :z = "verd [dado][pare]
fim
;
; JOGO DE DADOS
;
;use este primeiro procedimento para iniciar o jogo
aprenda dado
dt
rjc
; sorteia um número random de 1 a 6:
atr "y sortel [1 2 3 4 5 6]
; customiza saída para erros:
atr "trataerro [esc []]
; cria caixa de questão e atribui variável "x" pra ela:
atr "x pri caixadequestão [Faça sua aposta!][Pense em um número de 1 a 6 e jogue o dado!]
; confere se entrada digitada é número
se énúmero :x [chave1] [esc [Favor digitar apenas números!]esc [Tente novamente!] pare]
fim
aprenda chave1
; confere se entrada digitada é menor que 1
se :x < 1 [esc [Este não é um número válido!] esc [Tente novamente!] pare] [chave2]
fim
aprenda chave2
; confere se entrada digitada é maior que 6
se :x > 6 [esc [Este não é um número válido!] esc [Tente novamente!] pare] [joga]
fim
aprenda joga
rjc
;joga o dado
esc [O dado foi lançado e você apostou em:]
espere 60
esc :x
espere 60
esc []
esc [O dado parou e o número é:]
espere 60
esc :y
espere 100
esc []
; confere resultado
se :x = :y [esc [Parabéns! Você acertou!]] [esc [Você errou!]]
atr "z caixasimnão [Fim do jogo] [Gostaria de jogar novamente?]
se :z = "verd [dado][pare]
fim
quinta-feira, 14 de julho de 2011
Timer
Um método simples de implementar um temporizador usando o comando FAÇAATÉ:
façaaté [pd 90 atribua "x :x-1 rotule :x espere 10 tat][:x<0]
Lembrando que, no caso acima (temporizador de contagem regressiva), deve-se declarar antes o valor de X, sendo este valor maior do que X. Este método poderá ser facilmente adaptado para outros fins, podendo gerar até um sistema de pontuação para jogos!
façaaté [pd 90 atribua "x :x-1 rotule :x espere 10 tat][:x<0]
Lembrando que, no caso acima (temporizador de contagem regressiva), deve-se declarar antes o valor de X, sendo este valor maior do que X. Este método poderá ser facilmente adaptado para outros fins, podendo gerar até um sistema de pontuação para jogos!
terça-feira, 5 de julho de 2011
Colisão
Tava quebrando a cabeça tentando fazer colisão no logo, e dando uma funçada no help achei as funções coorx e coory, que, como os nomes, sugerem, te dão a posição da tartaruga no eixo x e y respectivamente. Aí ficou mais fácil, bastanto definir uma área limite e usar as condicionais "se"!
Segue aqui o código para colisão no betalogo:
aprenda coli
se coorx > 100 [pt 10 pd sortnum 90 pf 1][pf 1]
se coorx < -100 [pt 10 pd sortnum 90 pf 1][pf 1]
se coory > 100 [pt 10 pd sortnum 90 pf 1][pf 1]
se coory < -100 [pt 10 pd sortnum 90 pf 1][pf 1]
coli
fim
Segue aqui o código para colisão no betalogo:
aprenda coli
se coorx > 100 [pt 10 pd sortnum 90 pf 1][pf 1]
se coorx < -100 [pt 10 pd sortnum 90 pf 1][pf 1]
se coory > 100 [pt 10 pd sortnum 90 pf 1][pf 1]
se coory < -100 [pt 10 pd sortnum 90 pf 1][pf 1]
coli
fim
Assinar:
Postagens (Atom)