soya3d + pygame (+ ode)
Verfasst: Freitag 11. April 2008, 07:49
olla zsamm!
folgendes quält mich: ich möchte ne kleine welt basteln, in der ich, physisch korrekt, mit nem fahrzeug rumdüsen kann. so weit, so gut..
es gibt da ein paar verschiedene ansätze:
visualisation und eventhandling mittels pygame, ode als physik-engine, was auch ganz gut klappt und sogar recht übersichtlich ist.. solange kein opengl vorkommt (is mir zZ. ein zu schwerer brocken, und überhaupt..).
also die visu mit nem andren tool, wie zB. soya. ist mir recht sympathisch (kein verrücktes gl..(geschalte)
und nun bekomme ichs einfach nicht zusammen, irgendwas is faul.. und mir brennen langsam die augen
hier mein versuch mit nem listing aus dem soya-tut:
der bildschirm bleibt schwarz und was mich noch mehr stutzig macht, ist, daß soya einfach nicht richtig beendet wird.. also auch bei anderen, von mir bisher unangetasteten beispielen.
und ich finde partou keinen hinweis, wie sich soya ordentl "killen" läßt..
folgendes quält mich: ich möchte ne kleine welt basteln, in der ich, physisch korrekt, mit nem fahrzeug rumdüsen kann. so weit, so gut..
es gibt da ein paar verschiedene ansätze:
visualisation und eventhandling mittels pygame, ode als physik-engine, was auch ganz gut klappt und sogar recht übersichtlich ist.. solange kein opengl vorkommt (is mir zZ. ein zu schwerer brocken, und überhaupt..).
also die visu mit nem andren tool, wie zB. soya. ist mir recht sympathisch (kein verrücktes gl..(geschalte)
und nun bekomme ichs einfach nicht zusammen, irgendwas is faul.. und mir brennen langsam die augen
hier mein versuch mit nem listing aus dem soya-tut:
Code: Alles auswählen
import os, os.path, sys
import traceback
try:
import soya
import pygame
except ImportError:
traceback.print_exc()
res = (800, 600)
def main():
pygame.display.init()
screen = pygame.display.set_mode(res, pygame.OPENGL | pygame.DOUBLEBUF)
pygame.display.set_caption("soyax")
run = True
events = pygame.event.get()
dir_root = os.path.dirname(__file__)
soya.path.append(os.path.join(dir_root, "data", "soya", "data"))
soya.init(create_surface = 0)
scene = soya.World()
sword_model = soya.Model.get("sword")
sword = soya.Body(scene, sword_model)
sword.set_xyz(1.0, 0.0, 0.0)
sword.rotate_y(90.0)
light = soya.Light(scene)
light.set_xyz = (0.5, 0.0, 2.0)
camera = soya.Camera(scene)
camera.z = 2.0
soya.set_root_widget(camera)
soya.MainLoop(scene).main_loop()
# irgendwo hier vermutlich ist das problem..
while run:
for e in events:
if e.type == QUIT:
run = False
pygame.display.flip()
soya.MAIN_LOOP.stop()
pygame.quit()
if __name__ == "__main__": main()
und ich finde partou keinen hinweis, wie sich soya ordentl "killen" läßt..
Code: Alles auswählen
if __name__ == "__brain__": brain.zuHilf("!")