Marcelo-Poa
Membro Júnior-
Posts
10 -
Cadastrado em
-
Última visita
Reputação
1-
Outro Usando um script para consultar o registro do windows e instalar o programa.
Marcelo-Poa respondeu ao tópico de Correr em Programação - outros
Oi, acho que voce quer algo similar a isso: reg Query HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName>temp.dat for /f "usebackq skip=2 tokens=1,2,3* delims=" %%a in (temp.dat) do set valuereg=%%a set valuereg=%valuereg:~26,15% Del /f /q /a temp.dat >nul 2>&1 if not "%valuereg%"=="Lucida Console" echo. nao pause Esse script verifica se a fonte do cmd é Lucida Console é só adaptar para sua chave de registro e o comprimento certo da variavel valuereg! -
[BASIC] Movimentar nave em um jogo
Marcelo-Poa respondeu ao tópico de Midori em Programação - outros
Depois vendo o post novamente me dei conta que você não quer usar inkey$, pois não da para usar duas teclas ao mesmo tempo, analisando usa rotina é muito boa, então resolvi adaptar para meu game Consegui fazer funcionar, essa sua rotina complica pois ao apertar uma tecla ela tende a fazer muitas contagens no loop, dando chamada de função inválida por facilmente ultrapassar os limites da contagem, uma solução é usar o _LIMIT depois usar um desvio no loop para contar numero por numero, bom deixo uma rotina básica, para alguém que esteja a procura disso. CONST KL = 75 CONST KR = 77 CONST KU = 72 CONST KD = 80 CONST KCL = &H40 'LEFT CONST KCR = &HA 'RIGHT CONST KCU = &H4 'UP CONST KCD = &H1 'DOWN scrennn% = 1000 '------------- velocit= items, velocit2 = square velocit% = 12 velocit2% = 20 PALETTE 0, 0 ' -------------------------------- Creating items ' -------------------------------- Creating test item Test$ = STRING$(2, CHR$(1)) Xtest% = 5 YTest% = 5 ' -------------------------------- Defining square location a% = 41 b% = 22 ' ------------------------------ start start: IF countmove% = velocit2% THEN IF T = KCL THEN a% = a% - 1 IF T = KCR THEN a% = a% + 1 IF T = KCD THEN b% = b% + 1 IF T = KCU THEN b% = b% - 1 IF T = KCD + KCR THEN a% = a% + 1 IF T = KCD + KCL THEN a% = a% - 1 IF T = KCU + KCR THEN a% = a% + 1 IF T = KCU + KCL THEN a% = a% - 1 END IF IF scrennn% = 1000 THEN GOTO home ' -------------------------------- home screen home: CLS IF a% = 3 THEN a% = a% + 1 IF a% = 79 THEN a% = a% - 1 IF b% = 25 THEN b% = b% - 1 IF b% = 1 THEN b% = b% + 1 COLOR 1, 7 FOR i% = 1 TO 24 LOCATE i%, 1 PRINT STRING$(2, CHR$(219)); NEXT i% FOR i% = 1 TO 24 LOCATE i%, 79 PRINT STRING$(2, CHR$(219)); NEXT i% LOCATE 1, 1 PRINT STRING$(80, CHR$(219)); LOCATE 25, 1 PRINT STRING$(80, CHR$(219)); GOTO items ' ----------------------------------------items instructions items: ' ---------------------------------------- show items ' ---------------------------------------- Square item COLOR 1, 7 LOCATE b%, a% PRINT STRING$(1, CHR$(219)); LOCATE b%, a% - 1 PRINT STRING$(1, CHR$(219)); ' ---------------------------------------- Test item COLOR 0, 7 LOCATE YTest%, Xtest% PRINT Test$; GOTO keyloop ' ---------------------------------------------------------------------Movement of objects move: Xtest% = Xtest% + 1 IF Xtest% = 77 THEN Xtest% = 2 GOTO start keyloop: ' -------------------------------------------------------------------------------------- loop keyboard IF countmove% = velocit2% THEN countmove% = 0 IF T = KCD + KCR THEN b% = b% + 1: GOTO start IF T = KCD + KCL THEN b% = b% + 1: GOTO start IF T = KCU + KCR THEN b% = b% - 1: GOTO start IF T = KCU + KCL THEN b% = b% - 1: GOTO start END IF DO countmove% = countmove% + 1 IF countmove% = velocit% GOTO move IF countmove% = velocit2% GOTO start _LIMIT 900 K = INP(&H60) IF K = KL THEN T = T OR KCL ELSEIF K = (KL + 128) THEN T = T AND NOT KCL END IF SELECT CASE K CASE 1: END CASE KL: T = T OR KCL CASE KL + 128: T = T AND NOT KCL CASE KR: T = T OR KCR CASE KR + 128: T = T AND NOT KCR CASE KU: T = T OR KCU CASE KU + 128: T = T AND NOT KCU CASE KD: T = T OR KCD CASE KD + 128: T = T AND NOT KCD END SELECT LOOP -
[BASIC] Movimentar nave em um jogo
Marcelo-Poa respondeu ao tópico de Midori em Programação - outros
Ola, apesar de ter mais de ano a postagem, vou postar pois pode ser útil caso ainda deseje alterar ou continuar seu projeto, ou mesmo para outros que procurem por isso! Também estive fazendo um game baseado na atari, o primeiro problema que tive foi com movimento do personagem, pesquisando um pouco encontrei a base principal para executar esse movimento sem problemas de conflito! O fundamental no qbasic e ter a rotina de teclado correta, a partir disso fica bastante descomplicado fazer qualquer coisa: a rotina e a seguinte: start: DO _LIMIT 160 Cmmnd$ = UCASE$(INKEY$) LOOP UNTIL Cmmnd$ = CHR$(O) + "H" OR Cmmnd$ = CHR$(O) + "P" OR Cmmnd$ = CHR$(O) + "M" OR Cmmnd$ = CHR$(O) + "K" OR Cmmnd$ = CHR$(27) IF Cmmnd$ = CHR$(0) + "K" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(0) + "M" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(0) + "P" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(0) + "H" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(27) GOTO finish GOTO start finish: Cada vez que você pressiona uma tecla a rotina do loop é interrompida, e continua nos IF que vai verficar a tecla que foi precionada, e executar um comando, nesse caso o print mostrando qual codigo da tecla que foi precionada, nesse exemplo as teclas de seta, e ESC para interromper a rotina e sair. Observe que dentro da rotina do loop existe o valor _LIMIT 160, ele corresponde a um atraso na velocidade do loop é necessário, também porque ajusta o loop a velocidade processador da maquina, sem isso você pode ter problemas quando usando o programa em computadores diferentes. http://www.qb64.net/wiki/index.php/LIMIT Se quiser pode dar uma olhada no jogo que criei, deixei disponível o código em basic, rotina completa, e algumas rotinas básicas para analise. https://www.youtube.com/channel/UCw4fZc7jxV_dHS1OLDPvxnw https://mega.nz/#F!So4l0JaL!rpwQ-JK887H8Y18KHjJc0w Tem o arquivo "Minimum of instruction.bas" que possui uma rotina de múltiplos movimentos. -
Para quem tem interesse em organizar seus arquivos usando disco virtual (Vhd), disponibilizo um aplicativo para criação do disco, o aplicativo usa somente os recursos do windows diskpart e o registro para criar e gerenciar os discos, o aplicativo foi desenvolvido para inserir remover os discos Vhd como se fossem um hd externo. É possível também habilitar o Vhd para ser montado durante a inicialização do windows. O aplicativo pode ser usado fixo na máquina ou de modo portátil sem instalação alguma! Introdução ao uso: https://www.youtube.com/watch?v=ZvSGWRm_iIs Download do aplicativo: https://mega.nz/#F!r5AC0BCR!rVGixuPkSb-LIK-f_7Ryvw
-
Variável númerica (criar sequencia de pastas ex: 001,002)
Marcelo-Poa respondeu ao tópico de Thyago Barbosa em Versões até Windows 8
@Thyago Barbosa Nas linhas if a variável excluir e a variável b tem que ter aspas, caso a sequencia numérica digitada for menor que quantidade de linhas de if o programa vai dar erro e fechar, pois a variável excluir fica fazia. -
Variável númerica (criar sequencia de pastas ex: 001,002)
Marcelo-Poa respondeu ao tópico de Thyago Barbosa em Versões até Windows 8
Esse array desconheço, se existiu e coisa do ms-dos antigo Pensei um pouco o que da para fazer é criar uma nova variável e digitar as pastas que você quer excluir nesse método a variável é quebrada em partes: echo off cls set /p qf="digite a quantidade de pastas: " set /p excluir="digite a sequencia de pastas a excluir: " :start set /a x=x+1 set b=00%x% if "%excluir:~0,3%"=="%b:~-3%" goto start if "%excluir:~4,3%"=="%b:~-3%" goto start if "%excluir:~8,3%"=="%b:~-3%" goto start if "%excluir:~12,3%"=="%b:~-3%" goto start if "%excluir:~16,3%"=="%b:~-3%" goto start mkdir %b:~-3% if %x% NEQ %qf% goto start pause se você digitar em excluir a sequencia 010,015,023 essas pastas não são criadas no primeiro if excluir você esta lendo os três primeiros caracteres no segundo começa a ler depois do quarto caractere, tres e depois dele no terceiro começa a ler depois do oitavo caractere, tres e depois dele essa sequencia vai ate onde você quiser. -
Variável númerica (criar sequencia de pastas ex: 001,002)
Marcelo-Poa respondeu ao tópico de Thyago Barbosa em Versões até Windows 8
@Thyago Barbosa -
Variável númerica (criar sequencia de pastas ex: 001,002)
Marcelo-Poa respondeu ao tópico de Thyago Barbosa em Versões até Windows 8
Já tive um problema como esse, acontece que set /a faz operações matemáticas as coisas são interpretadas de modo para matemática então esse modo contagem não funciona a solução é criar uma outra variável b para tratar o resultado como cadeia de caracteres! set / a a=a+1 set b=00%a% Nesse caso você cria uma variável b com dois zeros na frente depois o resultado de a, nas primeiras nove contagens o resultado de b é satisfatório porém quando chegar ao numero 10 fica 0010, e assim não é como você quer, a solução é não usar a variável b completamente e sim somente os três últimos caracteres, então a variável b fica: %b:~-3% criando a pasta: md %b:~-3% -
for /f "delims=-" %%i in (c:\lista.txt) do echo>>c:\temp.txt %%i Nesse caso cria um novo arquivo sem o sinal -
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais