Ir ao conteúdo
  • Cadastre-se

Lucca Rodrigues

Membro Pleno
  • Posts

    1.081
  • Cadastrado em

  • Última visita

Tudo que Lucca Rodrigues postou

  1. @L.Azevedo Não seriam nem 10 reais pra fazer. Com esses 50, você poderia comprar os componentes e um ferro de solda. Dessa forma, além de você aprender a soldar, seria algo que você mesmo confeccionou! É por isso que esses projetinhos são interessantes. Aqui está um 555 astável já com o amplificador push-pull que a @Isadora Ferraz mencionou, este te dá de uns 40 a 50 KHz:
  2. @vangodp Além de dar uma ideia: alerte sobre os erros. Eventualmente se esquece de alguma coisa, e pelo que o autor da postagem disse, ele está estudando C/C++ do início.
  3. @L.Azevedo Sensor PIR + um clock com 555? Se não quiser ativar você mesmo o clock, da pra usar esse sensorzinho. O clock é só um 555 no modo astável, e o sensor PIR seria para ativá-lo. Daria também para colocar um delay off (com 555 também). Essa é minha ideia.
  4. @Welington Silva 2002 Tente isso: #include <iostream> #include <string> using namespace std; int main(){ string nome; cout<<"Digite seu nome: \n"; cin>>nome; if(nome == "Pedro"){ cout<<"Seu par perfeito é... (Calculando, aguarde) \n"; cout<<"Natalia"; } return 0; } @vangodp Isso funcionaria se ele tivesse usado std::string pra começar. Também funcionaria com char: "nome" seria um array, e "pedro" uma string. Usa-se strcmp para isso: caso sejam iguais, ele retorna 0.
  5. @João Paulo Pierot A menos que seu nome, curso, etc, sejam números inteiros, não use "int". Você deveria usar char, e na maioria das vezes, eu uso para aquela confirmação de: "você quer rodar seu programa novamente (S/N)?" Sabe? Se você quer inserir uma palavra, precisa declarar uma capacidade de armazenamento, eu vou colocar 50, ok? Já deve ser o suficiente. A função scanf permite fazer leitura de strings usando %s, então para todos, usaremos isso. Não use apenas um %s quando quiser sair com mais de 1 dado, mesmo que sejam todos char, teremos que colocar um %s para cada. #include <stdio.h> #include <conio.h> #include <string.h> int main() { char nome[50]; char curso[50]; char disciplina[50]; char turno[50]; char periodo[50]; char ano[50]; printf ("digite seu nome: "); scanf("%s",&nome); printf ("\ndigite seu curso: "); scanf("%s",&curso); printf ("\ndigite sua disciplina: "); scanf("%s",&disciplina); printf ("\ndigite seu periodo: "); scanf("%s",&periodo); printf ("\ndigite seu turno: "); scanf("%s",&turno); printf ("\ndigite seu ano: "); scanf("%s",&ano); printf ("\nseus dados são: %s, %s, %s, %s, %s, %s", nome,curso,disciplina,periodo,turno,ano); return 0; }
  6. @Gabriel Aguiar Vieira Faz tempo que não programo em portugol, mas tem vários erros no seu algorítimo. De cara eu já vejo "d=(b^2)-(4*a*c)", no lugar de "=", use "<-", que significa tal coisa recebe isso. Também não use "{}", isso não é C, é portugol. Você tem que usar "se (condição) entao". Enfim, prefiro fazer meu próprio do que corrigir o seu. aqui está: Algoritmo "Bhaskara" // // // Descrição : Calcular Bhaskara // Autor(a) : Fulano // Data atual : 14/03/2020 Var // Seção de Declarações das variáveis a, b, c, X1, X2, delta : real Inicio // Seção de Comandos, procedimento, funções, operadores, etc... Escreva ("Entre com o valor de a:") Leia (a) Escreva ("Entre com o valor de b:") Leia (b) Escreva ("Entre com o valor de c:") Leia (c) delta <- (b*b-(4*a*c)) se (delta < 0) entao escreva ("As raizes são complexas.") senao se (delta = 0) entao X1 <- (-b+raizq(delta))/2*a escreva ("Possui 1 raiz real e 1 raiz complexa. A raiz X1 é:", X1) senao se (delta > 0) entao X1 <- (-b+raizq(delta))/2*a X2 <- (-b-raizq(delta))/2*a escreva ("As raizes são:", X1, X2) fimse fimse fimse Fimalgoritmo
  7. @olliver.soul É de 50V, modelo Z5V. Para esse modelo, menor capacitância é 4700pF. Este ai é de 22nF.
  8. @Sérgio Lembo Em "1023", ele leva 4 s 374 ms agora, deveriam ser 250 ms. No meio, o delay fica próximo de 1 segundo, mas em "0" continua 3 segundos, próximo de "1023" chega a beirar os 5 segundos. Continua não mostrando nada no monitor serial. Em vez disso, troquei -250/93 por -2.688. Nesta forma, o resto não é perdido, certo? Se no mínimo, apenas a terceira casa decimal fosse perdida, ele mostraria 258 milissegundos, mas está mostrando 252 como deveria, então acho que está certo. De fato me esqueci dos limites das operações no arduino, e mesmo assim, não estou familiarizado com os mesmos ainda. Obrigado por me lembrar.
  9. @O Pequeno Príncipe Em 1990, a maioria dos conversores catalíticos contava com platina para reduzir as emissões de escapamentos de carros, mas, embora esse metal ainda seja importante, o paládio é agora o principal ingrediente, porque é ainda mais eficiente na remoção de hidrocarbonetos não queimados e parcialmente queimados do combustível. Atualmente, o paládio é cada vez mais utilizado em aparelhos elétricos, como televisores de tela ampla, computadores e telefones celulares, na forma de minúsculos capacitores de cerâmica multicamada, dos quais mais de 400 bilhões são produzidos a cada ano. O paládio é usado como material de eletrodo em capacitores de cerâmica multicamada (MLCC) devido às suas excelentes propriedades condutoras. É também usado como material de revestimento alternativo ao ouro para conectores, pois possui uma densidade mais baixa e, portanto, é necessário menos peso de metal para um revestimento de espessura semelhante.
  10. Boa tarde. Estou tentando fazer um metrônomo com arduino, é basicamente assim: Tem um dip switch de 4 vias, cada via faz 1 led apagar. São 4 leds no total, eles acendem em sequência como um knight rider, e cada vez que um acende, é reproduzido uma frequência, sendo que o primeiro led é mais agudo. Então, acionando a primeira via do dip, 4 leds acendem em sequência e isso fica em loop, acionando a segunda, apenas 3 leds, e assim por diante. Ele tem que ser de 20 à 240 bpm, isso é 1/3 Hz à 4 Hz, ou seja, 3000 ms à 250 ms de delay. Então um potenciômetro controla a frequência, e também tem um pra controlar o volume do falante. Liguei o potenciômetro da frequência no A0, mas queria limitar a frequência pra faixa que eu queria. Não conheço muito de arduino, o que eu fiz foi o seguinte: como o análogo lê valores inteiros entre 0 e 1023, fiz uma equação matricial, obtive que x = -250/93 e y = 3000. 1023 * (-250/93) + 3000 = 250, e 0 * (-250/93) + 3000 = 3000, assim, eu estabeleci o intervalo. Não sei se isso é gambiarra, mas foi o que eu pensei em fazer kkk. Não deu muito certo, quero dizer, o intervalo ficou entre 1/3 Hz e 1 Hz no simulador, e deveria ir até 4 Hz. Ele também não mostra nada no monitor serial, não sei o motivo. Alguém teria alguma dica, tanto para resolver esse problema, quanto para implementar o metrônomo com mais alguma função interessante? //Teste metrônomo #define NOTE_C4 262 #define NOTE_D4 294 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_G4 392 #define NOTE_C5 523 int analogPin = A0; int val = 0; void setup() { Serial.begin(9600); pinMode(0, INPUT); pinMode(1, INPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(8, OUTPUT); } void loop() { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); val = analogRead(analogPin); Serial.println(val); recomecar: //Verifica a via do dip novamente int button = digitalRead(0); //Via 1 if( button == 1){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); while (analogRead(A0) != 0) { digitalWrite(2, LOW); digitalWrite(5, HIGH); tone(8, NOTE_G4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(5, LOW); digitalWrite(4, HIGH); tone(8, NOTE_E4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(4, LOW); digitalWrite(3, HIGH); tone(8, NOTE_E4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(3, LOW); digitalWrite(2, HIGH); tone(8, NOTE_E4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm goto recomecar; } } int button2 = digitalRead(1); //Via 2 if( button2 == 1){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); while (analogRead(A0) != 0) { digitalWrite(3, LOW); digitalWrite(5, HIGH); tone(8, NOTE_G4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(5, LOW); digitalWrite(4, HIGH); tone(8, NOTE_E4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(4, LOW); digitalWrite(3, HIGH); tone(8, NOTE_E4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm goto recomecar; } } int button3 = digitalRead(6); //Via 3 if( button3 == 1){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); while (analogRead(A0) != 0) { digitalWrite(4, LOW); digitalWrite(5, HIGH); tone(8, NOTE_G4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(5, LOW); digitalWrite(4, HIGH); tone(8, NOTE_E4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm goto recomecar; } } int button4 = digitalRead(7); //Via 4 if( button4 == 1){ digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); while (analogRead(A0) != 0) { digitalWrite(5, LOW); tone(8, NOTE_G4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm digitalWrite(5, HIGH); tone(8, NOTE_G4, 80); delay(analogRead(A0)*(-250/93)+3000); //De 20 à 240 bpm goto recomecar; } } }
  11. @CarlosCarrera Só uma ideia aqui que eu tive: se você quer contar de 0 a 9, daria pra alimentar o circuito com um delay off com 555, assim, por exemplo, se o clock fosse de 1Hz, como são 10 leds, o ciclo seria de 10 segundos, aí você poderia alimentar o circuito com um delay off de 10 segundos, então depois de 1 ciclo, os leds apagam.
  12. Olá. Gostaria de saber se há algum fator que faria com que o seguinte não funcionasse: Queria usar um transmissor de áudio por IR com uma escuta de transistor, pra tentar, ao falar, transmitir o áudio, esses são os circuitos da escuta e do transmissor IR, respectivamente, o primeiro eu já testei e sei que funciona, minha dúvida é ao introduzir ele ao transmissor, se irá funcionar:
  13. @Renato.88 Deve ser gambiarra, mas quando eu liguei o Q10 no Q5 no laboratório deu certo kk, eu achei que iria multiplicar 1024 por 32 e resultaria em divisão de 32768. Vou usar um 4013 na saída de 2Hz então.
  14. @Renato.88 Por esse link é mais fácil de visualizar, mas acho que o erro mesmo é no clock, teria que ser de 1Hz, pois não faria sentido ser outro valor, vou recriar no proteus pra ter certeza, não fiz isso antes porque a versão gratuita não salva, uma pena ter que perder a montagem toda. De qualquer forma, acho que seria melhor usar um cristal de relógio em si, fazendo um circuito com 4060 sai 1Hz certinho, já com o 555, o erro é bem maior.
  15. Olá, gostaria de tirar algumas dúvidas acerca do relógio digital abaixo: Eu imagino que seja um relógio de 24h, certo? Caso não seja, poderiam me dar alguma explicação? Entendo que os displays dos segundos estão configurados para contar de 0~9 a unidade e de 0~5 a dezena, para os minutos é a mesma coisa, já para as horas é um pouco diferente, depois isso tudo é levado para decodificador 7447 e passado para o display. Porque o clock usado é de aproximadamente 100Hz (cap. 1µF, Res1. 4.7K, Res2. 4.7K)? Não deveria ser de 1Hz? Acho que poderia ser um erro do autor.
  16. @rmlazzari58 Sim, mas no caso a chave só tem 2 posições, então quando o circuito for alimentado, a chave já vai estar em uma delas, iniciando um dos ciclos. O que tentei fazer foi justamente isso, só que por conta do simulador ser ruim, não me deixa visualizar o resultado. @Isadora Ferraz É uma longa história, eu e meus amigos jogávamos Minecraft antigamente, e como nosso professor acabou de nos instruir a cerca do 555 no modo monoestável, a gente queria tentar recriar os circuitos do jogo com o timmer. Acontece que no jogo, ativando uma alavanca, com o uso de um repetidor (delay de 1 à 4 segundos), um pistão seria acionado, desativando, o pistão retorna à posição inicial com o mesmo delay que acionou.
  17. Olá. Estou querendo fazer um projeto, o funcionamento dele seria assim: Utilizando uma chave H-H de 2 posições, em uma das posições, será acionado um delay on de 1 à 4 segundos, sua saída irá acionar um delay off de 1 segundo que irá ligar um motor. Na outra posição da chave, será acionado outro delay on de 1 à 4 segundos que irá acionar um delay off de 1 segundo, porém dessa vez, irá inverter o giro do motor. Tentei fazer isso com 4 CI's 555 e uma ponte H de NPN's, não sei se fiz certo, e também o fato de eu ter feito num simulador que apresenta os componentes como eles são, não sua simbologia, que seria mais fácil de analisar, só torna mais bagunçado. Agradeço por qualquer dica ou sugestão.
  18. @Semnet Pode sim, você utiliza as funções para organizar o programa, o ideal seria montar seu código com elas, mas não são totalmente indispensáveis. Caso queira um material de apoio, deixarei os slides do meu professor para você dar uma olhada: Apoio1.pptx Apoio2.pdf
  19. Preciso atribuir imagens às plataformas, como faço isso? from pygame import * import random window_x = 500 window_y = 550 init() window = display.set_mode((window_x, window_y)) display.set_caption('Cloud Jumper') clock = time.Clock() class Stick_Man: def __init__(self): self.crouch = image.load('mario.png') self.fall = image.load('mario.png') self.jumping_right = image.load('mario.png') self.jumping_left = transform.flip(self.jumping_right, True, False) self.stand = image.load('mario.png') self.reset() def reset(self): self.speed_x = 0 self.speed_y = 0 self.max_speed_x = 5 self.max_speed_y = 15 self.x_acceleration = 0.5 self.img = self.jumping_right self.jump_speed = 15 scale = 7 self.width, self.height = 7 * scale, 12 * scale self.scale = scale self.x = (window_x - self.width) / 2 self.y = window_y - self.height def update(self,p): self.side_control() self.physics(p) self.move() self.show() self.x += self.speed_x self.y -= self.speed_y return (self.img, (self.x, self.y, self.width, self.height)) def physics(self, p): on = False for colour, rect in p: x,y,w,h = rect #X range if self.x + self.width / 2 > x and self.x - self.width / 2 < x + w: #Y range if self.y + self.height >= y and self.y + self.height <= y + h: if self.speed_y < 0: on = True if not on and not self.y >= window_y - self.height: self.speed_y -= 0.5 elif on: self.speed_y = self.jump_speed else: self.y = window_y - self.height self.speed_x = 0 self.speed_y = 0 if self.x != (window_x - self.width) / 2: if self.x > (window_x - self.width) / 2: self.x = max((window_x - self.width) / 2, self.x - 6) else: self.x = min((window_x - self.width) / 2, self.x + 6) else: keys = key.get_pressed() if keys[K_SPACE]: self.speed_y = self.jump_speed def side_control(self): if self.x + self.width < 0: self.x = window_x - self.scale if self.x > window_x: self.x = -self.width def show(self): if self.speed_y > 0: if self.speed_x > 0: self.img = self.jumping_right elif self.speed_x < 0: self.img = self.jumping_left else: self.img = self.fall def slow_character(self): if self.speed_x < 0: self.speed_x = min(0, self.speed_x + self.x_acceleration / 6) if self.speed_x > 0: self.speed_x = max(0, self.speed_x - self.x_acceleration / 6) def move(self): keys = key.get_pressed() if not self.y >= window_y - self.height: if keys[K_LEFT] and keys[K_RIGHT]: self.slow_character() elif keys[K_LEFT]: self.speed_x -= self.x_acceleration elif keys[K_RIGHT]: self.speed_x += self.x_acceleration else: self.slow_character() self.speed_x = max(-self.max_speed_x, min(self.max_speed_x, self.speed_x)) self.speed_y = max(-self.max_speed_y, min(self.max_speed_y, self.speed_y)) platform_spacing = 100 class Platform_Manager: def __init__(self): self.platforms = [] self.spawns = 0 self.start_spawn = window_y scale = 3 self.width, self.height = 24 * scale, 6 * scale def update(self): self.spawner() return self.manage() def spawner(self): if window_y - info['screen_y'] > self.spawns * platform_spacing: self.spawn() def spawn(self): y = self.start_spawn - self.spawns * platform_spacing x = random.randint(-self.width, window_x) self.platforms.append(Platform(x,y,random.choice([1,-1]))) self.spawns += 1 def manage(self): u = [] b = [] for i in self.platforms: i.move() i.change_direction() b.append(i.show()) if i.on_screen(): u.append(i) self.platforms = u return b class Platform: def __init__(self,x,y,direction): self.x = x self.y = y self.direction = direction self.speed = 2 self.colour = (random.randint(0,255), random.randint(0,255), random.randint(0,255)) scale = 3 self.width, self.height = 24 * scale, 6 * scale def move(self): self.x += self.speed * self.direction self.change_direction() def change_direction(self): if self.x <= 0: self.direction = 1 if self.x + self.width >= window_x: self.direction = -1 def on_screen(self): if self.y > info['screen_y'] + window_y: return False return True def show(self): return ((0,0,0), (self.x, self.y, self.width, self.height)) def random_colour(l,h): return (random.randint(l,h),random.randint(l,h),random.randint(l,h)) def blit_images(x): for i in x: window.blit(transform.scale(i[0], (i[1][2],i[1][3])), (i[1][0], i[1][1] - info['screen_y'])) def event_loop(): for loop in event.get(): if loop.type == KEYDOWN: if loop.key == K_ESCAPE: quit() if loop.type == QUIT: quit() f = font.SysFont('', 50) def show_score(score, pos): message = f.render(str(round(score)), True, (100,100,100)) rect = message.get_rect() if pos == 0: x = window_x - rect.width - 10 else: x = 10 y = rect.height + 10 window.blit(message, (x, y)) info = { 'screen_y': 0, 'score': 0, 'high_score': 0 } stick_man = Stick_Man() platform_manager = Platform_Manager() while True: #MATH THINGS event_loop() platform_blit = platform_manager.update() stick_blit = stick_man.update(platform_blit) info['screen_y'] = min(min(0,stick_blit[1][1] - window_y*0.4),info['screen_y']) info['score'] = (-stick_blit[1][1] + 470)/50 #print(stick_blit[1][1], info['screen_y']) if stick_blit[1][1] - 470 > info['screen_y']: info['score'] = 0 info['screen_y'] = 0 stick_man = Stick_Man() platform_manager = Platform_Manager() clock.tick(60) #DISPLAY THINGS window.fill((255,255,255)) blit_images([stick_blit]) for x in platform_blit: i = list(x) i[1] = list(i[1]) i[1][1] -= info['screen_y'] draw.rect(window, i[0], i[1]) info['high_score'] = max(info['high_score'], info['score']) show_score(info['score'],1) show_score(info['high_score'],0) display.update()
  20. @curto_circuito É um trimpot de carvão vertical, tem a mesma função de um potenciômetro, mas é menor e normalmente não precisa ser ajustado, deixando esse papel para o próprio potenciômetro.
  21. Olá. O jogo que pretendo fazer é o seguinte: será um jogo no qual o jogador terá que saltar em plataformas (nuvens) e acumular pontos, o que tenho até agora é um personagem que se movimenta pela tela em todas as direções e ao atingir uma nuvem, o jogo se encerra. O placar aumenta graduavelmente, ao terminar de uma partida e iniciar de outra, a melhor pontuação é mostrada, caso o jogador atinja uma melhor pontuação, esta é atualizada. O jogo se inicia ao apertar qualquer tecla, e reinicia da mesma forma, o que preciso é de qualquer ajuda a respeito de como faria para o personagem efetuar o pulo, talvez teria que usar um pouco da teoria daquele caso especial do MRUV, o movimento em queda livre. Também gostaria de saber como faria para estabelecer limites para as plataformas, como feito para a janela do jogo (o jogador é impossibilitado de sair da janela). Eu dei uma lida num código de um jogo chamado Dodger, a partir dele é que adaptei para o meu, mas não mudei muita coisa, agradeço por qualquer ajuda e esclarecimento. import pygame, random, sys from pygame.locals import * WINDOWWIDTH = 800 WINDOWHEIGHT = 600 TEXTCOLOR = (20, 150, 255) BACKGROUNDCOLOR = (0, 0, 0) FPS = 40 BADDIEMINSIZE = 120 BADDIEMAXSIZE = 180 BADDIEMINSPEED = 5 BADDIEMAXSPEED = 8 ADDNEWBADDIERATE = 50 PLAYERMOVERATE = 10 def terminate(): pygame.quit() sys.exit() def waitForPlayerToPressKey(): while True: for event in pygame.event.get(): if event.type == QUIT: terminate() if event.type == KEYDOWN: if event.key == K_ESCAPE: terminate() return def playerHasHitBaddie(playerRect, baddies): for b in baddies: if playerRect.colliderect(b['rect']): return True return False def drawText(text, font, surface, x, y): textobj = font.render(text, 1, TEXTCOLOR) textrect = textobj.get_rect() textrect.topleft = (x, y) surface.blit(textobj, textrect) pygame.init() mainClock = pygame.time.Clock() windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT)) pygame.display.set_caption('Cloud Jumper') pygame.mouse.set_visible(False) font = pygame.font.SysFont(None, 48) playerImage = pygame.image.load('mario.png') playerRect = playerImage.get_rect() baddieImage = pygame.image.load('quadrado.png') drawText('Cloud Jumper', font, windowSurface, (WINDOWWIDTH / 2.75), (WINDOWHEIGHT / 5)) drawText('Aperte uma tecla para começar', font, windowSurface, (WINDOWWIDTH / 4.15) - 30, (WINDOWHEIGHT / 3) + 60) pygame.display.update() waitForPlayerToPressKey() MelhorPontuação = 0 while True: baddies = [] Pontuação = 0 playerRect.topleft = (WINDOWWIDTH / 2, WINDOWHEIGHT - 100) moveLeft = moveRight = moveUp = moveDown = False reverseCheat = slowCheat = False baddieAddCounter = 0 while True: Pontuação += 1 for event in pygame.event.get(): if event.type == QUIT: terminate() if event.type == KEYDOWN: if event.key == ord('z'): reverseCheat = True if event.key == ord('x'): slowCheat = True if event.key == K_LEFT or event.key == ord('a'): moveRight = False moveLeft = True if event.key == K_RIGHT or event.key == ord('d'): moveLeft = False moveRight = True if event.key == K_UP or event.key == ord('w'): moveDown = False moveUp = True if event.key == K_DOWN or event.key == ord('s'): moveUp = False moveDown = True if event.type == KEYUP: if event.key == ord('z'): reverseCheat = False Pontuação = 0 if event.key == ord('x'): slowCheat = False Pontuação = 0 if event.key == K_ESCAPE: terminate() if event.key == K_LEFT or event.key == ord('a'): moveLeft = False if event.key == K_RIGHT or event.key == ord('d'): moveRight = False if event.key == K_UP or event.key == ord('w'): moveUp = False if event.key == K_DOWN or event.key == ord('s'): moveDown = False if event.type == MOUSEMOTION: playerRect.move_ip(event.pos[0] - playerRect.centerx, event.pos[1] - playerRect.centery) if not reverseCheat and not slowCheat: baddieAddCounter += 1 if baddieAddCounter == ADDNEWBADDIERATE: baddieAddCounter = 0 baddieSize = random.randint(BADDIEMINSIZE, BADDIEMAXSIZE) newBaddie = {'rect': pygame.Rect(random.randint(0, WINDOWWIDTH-baddieSize), 0 - baddieSize, baddieSize, baddieSize), 'speed': random.randint(BADDIEMINSPEED, BADDIEMAXSPEED), 'surface':pygame.transform.scale(baddieImage, (baddieSize, baddieSize)), } baddies.append(newBaddie) if moveLeft and playerRect.left > 0: playerRect.move_ip(-1 * PLAYERMOVERATE, 0) if moveRight and playerRect.right < WINDOWWIDTH: playerRect.move_ip(PLAYERMOVERATE, 0) if moveUp and playerRect.top > 0: playerRect.move_ip(0, -1 * PLAYERMOVERATE) if moveDown and playerRect.bottom < WINDOWHEIGHT: playerRect.move_ip(0, PLAYERMOVERATE) pygame.mouse.set_pos(playerRect.centerx, playerRect.centery) for b in baddies: if not reverseCheat and not slowCheat: b['rect'].move_ip(0, b['speed']) elif reverseCheat: b['rect'].move_ip(0, -5) elif slowCheat: b['rect'].move_ip(0, 1) for b in baddies[:]: if b['rect'].top > WINDOWHEIGHT: baddies.remove(b) windowSurface.fill(BACKGROUNDCOLOR) drawText('Pontuação: %s' % (Pontuação), font, windowSurface, 10, 0) drawText('MelhorPontuação: %s' % (MelhorPontuação), font, windowSurface, 10, 40) # Draw the player's rectangle windowSurface.blit(playerImage, playerRect) # Draw each baddie for b in baddies: windowSurface.blit(b['surface'], b['rect']) pygame.display.update() if playerHasHitBaddie(playerRect, baddies): if Pontuação > MelhorPontuação: MelhorPontuação = Pontuação break mainClock.tick(FPS) drawText('Fim de jogo', font, windowSurface, (WINDOWWIDTH / 2.65), (WINDOWHEIGHT / 4)) drawText('Aperte uma tecla para jogar novamente', font, windowSurface, (WINDOWWIDTH / 4.45) - 80, (WINDOWHEIGHT / 3) + 50) pygame.display.update() waitForPlayerToPressKey() As imagens usadas são essas (personagem e plataforma, respectivamente):
  22. @fspjonny Não funcionou, fiz o que estava no site e está dando o mesmo erro.
  23. @cleidon dias fonseca A primeira imagem é de um capacitor multicamadas aparentemente, e a segunda é de um capacitor SMD, nenhum dos dois tem polaridade. É meio difícil achar de 22uF por 10V desse tipo, talvez seja por isso que você não encontrou, normalmente são de tântalo ou eletrolíticos (ambos tem polaridade), se for pesquisar, pesquise pelo seu código (226). Não, o E no final não é de eletrolítico, e o capacitor não tem como ser cerâmico e eletrolítico ao mesmo tempo, são duas constituições diferentes, não sei direito o que é, diria que é o código de tolerância do capacitor que está em torno de ± 0.5 pF, normalmente a letra é pra indicar a tensão máxima de operação, mas como você já disse que a tensão dele é de 10V, acho que não poderia ser isso então. Se quiser saber mais sobre: capacitores.
  24. @wainstock Use um multímetro para identificar as saídas, verifique a tensão e use um led para observar os comandos, fora isso, você pode observar a mudança na corrente também, creio que é isso que faz decair ou aumentar a potência na lanterna.

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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!