a
    {b
                     @   s   d dl m Z  d dlmZ d dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ G d
d dZG dd deZG dd deZG dd deZedkre   dS )    )random)App)Widget)NumericPropertyReferenceListPropertyObjectProperty)Vector)Clock)Color)Logger)	autoclassc                   @   s0   e Zd Zdd Zdd Zedd Zdd Zd	S )
Accelerometerc                 C   s   t d  | _d S )NZCMMotionManager)r   Zallocinitmotion_managerself r   /Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/../../../share/pyobjus-examples/ball-example/main.py__init__   s    zAccelerometer.__init__c                 C   s(   | j  dkr| j   n
td d S )NTzaccelerometer: not available.)r   ZisAccelerometerAvailableZstartAccelerometerUpdatesr   infor   r   r   r   start   s    zAccelerometer.startc                 C   s4   | j jr"| j jj}|j|j|jfS td dS d S )Nz&accelerometer: data not yet available.)r   r   r   )r   ZaccelerometerDataaccelerationabcr   r   )r   r   r   r   r   values   s
    

zAccelerometer.valuesc                 C   s   | j   d S N)r   ZstopAccelerometerUpdatesr   r   r   r   stop    s    zAccelerometer.stopN)__name__
__module____qualname__r   r   propertyr   r   r   r   r   r   r      s
   
r   c                   @   s6   e Zd ZedZedZedZeeeZdd Z	dS )Ballr   c                 C   s   t | j | j | _d S r   )r   velocityposr   r   r   r   move+   s    z	Ball.moveN)
r   r   r    r   
velocity_x
velocity_yhr   r#   r%   r   r   r   r   r"   $   s
   
r"   c                       sn   e Zd ZedZeed Ze Z	edZ
edZ fddZ fddZdd	 Zd
d Zdd Z  ZS )PyobjusGameNZUIScreen2   c                    s   t t|   | j  d S r   )superr)   r   accelerometerr   r   argskwargs	__class__r   r   r   8   s    zPyobjusGame.__init__c                    s   | j   tt|   d S r   )r,   r   r+   r)   __dealloc__r-   r0   r   r   r2   <   s    
zPyobjusGame.__dealloc__c                 C   s   | j d | jd f| j_d S )N   )widthheightballr$   r   r   r   r   reset_ball_posA   s    zPyobjusGame.reset_ball_posc                 C   s   | j j| j_d S r   )	br_slidervaluescreenZ
brightnessr   r   r   r   on_bright_slider_changeD   s    z#PyobjusGame.on_bright_slider_changec                 C   s   | j   | jj}|d | j | j _|d | j | j _| j jdk sP| j j| j	krb| 
  t | j _| j jdk s|| j j| jkr| 
  t | j _d S )Nr      )r6   r%   r,   r   sensitivityr&   r'   ytopr5   r7   r   r(   xrightr4   )r   dtvalr   r   r   updateG   s    

zPyobjusGame.update)r   r   r    r   r6   r   Z
mainScreenr:   r   r,   r=   r8   r   r2   r7   r;   rD   __classcell__r   r   r0   r   r)   /   s   r)   c                   @   s   e Zd Zdd ZdS )PyobjusBallAppc                 C   s   t  }t|jd |S )Ng?)r)   r	   Zschedule_intervalrD   )r   Zgamer   r   r   buildY   s    zPyobjusBallApp.buildN)r   r   r    rG   r   r   r   r   rF   W   s   rF   __main__N)r   Zkivy.appr   Zkivy.uix.widgetr   Zkivy.propertiesr   r   r   Zkivy.vectorr   Z
kivy.clockr	   Zkivy.graphicsr
   Zkivy.loggerr   Zpyobjusr   r   r"   r)   rF   r   runr   r   r   r   <module>   s   (