mouse_drag.py
Maus bewegt Kugel immer nur in einer fixen Ebene (wichtig für Spielideen ähnlich Schach, Schiffe versenken, ...)
mouse_drag.py — text/python-source, 1 KB (1516 bytes)
Dateiinhalt
# -*- coding: utf-8 -*- # visual - mouse drag from visual import * scene.range = 5 ball = sphere(pos=(-3,0,0), color=color.cyan) # blaue Kugel cube = box(pos=(+3,0,0), size=(2,2,2), color=color.red) # roter Würfel pick = None # Variable zeigt Mauskontakt while True: rate(100) if scene.mouse.events: # falls Maustaste gedrückt... m1 = scene.mouse.getevent() # event in m1 speichern if m1.drag and m1.pick == ball: # falls Mauskontakt mit Objekt drag_pos = m1.pickpos # speichern der Kontaktkoordinaten in drag_pos pick = m1.pick # pick gesetzt elif m1.drop: # falls Maustaste losgelassen... ball.opacity=1 # Transparenz deaktiviert pick = None # Mauskontakt vorüber if pick: # falls Mauskontakt... new_pos = scene.mouse.project(normal=(0,0,1)) # Neuposition immer in xy-Ebene.. ball.opacity=0.2 # Kugel transparent if new_pos != drag_pos: # falls Neuposition ungleich Mauspos... pick.pos += new_pos - drag_pos # aktualisiert pickpos drag_pos = new_pos # aktualisiert dragpos