Kamera RTS

Problemy ze skryptami w BGE.
Felioz
Posty: 23
Rejestracja: 10 paź 2012, 14:07

Kamera RTS

Postautor: Felioz » 02 sty 2017, 18:52

Witam pythoniarzy!

Wziąłem się swego czasu za grę TD i mam problem ze skryptami. Chcę aby kamera poruszała się jak w Total War, tzn. "kursor na krawędzi" oraz klawisze wsad. No z tym "wsad"-em jest problem. Załączam plik

Kod: Zaznacz cały

from bge import logic, events
from mathutils import Vector
import input

def function(cont):
    own = cont.owner
   
def rts_camera(cont):
    #cont = bge.logic.getCurrentController() #potrzebne do "wsad-u"
    own = cont.owner
    position = input.rts_cam(0.95, 0.7)
    own.applyMovement(position, False)
    #keyboard = bge.logic.keyboard            #wsad
        #wKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.WKEY]#wsad
        #sKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.SKEY]#wsad
        #aKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.AKEY]#wsad
        #dKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.DKEY]#wsad
   
    #if wKey:                                 #wsad
     #  own.applyMovement([0,0.2,0],True)     #wsad
       
#def wsad_movement():
#   
#    keyboard = bge.logic.keyboard            #wsad
#        wKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.WKEY]#wsad
#        sKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.SKEY]#wsad
#        aKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.AKEY]#wsad
#        dKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.DKEY]#wsad
   
#    if wKey:                                 #wsad
#       Camera.applyMovement([0,0.2,0],True)     #wsad
#    if sKey:
#       Camera.applyMovement([0,-0.2,0],True)
#    if aKey:
#       Camera.applyMovement([-0.2,0,0],True)
#    if dKey:
#       Camera.applyMovement([0.2,0,0],True)           
   
       


oraz "input"

Kod: Zaznacz cały

from bge import logic
from mathutils import Vector
import numpy
mouse = logic.mouse

def rts_cam(min, speed):
    posx = mouse.position[0] * 2 - 1
    posy = mouse.position[1] * 2 - 1
    if abs(posx) < min:
        posx = 0.0
    if abs(posy) < min:
        posy = 0.0
    return Vector((posx, -posy, 0.0)) * speed       
       

Wróć do „Python”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość