pyglet-rs update

no build yet
This commit is contained in:
shenjack 2023-03-23 20:28:58 +08:00
parent 3bef1ead08
commit 71f0def9e9
2 changed files with 76 additions and 11 deletions

View File

@ -1,14 +1,19 @@
pub fn add(left: usize, right: usize) -> usize { /*
left + right * -------------------------------
} * Difficult Rocket
* Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
* All rights reserved
* -------------------------------
*/
#[cfg(test)] mod sprite;
mod tests {
use super::*;
#[test] use pyo3::prelude::*;
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4); #[pymoudule]
} #[pyo3(name = "pyglet_rs")]
fn module_init(_py: Python<'_>, m: &PyModule) -> PyResult<()> {
m.add_class::<sprite::Sprite>()?;
Ok(())
} }

View File

@ -0,0 +1,60 @@
/*
* -------------------------------
* Difficult Rocket
* Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
* All rights reserved
* -------------------------------
*/
use pyo3::prelude::*;
/// Instance of an on-screen image
/// See the module documentation for usage.
#[pyclass(name = "Sprite", subclass)]
pub struct Sprite {
// render
pub batch: Py<PyAny>,
pub group_class: Py<PyAny>,
// view
pub x: f64,
pub y: f64,
pub z: f64,
pub scale: f64,
pub scale_x: f64,
pub scale_y: f64,
pub visible: bool,
pub vertex_list: Option<Vec<()>>,
// frame
pub frame_index: u32,
pub animation: Option<Py<PyAny>>,
pub paused: bool,
// other
pub rgba: (i8, i8, i8, i8),
}
#[pymethods]
impl Sprite {
#[new]
#[pyo3(text_signature = "(img, x=0.0, y=0.0, z=0.0, \
batch=None, group=None, \
subpixel=False, program=None)")]
fn new(img: &PyAny, x: f64, y:, batch: &PyAny, group: &PyAny) -> Self {
Sprite {
batch: batch.into(),
x, y, z,
scale: 1.0,
scale_x: 1.0,
scale_y: 1.0,
visible: true,
vertex_list: None,
frame_index: 0,
animation: None,
paused: false,
rgba: (255, 255, 255, 255),
group_class: group.into(),
}
}
}
}