sexta-feira, 27 de agosto de 2010

Mudança de scripts - parte 2

Wellington Moreira da Silva

Aqui vão os novos scripts de movimentação, opções do carro e para virar:

-MOVIMENTAÇÃO-

import PhysicsConstraints

cena = GameLogic.getCurrentScene()
objetos = cena.objects
carro = objetos["OBCarro"]
constraint_ID = carro["constraint_ID"]
carroID = PhysicsConstraints.getVehicleConstraint(constraint_ID)
controlador = GameLogic.getCurrentController()
Acelerador = controlador.sensors["Frente"]
Freio = controlador.sensors["Freio"]
MarchaRe = controlador.sensors["MarchaRe"]
freios = 0.0
if Acelerador.positive == True:
   aceleracao = -800.0
elif MarchaRe.positive == True:
   aceleracao = 200
elif Freio.positive == True:
   freios = 40.0
else:
   aceleracao = 10.0
carroID.applyBraking(freios, 0)
carroID.applyBraking(freios, 1)
carroID.applyBraking(freios, 2)
carroID.applyBraking(freios, 3)
carroID.applyEngineForce(aceleracao, 2)
carroID.applyEngineForce(aceleracao, 3)

-OPÇÕES DO CARRO-

import PhysicsConstraints

cena = GameLogic.getCurrentScene()
objetos = cena.objects
carro = objetos["OBCarro"]
RodaFE = objetos["OBRodaFE"]
RodaFD = objetos["OBRodaFD"]
RodaTE = objetos["OBRodaTE"]
RodaTD = objetos["OBRodaTD"]
carro.applyImpulse([0.0, 0.0, 0.0], [0.0, 0.0, 0.0])
carro_PhysicsID = carro.getPhysicsId()
carroID_Constraint = PhysicsConstraints.createConstraint(carro_PhysicsID, 0, 11)
carro["constraint_ID"] = carroID_Constraint.getConstraintId()
carroID = PhysicsConstraints.getVehicleConstraint(carro["constraint_ID"])
tirePos_FD = [-2.0, 2.0, 0.0]
tirePos_FP = [2.0, 2.0, 0.0]
tirePos_RD = [-2.0, -4.0, 0.0]
tirePos_RP = [2.0, -4.0, 0.0]
suspension_Angle = [0.0, 0.0, -1.0]
tireAxis = [-1.0, 0.0, 0.0]
suspensionFront = 0.4
suspensionBack = 0.3
tireRadius = 0.75
tireSteer_Front = True
tireSteer_Rear = False
carroID.addWheel(RodaFE, tirePos_FD, suspension_Angle, tireAxis,
suspensionFront, tireRadius, tireSteer_Front)
carroID.addWheel(RodaFD, tirePos_FP, suspension_Angle, tireAxis,
suspensionFront, tireRadius, tireSteer_Front)
carroID.addWheel(RodaTE, tirePos_RD, suspension_Angle, tireAxis,
suspensionBack, tireRadius, tireSteer_Rear)
carroID.addWheel(RodaTD, tirePos_RP, suspension_Angle, tireAxis,
suspensionBack, tireRadius, tireSteer_Rear)
carroID.setTyreFriction(10, 0)
carroID.setTyreFriction(10, 1)
carroID.setTyreFriction(10, 2)
carroID.setTyreFriction(10, 3)
carroID.setSuspensionCompression(4.0, 0)
carroID.setSuspensionCompression(4.0, 1)
carroID.setSuspensionCompression(4.0, 2)
carroID.setSuspensionCompression(4.0, 3)
carroID.setSuspensionDamping(5.0, 0)
carroID.setSuspensionDamping(5.0, 1)
carroID.setSuspensionDamping(5.0, 2)
carroID.setSuspensionDamping(5.0, 3)
carroID.setSuspensionStiffness(8.0, 0)
carroID.setSuspensionStiffness(8.0, 1)
carroID.setSuspensionStiffness(8.0, 2)
carroID.setSuspensionStiffness(8.0, 3)
carroID.setRollInfluence(0.1, 0)
carroID.setRollInfluence(0.1, 1)
carroID.setRollInfluence(0.1, 2)
carroID.setRollInfluence(0.1, 3)

-VIRAR-

import PhysicsConstraints

cena = GameLogic.getCurrentScene()
objeto = cena.objects
carro = objeto["OBCarro"]
carroID = PhysicsConstraints.getVehicleConstraint(carro["constraint_ID"])
controlador = GameLogic.getCurrentController()
esquerda = controlador.sensors["Esquerda"]
direita = controlador.sensors["Direita"]
if esquerda.positive == True:
   virar = 0.3
elif direita.positive == True:
   virar = -0.3
else:
   virar = 0.0
carroID.setSteeringValue(virar, 0)
carroID.setSteeringValue(virar, 1)

Obs: Como foi dito anteriormente, não existe mais um script próprio para suspensão. Ele foi integrado à parte de opçoes do carro.

Semáforo

Maria Luíza Santinho Lima Monteiro

Bom dia!
Comecei a desenvolver um modo de trocar as cores do semáforo e descobri uma função no Blender que faz uma troca de "Mesh", que podemos dizer que são os objetos. Isso será muito útil para o desenvolvimento do semáforo. No vídeo a seguir vou mostrar a mudança de cores através do teclado, mas isto já está sendo aperfeiçoado e será feito automaticamente com uma função delay.

Site Online!

Karl Schiewaldt

Olá! :D

Então, finalmente, conseguimos criar a pasta do grupo no servidor da escola e colocamos nosso site lá, para divulgação e indexação no Google.
O endereço do site é: http://200.145.153.91/spectrum/site

Acessem! :D

Até a próxima!

Classificacao do site no google

Isabella Fontes

Olá a todos!

Conseguimos! O professor Rodrigo, que ministra aplicativos II, nos ensinou técnicas de classificar sites nos mecanismos de pesquisas da internet.
É um fator importante, colaborando com a divulgação do site e do produto. E, no nosso caso, nosso jogo para fins educacionais!


E como ele nos pediu, colocamos as meta-tags e conseguimos colocar nosso site entre os 10 mais procurados sobre o tema.

Resolução dos problemas com texturas e mudança de diretório

Ananda Brasolotto De Santis

Bem, desde que estávamos aprendendo a mexer em texturas, tivemos probleminhas que não entendíamos: as texturas que adicionávamos nos objetos que modelávamos sumiam e aparecia algo rosa choque quando selecionávamos o modo de exibição texturizado do blender. Mas isso só acontecia quando mudávamos o pen drive de computador. Quando isso também aconteceu ao tentarmos mudar a pasta onde estavam as texturas, percebemos que era um problema de endereço dos arquivos. Quando mudávamos o pen drive para outro computador, mudava a letra do disco rígido, mudava o endereço de onde haviam sido colocadas as texturas, e elas ficavam cor-de-rosa.
Então fui procurar uma resolução para o problema. É muito mais simples do que imaginávamos. Basta compactar tudo em um único arquivo ".blend".
Para isso, basta ir em FILE>EXTERNAL DATA>PACK INTO .BLEND FILE, como demonstra a imagem abaixo.


Nós ficamos muito felizes ao descobrir isso, porque resolveu um grave problema, que nos fazia ter que adicionar as texturas a cada vez que elas saíam, e perder um bom tempo.
Ao menos por hora, tudo resolvido ;D

sexta-feira, 20 de agosto de 2010

Mudança de scripts

Wellington Moreira da Silva

Devido a necessidades de adptação, foi necessária a realização de mudanças nos scripts de movimentação, opções do carro, cálculo de velocidade e velocimetro, além da remoção do script de suspensao e da criação de um script para virar.

Por enquanto os scripts que compõem o projeto na parte do jogo em si são:
          CalcularVelocidade.py
          Movimentacao.py
          OpcoesCarro.py
          Velocimetro.py
          Virar.py

Nos posts seguintes, irei detalhar mais o scripts citados.

Cinto de Segurança

Maria Luíza Santinho Lima Monteiro

Bom dia!
Durante essa semana desenvolvi a mensagem que indicará ao usuário que ele deve colocar o cinto de segurança. O usuário receberá sua missão e logo aparecerá, junto ao cenário, uma mensagem para ele colocar o cinto de segurança. Assim que este é colocado, aparece uma imagem indicando a ação feita. Veja o vídeo a seguir.


O cinto é ativado através da tecla C do teclado.

Script de validação de formulário

Karl Schiewaldt

Olá!

Essa semana, devido ao desenvolvimento do site, e especialmente da página de contato do site, onde utilizaremos um formulário, onde o usuário entra com o nome, seu e-mail, assunto da mensagem e o corpo da mensagem, enxergamos a necessidade de um script de validação.
Esse script de validação, feito em JavaScript, funcionaria como uma espécie de "controle" do usuário, que não permitiria que o usuário deixasse qualquer campo vazio, e no campo e-mail, ele testa se não está vazio E se há um endereço de e-mail válido.

Aqui está o script JavaScript:
function validaform(){
    d = document.contato;
    if (d.txtnome.value == ''){
        alert('O campo ' + d.txtnome.name + ' deve ser preenchido!');
        d.nome.focus();
        return false;
    }
    if (d.txtemail.value == ''){
        alert('O campo ' + d.txtemail.name + ' deve ser preenchido!');
        d.email.focus();
        return false;
    }  
    parte1 = d.txtemail.value.indexOf('@');
    parte2 = d.txtemail.value.indexOf('.');
    parte3 = d.txtemail.value.length;
    if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
        alert('O campo ' + d.txtemail.name + ' deve ser conter um endereco
eletronico!');
        d.txtemail.focus();
        return false;
    }   
    if (d.txtassunto.value == ''){
        alert('O campo ' + d.txtassunto.name + ' deve ser preenchido!');
        d.txtmsg.focus();
        return false;
    } 
    if (d.txtmsg.value == ''){
        alert('O campo ' + d.txtassunto.name + ' deve ser preenchido!');
        d.txtmsg.focus();
        return false;
    }
}

É isso, até mais!

PyQT e QtDesigner

Isabella Fontes

Olá,

Durante as férias construi a interface das nossas aplicações em GTK, porém algumas funcionalidades que necessitamos eram mais complexas e não ofereciam tantas bibliotecas quanto pensei.
Então em contrapartida encontrei uma nova solução. Porque não utilizar PyQt?

Software da Nokia, Qt oferece diversos recursos para construção de telas para projetos. No entanto a curva de aprendizagem dela, ou seja, o tempo que se leva para aprender seus componentes, na minha opinião, é muita maior do que GTK.

Particularmente, prefiro fazer tudo por scripts, mas reconheço que a utilização de toolkits gráficos facilita muito. Pensando nisso encontrei o QtDesigner.

*Para maiores informações, acesse Qt Desiner Manual e Produtos Qt Nokia.

Propostas de etiquetas de DVD

Ananda Brasolotto De Santis

Abaixo estão duas propostas de etiquetas que desenvolvi, as duas bastante parecidas, até porque uma delas é extra. Fiz as duas para que avaliássemos se deveríamos colocar as logomarcas do CTI e da UNESP no CD também ou não.

sexta-feira, 13 de agosto de 2010

Trabalhando com textos no Game Engine

Wellington Moreira da Silva

No Blender, temos a possibilidade de escrever textos no Game Engine usando uma imagem no formato targa (.tga) com a textura da fonte desejada.
Criar essa imagem usando um editor de imagens é um pouco complicado, já que existem algumas regrinhas básicas que devem ser seguidas para que não haja problemas (a imagem tem que ser em 8 bits, em tons de cinza etc...), mas várias imagens .tga podem ser encontradas na internet.
Abaixo um exemplo de como ficaria essa imagem:


Para adicionar um texto, deve-se antes adicionar um plano e depois definir a imagem .tga como textura desse plano.
Depois disso, é preciso criar uma propriedade para esse plano. Essa propriedade pode ser do tipo string, caso queira trabalhar com caracteres alfanuméricos, float ou int caso vá trabalhar só com números.
Aí então essa propriedade pode ser editada, via código ou via edição lógica.

Banner

Vinicius Sato Jacintho

Aqui vai uma das propostas de banner que eu fiz para o projeto:


Tentei contrastar as cores branco, preto e vermelho para produzir algo impactante, mas faltou trabalhar mais em cima dele, pois precisa de mais informações.

Propostas de banner e de capa de CD

Maria Luíza Santinho Lima Monteiro

Bom dia!
Esta semana terminei as minhas propostas de banner da empresa e da capa do CD.
Seguem as imagens abaixo:





Propostas etiquetas para cd/dvd e modelos de cases de dvd

Karl Schiewaldt

Olá!
Bom, esta semana nós deveríamos desenvolver algumas propostas para etiquetas de cd/dvd e modelos de caixas para dvd, que usaremos para a entrega do material final do projeto, no mês de novembro.

E aqui estão as propostas que desenvolvi:

Capas de dvd





Etiquetas de cd/dvd




Então é isso (:

DVD, Etiqueta e Banner do Projeto

Isabella Fontes

Olá a todos,

O professor de aplicativos, Rodrigo Carvalho, pediu para todos os grupos de projetos que entregassem uma interface/layout da capa de CD, DVD e de um Banner do projeto.
E aqui estão os que eu fiz em CorelDraw X4.
O nome EduCar ainda não está definitivo, porém, o utilizamos temporariamente.





Proposta de capa de DVD

Ananda Brasolotto De Santis

Abaixo está a imagem da proposta de capa de DVD que eu desenvolvi:

sexta-feira, 6 de agosto de 2010

Etiqueta de CD

Maria Luíza Santinho Lima Monteiro

Boa noite!
Esta semana desenvolvi uma proposta de etiqueta para o CD da Empresa.
Segue a imagem abaixo:

Banners do grupo

Karl Schiewaldt

Olá!

Como parte do cronograma, todos nós do grupo deveríamos desenvolver algumas propostas de banners do grupo, para que um deles fosse escolhido e impresso para utilizarmos na Semana do Colégio, em outubro, e possivelmente na apresentação final do projeto, em novembro.

Aqui estão as minhas propostas:






Então é isso, até a próxima! :D

Blog Reformulado!

Isabella Fontes

Olá a todos,

Finalmente terminei o novo design do blog, que sempre foi o desejo do nosso grupo e como estávamos com prioridades em criar a base do nosso projeto, acabei por não terminar o layout do nosso blog.

Ainda podemos melhorar e muito e assim que possivel faremos melhorias!

Proposta de banner

Ananda Brasolotto De Santis

Esta é a proposta de banner para divulgação do projeto que eu desenvolvi: