Mercurial > touhou
annotate pytouhou/game/orb.py @ 784:1f152ca95658
Replace pytouhou.utils.random.Random with a Rust version
libtouhou.Prng now supports having its seed generated randomly using the
getrandom crate, and is now exposed to Python.
| author | Link Mauve <linkmauve@linkmauve.fr> |
|---|---|
| date | Sun, 23 Nov 2025 12:48:03 +0100 |
| parents | e35bef07290d |
| children |
| rev | line source |
|---|---|
| 199 | 1 # -*- encoding: utf-8 -*- |
| 2 ## | |
| 3 ## Copyright (C) 2011 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | |
| 4 ## | |
| 5 ## This program is free software; you can redistribute it and/or modify | |
| 6 ## it under the terms of the GNU General Public License as published | |
| 7 ## by the Free Software Foundation; version 3 only. | |
| 8 ## | |
| 9 ## This program is distributed in the hope that it will be useful, | |
| 10 ## but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 12 ## GNU General Public License for more details. | |
| 13 ## | |
| 14 | |
|
547
e35bef07290d
Always import runners from pytouhou.vm, to allow their replacement.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
494
diff
changeset
|
15 from pytouhou.vm import ANMRunner |
| 199 | 16 |
| 17 | |
|
440
b9d2db93972f
Add a base Element class for every object in pytouhou.game.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
433
diff
changeset
|
18 class Orb(Element): |
|
494
6be9c99a3a24
Merge PlayerState into Player, fix player respawn position.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
471
diff
changeset
|
19 def __init__(self, anm, index, player): |
|
440
b9d2db93972f
Add a base Element class for every object in pytouhou.game.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
433
diff
changeset
|
20 Element.__init__(self) |
|
b9d2db93972f
Add a base Element class for every object in pytouhou.game.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
433
diff
changeset
|
21 |
|
304
f3099ebf4f61
Update attribute names to reflect the actual interface.
Thibaut Girka <thib@sitedethib.com>
parents:
200
diff
changeset
|
22 self.sprite = Sprite() |
|
430
c9433188ffdb
Remove AnmWrapper, since ANMs are lists of entries now.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
304
diff
changeset
|
23 self.anmrunner = ANMRunner(anm, index, self.sprite) |
| 199 | 24 |
| 25 self.offset_x = 0 | |
| 26 self.offset_y = 0 | |
| 27 | |
|
494
6be9c99a3a24
Merge PlayerState into Player, fix player respawn position.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
471
diff
changeset
|
28 self.player = player |
| 199 | 29 |
| 30 | |
| 31 def update(self): | |
|
304
f3099ebf4f61
Update attribute names to reflect the actual interface.
Thibaut Girka <thib@sitedethib.com>
parents:
200
diff
changeset
|
32 self.anmrunner.run_frame() |
|
494
6be9c99a3a24
Merge PlayerState into Player, fix player respawn position.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
471
diff
changeset
|
33 self.x = self.player.x + self.offset_x |
|
6be9c99a3a24
Merge PlayerState into Player, fix player respawn position.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
471
diff
changeset
|
34 self.y = self.player.y + self.offset_y |
