Generated by Pure CSS Menu.com : Free CSS Drop Down Menu Generator CSS Drop Down Menu by PureCSSMenu.com
Приветствую Вас Гость • Регистрация • Вход • RSS
Четверг, 25.4.2024
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: rasul009  
Форум » Blender » Всё о Blender » Вопросы о Python
Вопросы о Python
DamirGooДата: Вторник, 20.09.2011, 21:21 | Сообщение # 16
          Группа:
          Сообщений: 16
          Награды: 0
          Репутация: 0
          Статус: Offline
Toxa17

вот файл, blender 2.57

http://narod.ru/disk/25787594001/OFF%20Road%20game.blend.html


Сообщение отредактировал DamirGoo - Вторник, 20.09.2011, 21:22
Toxa17Дата: Среда, 21.09.2011, 00:15 | Сообщение # 17
BGE мастер
          Группа:
          Сообщений: 696
          Награды: 11
          Репутация: 23
          Статус: Offline
DamirGoo, вот скрипт:
Code
from bge import logic as g, events

c = g.getCurrentController()

o = c.owner

tc = g.keyboard.events

freio = 0.0
acelerador = 0.0

if tc[events.WKEY]: acelerador -= 80.0
if tc[events.SKEY]: acelerador  = 75.0
if tc[events.AKEY]==2:
      o["virar"]  += 0.1
if tc[events.DKEY]==2:
      o["virar"] -= 0.1
if o["virar"]>0.5:
      o["virar"] = 0.5
if o["virar"]<-0.5:
      o["virar"] = -0.5
if tc[events.SPACEKEY]: freio = 2.7
        
carro = o["carro"]
carro.applyEngineForce(acelerador,2-5)
carro.applyEngineForce(acelerador,3-5)
carro.applyEngineForce(acelerador,4-5)
carro.applyEngineForce(acelerador,5-5)
carro.applyEngineForce(acelerador,6-5)
carro.applyEngineForce(acelerador,7-5)
carro.applyEngineForce(acelerador,8-5)
carro.applyEngineForce(acelerador,9-5)

carro.setSteeringValue(o["virar"],0)
carro.setSteeringValue(o["virar"],1)
carro.setSteeringValue(o["virar"],10)
carro.setSteeringValue(o["virar"],11)

carro.applyBraking(freio,2)
carro.applyBraking(freio,3)
carro.applyBraking(freio,4)
carro.applyBraking(freio,5)
carro.applyBraking(freio,6)
carro.applyBraking(freio,7)
carro.applyBraking(freio,8)
carro.applyBraking(freio,9)

изменив тут:
Code
if tc[events.AKEY]==2:
      o["virar"]  += 0.1

o["virar"] ты изменяешь резкость паворота
изменив тут:
Code
if o["virar"]>0.5:
      o["virar"] = 0.5
if o["virar"]<-0.5:
      o["virar"] = -0.5

число 0,5 на большее увеличиваешь максимальный поворот
Что бы скрипт работал добавь проперти virar на объект 1(там где скрипт стоит)
DamirGooДата: Среда, 21.09.2011, 13:22 | Сообщение # 18
          Группа:
          Сообщений: 16
          Награды: 0
          Репутация: 0
          Статус: Offline
блин, не работает почему-то... с этим скриптом никакие кнопки не работают... (проперти virar добавил)
Toxa17Дата: Среда, 21.09.2011, 16:58 | Сообщение # 19
BGE мастер
          Группа:
          Сообщений: 696
          Награды: 11
          Репутация: 23
          Статус: Offline
DamirGoo, там просто при копировании кода с сайта пробелы везде добавляются, можешь удалить их и всё или вот скрипт в txt файле.
Прикрепления: 4909457.txt (1.2 Kb)
DamirGooДата: Среда, 21.09.2011, 17:25 | Сообщение # 20
          Группа:
          Сообщений: 16
          Награды: 0
          Репутация: 0
          Статус: Offline
Круто ;) большое спасибо >:)
DevilNGДата: Пятница, 07.10.2011, 17:19 | Сообщение # 21
          Группа:
          Сообщений: 82
          Награды: 0
          Репутация: 0
          Статус: Offline
кто знает ? Rasterizer.showMouse(0) - скрыть курсор мыши? или по другому нужно написать?
спрашиваю - потому-что не работает

Добавлено (06.10.2011, 15:09)
---------------------------------------------
всё сделал =)

Добавлено (07.10.2011, 15:11)
---------------------------------------------
from bge import logic as G
from bge import render as R
import Rasterizer
Rasterizer.showMouse(1)
sens = 1.0
owner = G.getCurrentController().owner
cont = G.getCurrentController()
lClick = cont.sensors["lClick"]
if "oldX" not in owner:

G.mouse.position = (0.5,0.5)
owner["oldX"] = 0.0
owner["oldY"] = 0.0

if lClick.positive:

# round() is a hack to work around the floating mouse bug
x= round(0.5 - G.mouse.position[0], 2)
y = round(0.5 - G.mouse.position[1],2)

x *= sens
y *= sens

owner['oldX'] = (owner['oldX']*0.9 + x*0.1)
owner['oldY'] = (owner['oldY']*0.9 + y*0.1)
x = owner['oldX']
y = owner['oldY']

# set the values
owner.applyRotation([0, 0, x], False)
owner.applyRotation([y, 0, 0], True)
Rasterizer.showMouse(0)
# Center mouse in game window
G.mouse.position = (0.5,0.5)

пожалуйста помогите, кто разбирается в питоне, что на что нужно в этом коде поменять, чтоб объект вращался относительно осей сцены, а не относительно своих осей?

Добавлено (07.10.2011, 17:19)
---------------------------------------------
всё сделал=)
блин, сам пишу сам отвечаю))))))))))))))))

DevilNGДата: Воскресенье, 30.10.2011, 19:53 | Сообщение # 22
          Группа:
          Сообщений: 82
          Награды: 0
          Репутация: 0
          Статус: Offline
Toxa17, помнишь ты делал пример перемещение объекта курсором мышки? Так вот в этом примере курсор ставится ровно по центру объекта. А мне нужно чтобы я мог за любую часть объекта тащить. чтобы он к центру не съезжал. я уже весь инет перерыл, даже справочник по питону(не нашел как изменить центр объекта), пробовал сделать скрипт на основе позиции курсора, но объект как-то волнообразно следует. Получается твой пример если подделать с изменением центра объекта, то будет самое то.
в файле то что у меня получилось
Прикрепления: 6611321.blend (354.9 Kb)
Toxa17Дата: Понедельник, 31.10.2011, 19:24 | Сообщение # 23
BGE мастер
          Группа:
          Сообщений: 696
          Награды: 11
          Репутация: 23
          Статус: Offline
DevilNG, вот сделал, наводишь на объект курсором и жмёшь на л.к. мыши и он перемещается, объект в центр не переносится.
Стандартно стоит, надо держать л.к. мыши.
Ещё можешь поменять initial в state и там просто раз жмёшь объект двигается за мышкой, ещё раз перестаёт.
Прикрепления: 111_Cursor2222..f93323_ (327.2 Kb)
DevilNGДата: Вторник, 01.11.2011, 10:57 | Сообщение # 24
          Группа:
          Сообщений: 82
          Награды: 0
          Репутация: 0
          Статус: Offline
Toxa17, спасибо, очень удобное решение)))))))
ТортДата: Вторник, 01.11.2011, 20:41 | Сообщение # 25
Генерал Торт
          Группа:
          Сообщений: 17
          Награды: 1
          Репутация: 2
          Статус: Offline
%)
Toxa17Дата: Среда, 02.11.2011, 16:44 | Сообщение # 26
BGE мастер
          Группа:
          Сообщений: 696
          Награды: 11
          Репутация: 23
          Статус: Offline
Торт, шо ето значит?
ТортДата: Четверг, 03.11.2011, 12:57 | Сообщение # 27
Генерал Торт
          Группа:
          Сообщений: 17
          Награды: 1
          Репутация: 2
          Статус: Offline
флужу смайликами :)
DevilNGДата: Четверг, 17.11.2011, 14:50 | Сообщение # 28
          Группа:
          Сообщений: 82
          Награды: 0
          Репутация: 0
          Статус: Offline
в питоне есть что нибудь типа разбиение кода на части по файлам, а потом один файл подключить к другому?
DevilNGДата: Четверг, 17.11.2011, 15:10 | Сообщение # 29
          Группа:
          Сообщений: 82
          Награды: 0
          Репутация: 0
          Статус: Offline
нашел
ТортДата: Четверг, 08.12.2011, 20:31 | Сообщение # 30
Генерал Торт
          Группа:
          Сообщений: 17
          Награды: 1
          Репутация: 2
          Статус: Offline
Почему куб не крутится по нажатию клавиши пробел? (блен 2,6) cute
Прикрепления: tort_logic.blend (61.5 Kb)
Форум » Blender » Всё о Blender » Вопросы о Python
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: