Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cdfe4ddf1f |
@@ -0,0 +1,91 @@
|
|||||||
|
import arcade
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
class MainView(arcade.View):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.background_color = (100,100,200)
|
||||||
|
self.engine = arcade.PymunkPhysicsEngine(gravity=(0, 0))
|
||||||
|
self.key_up = False
|
||||||
|
self.key_down = False
|
||||||
|
self.key_left = False
|
||||||
|
self.key_right = False
|
||||||
|
|
||||||
|
self.objects = arcade.SpriteList()
|
||||||
|
for _ in range(10):
|
||||||
|
self.objects.append(
|
||||||
|
arcade.Sprite(
|
||||||
|
':resources:/images/tiles/bomb.png',
|
||||||
|
scale=0.5,
|
||||||
|
center_x = randint(0,800),
|
||||||
|
center_y = randint(0,800)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.engine.add_sprite_list(
|
||||||
|
self.objects,
|
||||||
|
mass=1,
|
||||||
|
friction=0.0,
|
||||||
|
elasticity=0.0,
|
||||||
|
moment_of_inertia=float('inf'),
|
||||||
|
damping=0.1
|
||||||
|
)
|
||||||
|
|
||||||
|
self.walls = arcade.SpriteList()
|
||||||
|
for i in range(15):
|
||||||
|
for j in range(15):
|
||||||
|
if i==0 or j==0 or i==12 or j==12:
|
||||||
|
self.walls.append(
|
||||||
|
arcade.Sprite(
|
||||||
|
':resources:/images/tiles/brickBrown.png',
|
||||||
|
scale=0.5,
|
||||||
|
center_x = 32 + i*64,
|
||||||
|
center_y = 32 + j*64
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.engine.add_sprite_list(
|
||||||
|
self.walls,
|
||||||
|
body_type=arcade.PymunkPhysicsEngine.STATIC)
|
||||||
|
|
||||||
|
def on_update(self, delta_time):
|
||||||
|
self.objects.update()
|
||||||
|
for obj in self.objects:
|
||||||
|
if self.key_up:
|
||||||
|
self.engine.apply_force(obj,(0,100))
|
||||||
|
if self.key_down:
|
||||||
|
self.engine.apply_force(obj,(0,-100))
|
||||||
|
if self.key_left:
|
||||||
|
self.engine.apply_force(obj,(-100,0))
|
||||||
|
if self.key_right:
|
||||||
|
self.engine.apply_force(obj,(100,0))
|
||||||
|
|
||||||
|
self.engine.step(delta_time)
|
||||||
|
|
||||||
|
def on_draw(self):
|
||||||
|
self.clear()
|
||||||
|
self.objects.draw()
|
||||||
|
self.walls.draw()
|
||||||
|
|
||||||
|
def on_key_press(self,key,mod):
|
||||||
|
if key == arcade.key.W:
|
||||||
|
self.key_up = True
|
||||||
|
if key == arcade.key.S:
|
||||||
|
self.key_down = True
|
||||||
|
if key == arcade.key.A:
|
||||||
|
self.key_left = True
|
||||||
|
if key == arcade.key.D:
|
||||||
|
self.key_right = True
|
||||||
|
def on_key_release(self,key,mod):
|
||||||
|
if key == arcade.key.W:
|
||||||
|
self.key_up = False
|
||||||
|
if key == arcade.key.S:
|
||||||
|
self.key_down = False
|
||||||
|
if key == arcade.key.A:
|
||||||
|
self.key_left = False
|
||||||
|
if key == arcade.key.D:
|
||||||
|
self.key_right = False
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
window = arcade.Window(800,800,'')
|
||||||
|
view = MainView()
|
||||||
|
window.show_view(view)
|
||||||
|
arcade.run()
|
||||||
Reference in New Issue
Block a user