Em jogos de RPG ou de RTS se utiliza muito a visao de cima, a navegacao pelo cenario com a camera pode ser uma dificuldade ha mais. A proposta aqui e a movimentacao da camera pelas bordas da area de visao, como no video abaixo:Voce pode reparar que ao movimentar o cursor do mouse para perto das bordas da janela, "o cenario se desloca", isto e a camera se desloca em relacao ao cenario.Como funciona o template?Precisamos criar um script python que saiba da localizacao do cursor mouse e as dimensoes da janela, em seguida comparar a posicao atual do cursor em relacao aos limites da tela, entao criamos areas de acao do cursor.Assim que o cursor atingir umas das area de acao a camera se desloca na direcao da area ativa e quando sai da area para o deslocamento.Os elementos do template:Ativos - Camera ligada(parenteada) ao Empty, no qual vai no Painel de Logica um sensor do tipo Always e outro de Mouse/Moviment, ligados ao Controlador Python.O Script Python:import RasterizerRasterizer.showMouse(1)w = Rasterizer.getWindowWidth()h = Rasterizer.getWindowHeight()import GameLogic as gfrom GameLogic import *cont = getCurrentController()ow = cont.ownermousesensor = cont.sensors['move']campos = ow.positionx = mousesensor.position[0]y = mousesensor.position[1]screenposx = 1.0*(x - w/2) / wscreenposy = 1.0*( ( h - y ) - h/2 ) / h#deltax = campos[2]/1#deltay = campos[2]/1deltax = campos[2]/1.265deltay = campos[2]/1.84newposx = campos[0] + screenposx * deltaxnewposy = campos[1] + screenposy * deltaynewposz = 0newpos = [newposx,newposy,newposz]print y#print L,l#print screenposx, screenposy#print newposx,newposy#DETECTA OS LIMITES DE ACAO DA TELAif y < 50: up="on"else: up="off"if y > h-50: down="on"else: down="off"if x < 50: left="on"else: left="off"if x > w-50: right="on"else: right="off"vel = 0.1if up=="on": ow.applyMovement([0,vel,0],1) print "up"# down elif down=="on": ow.applyMovement([0,-vel,0],1)#print "down" # leftelif left=="on": ow.applyMovement([-vel,0,0],1) print "left" # rightelif right=="on": ow.applyMovement([vel,0,0],1) print "right" Conclusao:Esse template demonstra os principios do funcionamento de Movimento de camera, com ele voce pode usar de base para seus projetos e incrementar mais funcoes.Download do template: aqui Drag and Drop 3D - Arrastar e LargarConceitoNas interfaces graficas de computadores, drag-and-drop (arrastar e largar) e a acao de clicar em um objeto virtual e "arrasta-lo" a uma posicao diferente ou sobre um outro objeto virtual. De maneira geral, ele pode ser usado para invocar diversos tipos de acoes, ou criar varios tipos de associacoes entre dois objetos abstratos.A sequencia basica de acoes relacionadas ao drag-and-drop e:Clicar, e manter o botao do mouse ou outro dispositivo semelhante apertado, para "agarrar" o objeto,"Arrastar" (drag) o objeto/cursor a posicao ou localizacao desejada,"Largar" (drop) o objeto, soltando o botao pressionado.Neste Tutorial iremos abordar um Drag and Drop um pouco diferente, por se tratar de um Drag and Drop 3D, isso quer dizer que diferentemente de um porcedimento 2D onde so um angulo de visao e permitido podemos posicionar nossa camera em qualquer angulo para deslocar o objeto.Vamos para a logica do template.Consiste basicamente em o ponteiro do mouse estar sobre o objeto que se deseja deslocar.Ao clicar com o botao esquerdo do mouse, uma funcao pega as propriedades do objeto e verifica se este possui tal propriedade para permitir o deslocamento.Se este apresentar esta propriedade sua posicao