Mostrando postagens com marcador script. Mostrar todas as postagens
Mostrando postagens com marcador script. Mostrar todas as postagens

sexta-feira, 24 de setembro de 2010

Scripts de listagem de dados

Maria Luíza Santinho Lima Monteiro

Bom dia!
Essa semana estive desenvolvendo os scripts de algumas listagens necessárias para o controle de dados do sistema. Segue o código abaixo:

def procurarUsuarioPorLoginPorSenha(self, login, senha):
      """
            @params = nome do usuario e senha.
            Retorna o usuarios com login e senha
      """

      logging.debug("%s: Procurando usuário por login (%s) e senha (%s)"%(str(time.asctime()), login, senha))
      cursor = self.connection.cursor()
      cursor.execute("SELECT id_usuario FROM usuario WHERE login=? AND senha=?",(login, senha,))
      usuario = None
      for row in cursor:
            usuario = Usuario(row['id_usuario'])
      return usuario


def listarUsuarioConfiguradorDeJogo(self):
      """
            Retorna lista de usuarios administradores e orientadores (são os que podem configurar o jogo)
      """

      logging.debug("%s: Listando usuários administradores e orientadores (são os que podem configurar o jogo)" %(str(time.asctime())))
      cursor = self.connection.cursor()
      cursor.execute("SELECT id_usuario FROM usuario WHERE id_grupo = 1 OR id_grupo = 2")
      listaUsuarios = []
      for row in cursor:
            usuario = Usuario(row['id_usuario'])
            listaUsuarios.append(usuario)
      return listaUsuarios


def listarTodosUsuariosAdministradores(self):
      """
            Retorna lista de usuários administradores
      """

      logging.debug("%s: Listando todos os administradores" %(str(time.asctime())))
      cursor = self.connection.cursor()
      cursor.execute("SELECT id_usuario FROM usuario WHERE id_grupo = 1")
      usuariosAdministradores = []
      for row in cursor:
            usuario = Usuario(row['id_usuario'])
            usuariosAdministradores.append(usuario)
      return usuariosAdministradores


def listarAdministradoresLogadosPorData(self, data_ultimo_login):
      """
            @params = data do ultimo login
            Retorna lista de administradores que logaram no dia anterior
      """

      logging.debug("%s: Listando administradores logados por data (%s)" %(str(time.asctime(), data_ultimo_login)))
      cursor = self.connection.cursor()
      cursor.execute("SELECT u.id_usuario, p.nome FROM pessoa AS p INNER JOIN usuario AS u WHERE p.id_pessoa = u.id_pessoa AND u.id_grupo = 1 AND u.data_ultimo_login = ?", data_ultimo_login)
      listaAdministradores = []
      for row in cursor:
            administrador = Usuario(row['u.id_usuario'])
            listaAdministradores.append(administrador)
      return listaAdministradores


def listarTodosUsuariosOrientadores(self):
      """
            Retorna lista de usuarios orientadores
      """

      logging.debug("%s: Listando usuários orientadores"%(str(time.asctime())))
      cursor = self.connection.cursor()
      cursor.execute("SELECT id_usuario FROM usuario WHERE id_grupo = 2")
      listaOrientador = []
      for row in cursor:
            usuario = Usuario(row['id_usuario'])
            listaOrientador.append(usuario)
      return listaOrientador


def listarTodosUsuariosAlunos(self):
      """
            Retorna lista de usuarios alunos
      """

      logging.debug("%s: Listando usuários alunos"%(str(time.asctime())))
      cursor = self.connection.cursor()
      cursor.execute("SELECT id_usuario FROM usuario WHERE id_grupo = 3")
      listaAlunos = []
      for row in cursor:
            usuario = Usuario(row['id_usuario'])
            listaAlunos.append(usuario)
      return listaAlunos


def ordenarAlunosPorPontuacao(self):
      """
            Retorna lista de pessoas (alunos) ordenados por pontuacao
      """

      logging.debug("%s: Ordenando alunos por pontuação"%(str(time.asctime())))
      cursor = self.connection.cursor()
      cursor.execute("SELECT u.id_usuario, pe.nome, po.valor_pontuacao FROM pessoa AS pe INNER JOIN pontuacao AS po INNER JOIN usuario AS u WHERE pe.id_pessoa = u.id_pessoa AND u.id_usuario = po.id_usuario AND u.id_grupo = 3 ORDER BY valor_pontuacao DESC")
      listaAlunos = []
      for row in cursor:
            usuario = Usuario(row['u.id_usuario'])
            listaAlunos.append(usuario)
      return listaAlunos

sexta-feira, 3 de setembro de 2010

Script para envio de e-mail

Karl Schiewaldt

Olá!
Como especificado em nossa proposta e no cronograma, nosso site teria um formulário para contato do usuário com o grupo. E ontem, conseguimos terminar.
Basicamente, encontramos uma classe que envia e-mails, o PHPMailer, onde nós colocamos a pasta com os itens da classe, na pasta onde se encontra nosso site no servidor, e fizemos o script em PHP para pegar os dados do formulário, montar o e-mail, e enviá-lo ao nosso e-mail (empresa.spectrum@gmail.com).

E aqui está nosso script:

    $nome=$_REQUEST['nome'];
    $email=$_REQUEST['email'];
    $assunto=$_REQUEST['assunto'];
    $mensagem=$_REQUEST['mensagem'];

    function Enviar($assunto,$mensagem,$email,$nome)
    {
        require_once('phpmailer/class.phpmailer.php');
        $phpmail = new PHPMailer();
        $phpmail->IsSMTP(); // envia por SMTP
        $phpmail->Host = 'ssl://smtp.gmail.com';
        $phpmail -> Port = 465;
        $phpmail->SMTPAuth = true; // Caso o servidor SMTP precise de
autenticacao
        $phpmail->Username = "empresa.spectrum@gmail.com"; //SMTP
Email
        $phpmail->Password = "projetocti2010"; // SMTP Senha
        $phpmail->IsHTML(true);   
        $phpmail->FromName = "$nome ($email)"; //Nome do remetente
        $phpmail->AddAddress("empresa.spectrum@gmail.com");
//Destinatario
        $phpmail->Subject = $assunto; //Assunto
        $phpmail->Body = $mensagem; //Mensagem
        $send = $phpmail->Send();
    }
    Enviar($assunto,$mensagem,$email,$nome);
?>

Foi retirada a parte de alerta ao usuário, já que o Blogger tem problemas com as tags HTML que são utilizadas aqui.

Até mais! (:

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.

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.

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!

sexta-feira, 30 de julho de 2010

Velocidade

Wellington Moreira da Silva

Vou postar hoje os scripts para calcular a velocidade e depois passá-la para um objeto do tipo Text, e fazer uma espécie de velocímetro:

#calcular velocidade
import GameLogic
import math

controlador = GameLogic.getCurrentController()
Velocidade = controlador.owner
Vetor = Velocidade.getLinearVelocity(True)
GameLogic.ModuloV= math.sqrt(Vetor[0]*Vetor[0]+Vetor[1]*Vetor[1]+Vetor[2]*Vetor[2])*2

#passar para o velocimetro
import GameLogic

controlador = GameLogic.getCurrentController()
velocimetro = controlador.owner
velocidade = round(GameLogic.ModuloV,1)
velocimetro.Text= str(velocidade)

sexta-feira, 23 de julho de 2010

Movimentação do veículo

Wellington Moreira da Silva

Bom dia, hoje vou postar o script para a movimentação do carro.

def main():

controlador = GameLogic.getCurrentController()
carroID = ConstraintID(controlador)
freios = Freios(carroID, controlador)
Aceleracao( carroID, controlador, freios)
Virar(carroID, controlador)

def Freios(carroID, controlador):

re = controlador.sensors["MarchaRe"]
freio = controlador.sensors["Freio"]
if freio.positive == True and re.positive == False:
    FreioDianteiro = 10.0
    FreioTraseiro = 10.0
    freios = True
else:
    FreioDianteiro = 0.0
    FreioTraseiro = 0.0
    freios = False
    carroID.applyBraking( FreioDianteiro, 0)
    carroID.applyBraking( FreioDianteiro, 1)
    carroID.applyBraking( FreioTraseiro, 2)
    carroID.applyBraking( FreioTraseiro, 3)
return freios

def Aceleracao( carroID, controlador, freios):

frente = controlador.sensors["Frente"]
re = controlador.sensors["MarchaRe"]
if freios == True:
    aceleracao = 0.0
elif re.positive == True:
    aceleracao = 100.0
elif frente.positive == True:
    aceleracao = -200.0
else:
    aceleracao = 0.0
carroID.applyEngineForce( aceleracao, 0)
carroID.applyEngineForce( aceleracao, 1)
carroID.applyEngineForce( aceleracao, 2)
carroID.applyEngineForce( aceleracao, 3)

def Virar( carroID, controlador):

    virarEsquerda = controlador.sensors["Esquerda"]
    virarDireita = controlador.sensors["Direita"]
    if virarEsquerda.positive == True:
       carroID.setSteeringValue(0.4,0)
       carroID.setSteeringValue(0.4,1)
   elif virarDireita.positive == True:
       carroID.setSteeringValue(-0.4,0)
       carroID.setSteeringValue(-0.4,1)
   else:
   carroID.setSteeringValue(0.0,0)
   carroID.setSteeringValue(0.0,1)

def ConstraintID(controlador):

carro = controlador.owner
carroID = carro["carroID"]
return carroID

main()

Lembrando que os botões têm que ser definidos pelo editor lógico do Blender.
Até mais!

Create table - Sqlite3

Isabella Fontes

Olá,

Hoje vou postar os scripts essenciais ao nosso projeto.
Detalhe: Também colocarei os imports necessários.

Imports:
#!/usr/bin/env python
import sqlite3
import logging
import configuracoes


Sabendo disso, segue abaixo, o script de criação.
Nome do arquivo: database.py

def criar_banco_de_dados():
    """ Cria o banco de dados no local onde ja definimos, no arquivo
        configuracoes.py
    """

    logging.debug("Executando criar banco de dados")
    #{ CP - Cadastrar Pessoa , EP- Excluir Pessoa, CCF - Cadastrar
Configuracao, });
    sql = """
            CREATE TABLE [usuario] ([id]INTEGER PRIMARY KEY ASC ON
CONFLICT ROLLBACK AUTOINCREMENT,
            [login] VARCHAR (250), [senha] VARCHAR(10), [id_pessoa]
INTEGER, [id_grupo] INTEGER, [data_ultimo_login] INTEGER);
            CREATE TABLE [grupo] ([id]INTEGER PRIMARY KEY ASC ON
CONFLICT ROLLBACK AUTOINCREMENT,
            [nome] VARCHAR(20), [id_permissao] INTEGER);
            CREATE TABLE [permissao] ([id]INTEGER PRIMARY KEY ASC
ON CONFLICT ROLLBACK AUTOINCREMENT,
            [nome] VARCHAR(20),[acoes] VARCHAR(3));
            CREATE TABLE [pessoa] ([id]INTEGER PRIMARY KEY ASC ON
CONFLICT ROLLBACK AUTOINCREMENT,
            [nome] VARCHAR(50), [data_nascimento] INTEGER);
            CREATE TABLE [configuracao] ([id]INTEGER PRIMARY KEY ASC
ON CONFLICT ROLLBACK AUTOINCREMENT,
            [velocidade] BOOLEAN, [cinto] BOOLEAN, [semaforo] BOOLEAN);
            CREATE TABLE [pontuacao] ([id]INTEGER PRIMARY KEY ASC
ON CONFLICT ROLLBACK AUTOINCREMENT,
            [id_usuario] INTEGER, [valor] INTEGER, [data_ultima_missao]
DATE , [versao_ultima_missao] INTEGER)
          """
       
    logging.warn("o banco de dados sera RECRIADO!")
    conn = conectar_banco_de_dados()
    queries = sql.split(';')
    for query in queries:
        conn.execute(query)
    conn.commit()

Observação: O código poderá ser alterado de acordo com a necessidade do banco.

sexta-feira, 16 de julho de 2010

Script de suspensão

Wellington Moreira da Silva

Estou postando hoje o script que define os valores da suspensão do veículo. É uma suspensão bem simples, mas que dará mais realismo ao nosso jogo, durante os eventos de colisões.

def main():

    controlador = GameLogic.getCurrentController()
    carroID = ConstraintID(controlador)
    Aderencia(carroID)
    Compressao(carroID)
    Amortecimento(carroID)
    Rigidez(carroID)

def ConstraintID(controlador):

    carro = controlador.owner
    carroID = carro["carroID"]
    return carroID

def Aderencia(carroID):

    carroID.setTyreFriction(10.0, 0)
    carroID.setTyreFriction(10.0, 1)
    carroID.setTyreFriction(10.0, 2)
    carroID.setTyreFriction(10.0, 3)

def Compressao(carroID):

    carroID.setSuspensionCompression(20.0, 0)
    carroID.setSuspensionCompression(20.0, 1)
    carroID.setSuspensionCompression(20.0, 2)
    carroID.setSuspensionCompression(20.0, 3)

def Amortecimento(carroID):

    carroID.setSuspensionDamping(5.0, 0)
    carroID.setSuspensionDamping(5.0, 1)
    carroID.setSuspensionDamping(5.0, 2)
    carroID.setSuspensionDamping(5.0, 3)

def Rigidez(carroID):

    carroID.setSuspensionStiffness(30, 0)
    carroID.setSuspensionStiffness(30, 1)
    carroID.setSuspensionStiffness(30, 2)
    carroID.setSuspensionStiffness(30, 3)

main()

JavaScript - A saga (parte 2)

Karl Schiewaldt

Olá!

Como nos meus posts anteriores, dessa vez postarei mais dois scripts desenvolvidos para aprendizado que fiz esta semana. Eles fazem parte de uma calculadora.
Eles fazem, na prática, a mesma coisa, porém procurei fazer de dois modos diferentes para me familizariar com a estrutura do JavaScript, mesmo ela sendo similar ao PHP/C.

Primeiro, uma função que, além de pegar os valores digitados, coloca as opções dos botões rádio (múltipla escolha) em um vetor, e faz a escolha da operação em um Switch, onde ele diferenciará a opção escolhida pelo usuário:

function calcswitch(){
    var v1=parseInt(document.getElementById('v1').value);
    var v2=parseInt(document.getElementById('v2').value);
    var radios=document.getElementsByClassName('radios');
    var x;
    for(var i=0;i<=3;i++)
        if(radios[i].checked) break;
    switch (i){
        case 0:
            x=v1+v2;
            break;
        case 1:
            x=v1-v2;
            break;
        case 2:
            x=v1*v2;
            break;
        case 3:
            x=v1/v2;
            break;
    }
    alert("valor: "+x);
}

E o segundo, que calcula de um jeito mais simples, somente testando a operação escolhida através de IFs:

function calcif(){
    var v1=parseInt(document.getElementById('v1').value);
    var v2=parseInt(document.getElementById('v2').value);
    var a=document.getElementById('a');
    var s=document.getElementById('s');
    var m=document.getElementById('m');
    var d=document.getElementById('d');
    var x;
    if(a.checked)
        x=v1+v2;
    else
        if(s.checked)
            x=v1-v2;
        else
            if(m.checked)
                x=v1*v2;
            else
                if(d.checked)
                    x=v1/v2;
    alert("valor: "+x);
}

Ambos em sua página html, há 2 inputs do tipo texto, 4 botões de rádio onde será escolhida a operação, e dois botões, um que limpa os campos e o outro que envia, pelo evento OnClick, os valores digitados e a operação escolhida.

Até a próxima!

sexta-feira, 9 de julho de 2010

Script para união das rodas com o corpo do carro

Wellington Moreira da Silva

Bom dia, vou postar hoje o script que junta as rodas com o corpo do veículo, em tempo de execução. Isso tem que ser feito porque a movimentação do carro é controlada através das rodas.

def main():
   carro = Carro_Objeto()
   carroID = Carro_Constraint(carro)
   rodaObj = Rodas()
   rodaPos = RodasPosicao()
   rodaRadius = RodasRadius()
   rodaAlturaSuspensao = RodasAlturaSuspensao()
   rodaAnguloSuspensao = RodasAnguloSuspensao()
   rodaEixo = RodasEixo()
   rodaVirar = RodasVirar()
   Add_Rodas(carroID, rodaObj, rodaPos, rodaAnguloSuspensao, rodaEixo,
rodaAlturaSuspensao, rodaRadius, rodaVirar)

def Carro_Objeto():

   controlador = GameLogic.getCurrentController()
   carro = controlador.owner
   return carro

def Carro_Constraint(carro):

   import PhysicsConstraints
   carro_PhysicsID = carro.getPhysicsId()
   carro_Constraint = PhysicsConstraints.createConstraint(carro_PhysicsID,
0, 11)
   constraint_ID = carro_Constraint.getConstraintId()
   carroID = PhysicsConstraints.getVehicleConstraint(constraint_ID)
   carro["carroID"] = carroID
   return carroID

def Rodas():

   import GameLogic
   cena = GameLogic.getCurrentScene()
   roda0 = cena.getObjectList()["OBRodaFE"]
   roda1 = cena.getObjectList()["OBRodaFD"]
   roda2 = cena.getObjectList()["OBRodaTE"]
   roda3 = cena.getObjectList()["OBRodaTD"]
   return (roda0, roda1, roda2, roda3)

def RodasPosicao():

   roda0 = [ -2.0, 3.0, 0.0]
   roda1 = [ 2.0, 3.0, 0.0]
   roda2 = [ -2.0, -3.0, 0.0]
   roda3 = [ 2.0, -3.0, 0.0]
   return (roda0, roda1, roda2, roda3)

def RodasRadius():

   return (0.75,0.75,0.75,0.75)

def RodasAlturaSuspensao():

   return (0.2,0.2,0.2,0.2)

def RodasAnguloSuspensao():

   return ([0.0,0.0,-1.0],[0.0,0.0,-1.0],[0.0,0.0,-1.0],[0.0,0.0,-1.0])

def RodasEixo():

   return ([ -1.0, 0.0, 0.0], [ -1.0, 0.0, 0.0], [ -1.0, 0.0, 0.0], [ -1.0, 0.0, 0.0])

def RodasVirar():

   return (True, True, False, False)

def Add_Rodas(carroID, rodaObj, rodaPos, rodaAnguloSuspensao,
rodaEixo, rodaAlturaSuspensao, rodaRadius, rodaVirar):

   for x in range(0,4):
     carroID.addWheel( rodaObj[x], rodaPos[x], rodaAnguloSuspensao[x],
rodaEixo[x], rodaAlturaSuspensao[x], rodaRadius[x], rodaVirar[x] )

main()

JavaScript - A saga (parte 1)

Karl Schiewaldt

Olá.
Bom, como no meu post anterior, comecei a estudar e aprender sobre JavaScript. Pois bem, aqui está o primeiro exemplo que fiz, que é um script que calcula fatorial:

function calcfat(){
    var i=document.getElementById('fat').value;
    var x=1;
    for (i;i>=1;i--)
        x=x*i;
    alert('fatorial é: '+x);
}

E junto, a página html que interage com o usuário, há somente um input do tipo texto, que recebe o valor a ser calculado, e um botão, que passa para a função o valor digitado, calcula, e o apresenta na tela na forma de um alert.

Lembrando que eu utilizei uma página externa para armazenar o script, fazendo referência a esse documento na sessão HEAD da página html.

Então é isso, em breve mais! :)

Blender - Semáforo

Isabella Fontes

Olá,

Nesta semana procurei executar os scripts do semáforo, item essencial em nossa aplicação.
Aqui, há um exemplo de como ler e buscar os objetos na cena, sendo que neste exemplo a preocupação maior se deve ao fato de sincronizar as cores de 2 semáforos, e encontrei bastante dificuldade pois há uma lentidão nestes processos.

Exemplo:

import sys
import time
import os
import Blender
import Blender.Image
from Blender import Mesh
import Blender.Object
import Blender.Scene
from Blender import Material

print Material.Get()

print '\n \n'
matAmarelo = "materialAmarelo"
ma = Material.Get(matAmarelo)
matVermelho = "materialVermelho"
mvm = Material.Get(matVermelho)
matVerde = "materialVerde"
mvd = Material.Get(matVerde)

semaforos = {mvm:True,ma:False,mvd:False}

for sinal in semaforos:
      print ma.rgbCol
      print Material.ColorbandMethod.COLOR
      print 'Cor antes'
      print sinal
      print sinal.getRGBCol()
      if sinal.getName() == matAmarelo:
            print 'Trocando a cor do amarelo'
            sinal.setRGBCol([1.0,0.6,0.0])
      time.sleep(9)
      print sinal.getRGBCol()

while True:
      print 'semaforo 1 - verde'
      print 'semaforo 2 - vermelho'
      time.sleep(6)
      print 'semaforo 1 - amarelo'
      print 'semaforo 2 - vermelho'
      time.sleep(3)
      print 'semaforo 1 - vermelho'
      print 'semaforo 2 - verde'
      time.sleep(6)
      print 'semaforo 1 - vermelho'
      print 'semaforo 2 - amarelo'
      time.sleep(3)

print Blender.Get("datadir")
print dir(Blender)
lista_objetos=Blender.Object.Get()

print lista_objetos

lista_objetos = Blender.Mesh.Get()
print "eba"
print '\n \n \n',lista_objetos
meshName = "meshAmarelo"
me = Blender.Mesh.Get(meshName)
ma = Blender.Material.Get("materialAmarelo")
print '\t \n'
print dir(ma)

for x in lista_objetos:
      print (x)
      print str(x.getProperty())
      print (x.game_properties)
      print '\t \n \n'
      print dir(x)
      print x.materials
      print x.getColorLayerNames()
      print '\n \n'

lista_semaforo = {'amarelo':False,'verde':True,'vermelho':False}
print lista_semaforo
for semaforo in lista_semaforo:
      print 'abrindo semaforo',semaforo
      lista_semaforo[semaforo] = True
      time.sleep(3)
      lista_semaforo[semaforo] = False
      print 'fechando semaforo'

print lista_semaforo

sexta-feira, 2 de julho de 2010

JavaScript - uma breve introdução

Karl Schiewaldt

Olá!

Pra começo de férias, resolvi dar uma estudada em JavaScript, que utilizaremos no nosso site, para o menu e para a página de contato.


Mas, para começo de conversa, o que é o JavaScript? Nosso amigo Wikipedia responde:
"JavaScript é uma linguagem de programação criada por Brendan Eich para a Netscape em 1995, que a princípio se chamava LiveScript. A Netscape, após o sucesso inicial desta linguagem, recebeu uma colaboração considerável da Sun, a qual possibilitou posteriormente dizer que o JavaScript é uma linguagem compatível com a linguagem Java, por esta razão, a semelhança dos nomes "JavaScript"."

Agora que já sabemos a definição de JavaScript, podemos entrar mais a fundo nas suas funcionalidades.
O JavaScript é muito utilizado por webdesigners e programadores web para, principalmente, validar formulários de cadastro e contato (este será o formulário que possivelmente necessitaremos validar em nosso site). Também é utilizado para a interação do usuário com a página, sem a necessidade da utilização de um servidor.
O JavaScript é altamente dinâmico, ou seja, uma variável pode assumir diversos tipos durante a execução do script, além de não necessitar a declaração do tipo da variável. Outro ponto forte do JavaScript é que seus scripts não precisam ser compilados, o que agiliza o processo e dispensa o uso de um servidor.

Para o começo, procurarei algumas apostilas e tutoriais, para estudar e começar a desenvolver scripts simples, com a finalidade de aprendizado. Assim, em breve, colocarei aqui os scripts que serão desenvolvidos.

Até a próxima! ;D

sexta-feira, 25 de junho de 2010

Python - A linguagem de Script no melhor livro já encontrado

Isabella Fontes

Olá,

No estágio onde trabalho um dos coordenadores me passou este livro sobre Python que me ajudou muito no desenvolvimento das atividades propostas (também programo em Python no estágio).

Ele está na sua segunda edição e claro, é para principiantes, mas como disse, me ajudou bastante, principalmente quanto ao conceito de alguns itens como o que são dicionários, tuplas e listas e além de conhecer e aprender expressões regulares. Nele também há uma introdução ao mundo dos jogos, mas não recomendaria porque não há muitos itens abordados pois são apenas tópicos. No nosso caso, o livro nos ajudaria para entender como se programa e não para usá-lo como tutorial para jogos.

O livro pode ser baixado em: Livro Python para desenvolvedores - 2° Edição


O livro em sua 1ª edição também pode ser encontrado em:
Livro Python para desenvolvedores - 1ª Edição

sexta-feira, 18 de junho de 2010

Python - "O poder da ferramenta" - Como ele pode nos ajudar

Isabella Fontes

Olá novamente!

Como disse no post anterior, finalmente consegui encontrar este material que pudesse ilustrar de forma mais simples o quanto podemos criar em nosso projeto com os scripts em Python.

A fonte que retirei é a mesma do post anterior:
http://ark4n.wordpress.com/blender/





















sexta-feira, 30 de abril de 2010

Blender - Códigos em Python

Isabella Fontes

Nesta semana procurei entender mais sobre os scripts em python do blender.

Criando uma renderização + salvando uma imagem:

Comandos para salvar uma imagem da cena renderizada. Para explicar este recurso, é só entender que a câmera do mundo virtual é como a câmera do mundo real.

E o tirar fotos é como se revelassemos ela. E podemos salvar uma foto nos formatos (JPEG, BMP, PNG, TIFF) e nos tamanhos (Resolução 110x110, 1200x1200 e etc.).

from Blender import *
from Blender.Scene import Render
cena3D = Scene.GetCurrent()
IMAG = cena3D.getRenderingContext()
Render.EnableDispWin()
IMAG.extensions = True
IMAG.imageType = Render.PNG
IMAG.sizeX = 640
IMAG.sizeY = 480
IMAG.render()
IMAG.saveRenderedImage("\Imag")

Explicação do código (Renderização + Salvando uma Imagem)

No Imag.Extensions é configurado para True, porque ele configura que este comando defina os formatos de imagens esteja disponíveis. Estes formatos são PNG, TIFF, BMP, JPG.

-------->IMAG.extensions = True

Na linha seguinte é definido o formato que imagem será salva. No caso é PNG.

-------->IMAG.imageType = Render.PNG

Na outras duas linhas seguintes, é a resolução da imagem(tamanho). Coloquei um tamanho padronizado de 640 por 480. SizeX entende-se por largura e SizeY por altura. A unidade de contagem é pixel.

-------->IMAG.sizeX = 640
-------->IMAG.sizeY = 480

E a última linha é o comando para salvar uma imagem renderizada. No caso ela vai salvar a imagem na pasta tmp dentro do meu computador. (É possivel modificar esta pasta no Blender). Quando coloca-se ("\Imag") entende-se que é ("C:\MeuComputador\tmp\Imag.png"), o nome Imag é o nome da imagem que criou-se (podemos definir qualquer nome).

-------->IMAG.saveRenderedImage("\Imag")