예제 #1
0
    def update(self, gameengine, current_time):
        xVelocity, yVelocity = self.get_velocity(self.angle, self.speed)

        self.rect.left += xVelocity
        self.rect.top -= yVelocity

        # Check if the projectile went outside the game map.  If so, remove
        # it.
        if not self.rect.colliderect(gameengine.base.get_rect()):
            gameengine.projectiles.remove(self)

        # Check if the projectile collided with any characters
        collided = self.collide(gameengine.characters, [gameengine.player])

        if collided:
            # Projectile collided with a player
            gameengine.projectiles.remove(self)

        else:
            # Check if the projectile collided with any tiles
            localCameraWidth = gameengine.tileengine.tileSize * 5
            localCameraHeight = gameengine.tileengine.tileSize * 5
            localCamera = Camera(localCameraWidth, localCameraHeight,
                                 gameengine.camera.worldMapWidth,
                                 gameengine.camera.worldMapWidth)
            localCamera.update(gameengine.base, self)
            tiles = gameengine.tileengine.get_tiles_pixel(localCamera.window)

            #tiles = gameengine.tileengine.get_tiles_pixel(gameengine.camera.window)
            collided = self.collide(tiles)

            if collided:
                gameengine.projectiles.remove(self)
예제 #2
0
    def __init__(self, winWidth, winHeight):
        self.winWidth = winWidth
        self.winHeight = winHeight
        self.cols = winWidth // constants.TILE_SIZE
        self.rows = winHeight // constants.TILE_SIZE

        pg.init()
        pg.mixer.init()
        pg.display.set_caption("dawn-lite")
        pg.key.set_repeat(10, 50)

        self.stage = Stage(self.cols * 2, self.rows * 2)

        self.stage.fillWith(Tiles.wall)
        for x in range(1, self.stage.width - 1):
            for y in range(1, self.stage.height - 1):
                pos = Vec(x, y)
                self.stage.setTile(pos, Tiles.floor)

        self.font = pg.font.Font(path.join(constants.FONT_PATH,
                                           constants.DEFAULT_FONT),
                                 constants.TILE_SIZE)

        self.player = Hero(Vec(60, 3))
        self.stage.addActor(self.player)

        self.camera = Camera(self, self.stage, self.cols, self.rows)
        self.camera.update(self.player)

        self.window = pg.display.set_mode((self.winWidth, self.winHeight))
        self.clock = pg.time.Clock()
        self.running = True
예제 #3
0
    def update(self, gameengine, current_time):
        # Move our position up or down by one pixel
        if self.xdirection > 0: self.rect.left += self.speed
        elif self.xdirection < 0: self.rect.left -= self.speed

        # Get the tiles around the character to check for collisions.  We
        # limit the check to the local character camera to limit unnecessary
        # collision detection on tiles not near the character
        localCameraWidth = gameengine.tileengine.tileSize * 5
        localCameraHeight = gameengine.tileengine.tileSize * 5
        localCamera = Camera(localCameraWidth, localCameraHeight,
                             gameengine.camera.worldMapWidth,
                             gameengine.camera.worldMapWidth)
        localCamera.update(gameengine.base, self)
        tiles = gameengine.tileengine.get_tiles_pixel(localCamera.window)

        # Do collision detection after moving horizontally
        if self.collide(tiles, True):
            self.xdirection = 0

        #if self.ydirection != 0: self.rect.top += 1*self.jumpspeed
        #elif self.ydirection < 0: self.rect.top -= 1*self.speed

        if not self.onGround:
            # Slow jumping speed due to gravity
            self.ydirection = self.ydirection + self.gravity

            # Check for max falling speed
            if self.ydirection > self.maxFallingSpeed:
                self.ydirection = self.maxFallingSpeed

            self.rect.top += self.ydirection

        # Do collision detection after moving vertically
        if self.collide(tiles, False):
            self.ydirection = 0

        # Check if the character is actually on the ground as it may have
        # moved off a cliff.  Only necessary if the character moved
        # horizontally.

        # Temporary move down 1
        self.rect.bottom += 1

        self.onGround = self.collide(tiles, False)

        # Undo the temporary move down 1 if not on the ground
        if not self.onGround:
            self.rect.bottom -= 1

        # Update the sprite image
        self.update_image(current_time)

        # Update the current item
        if self.currentItem:
            self.currentItem.update(gameengine, self)
예제 #4
0
    def __init__(self, initialWidth, initialHeight):

        self.debugging = True

        self.winWidth = initialWidth
        self.winHeight = initialHeight

        self.clock = pygame.time.Clock()

        # Initialize the camera
        self.camera = Camera(self.winWidth, self.winHeight,
                             WORLD_MAP_PIXEL_SIZE[0], WORLD_MAP_PIXEL_SIZE[1])

        # Load the base (world surface)
        self.base = self.load_base()

        # Load the background
        self.background = self.load_background()

        # Initialize the tile engine
        self.tileengine = TileEngine.fromfilename(WORLD_MAP_FILE, TILE_SIZE)

        # Initialize the player sprites
        self.characters = pygame.sprite.Group()
        self.player = Character([255, 0, 0], (1600, 1000))
        self.characters.add(self.player)

        self.player.equipment.add(item.TileTool(), 1)
        self.player.currentItem = self.player.equipment.get(1)
        self.player.equipment.add(item.Weapon(), 2)
        self.player.equipment.add(item.EnemyTool(), 3)

        # Initialize projectiles
        self.projectiles = pygame.sprite.Group()

        # Initialize different states of the game
        self.playState = gamestate.PlayState()
        self.menuState = gamestate.MenuState()
        self.inventoryState = gamestate.InventoryState(self.player.inventory)
        self.currentState = self.playState
예제 #5
0
    def __init__(self,
                 objects,
                 player_pos,
                 limgpar=[],
                 name='',
                 parallax=True,
                 gravity=2100,
                 music=None):  #Gravity is set experimentally for jumps to 2100
        """ The player spawn in (0,0)  """
        assert objects != []  #Empty GameLevel
        self.camera = Camera()  #Camera
        self.camera.set_position(Vector(-12, -12))
        self.camera.set_dimension(Vector(25, 25))
        self.objects = objects
        self.player_pos = player_pos
        self.compute_size_level()
        self.name = name
        self.music = music

        #Creation of the gravity
        self.gravity = Gravity(
            gravity
        )  #NOTE POUR LES RAGEUX : On a testé et ca marche bien avec cette valeur -> ca permet d'avoir un saut élegant

        self.begin_time = 0
        self.time = 0  #Time Referential of the level

        #Death animation
        self.lost = False
        self.countdown = 1

        #Creation of the player
        self.player = Player()
        self.player.set_position(0, -16)  #Init pos of the player
        self.objects.append(self.player)
        self.player.link_world(self)

        #Camera Y scrolling
        self.camera_y_pos = self.player.get_position().y

        #To optimise physics
        self.sorted_objects = None
        self.dynamic_objects = set([self.player])
        self.opti_step = 10
        self.optimise_data()
        self.progression = 0

        #Get end platform locations to compute score
        self.end_platform_location = None
        self.compute_end_platform_location()

        #Load Background
        self.parallax = parallax
        self.load_bg(limgpar)

        #Link worlds
        for o in objects:
            o.link_world(self)

        #End the initialisatio
        self.end_init()
예제 #6
0
파일: cubes.py 프로젝트: acosta/miru
from raymarching.scene import Scene
from raymarching.sdfcube import SDFCube

from engine.camera import Camera
from engine.vector import Vector3

import os

scene = Scene()

c = Camera()
c.fov = 90
scene.set_camera(c)

cube = SDFCube(Vector3(2, 2, 1))
cube.transform.position = Vector3(0.0, 0.0, 4.0)

scene.add_objects(cube)

if os.path.exists("/sdcard/Raytracing/"):
    render_image = "/sdcard/Raytracing/test"
else:
    render_image = 'test'

render_extension = '.jpg'

render_sizex = 50
render_sizey = 50

scene.render(render_sizex, render_sizey, render_image + render_extension)
예제 #7
0
#Initialize variables
txt = None
with open('engine/testMap.txt', 'r') as file:
    txt = file.readlines()
world = World(txt)
world.player.speed = 4
world.player.acts = [attackPlayer, death]
world.player['beard'] = 'mustache'
world.player['right hand'] = 'spear'
world.player['left hand'] = 'arrow'

for i in range(12):
    addEnemy()

camera = Camera(background, world, 1)

# profile = cProfile.Profile()
# profile.enable()


#main infinite loop
def main():
    #        default event loop
    for event in pygame.event.get():
        #             Quit conditions
        if event.type == pygame.QUIT or pygame.key.get_pressed()[
                pygame.K_ESCAPE]:
            return False

#         update calls
예제 #8
0
from engine.base.program import getLinkedProgram
from engine.renderable.model import Model
from engine.buffer.texture import *
from engine.buffer.hdrbuffer import HDRbuffer
from engine.buffer.blurbuffer import Blurbuffer
from engine.effect.shadow import Shadow
from engine.effect.bloom import Bloom
from engine.generator import generateVoxelPositions
from engine.camera import Camera
from engine.config import config

cube, hdrbuffer, blurbuffer, lastPosX, lastPosY = None, None, None, None, None
firstTime = True
width, height = config['window_width'], config['window_height']
camera = Camera(
    glm.vec3(config['world_width'] / 2, config['world_height'] + 1,
             config['world_depth'] / 2))


def main():
    global hdrbuffer, blurbuffer, cube

    if not glfw.init():
        print('Failed to initialize GLFW.')
        return

    glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, 3)
    glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, 3)
    glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE)
    glfw.window_hint(glfw.OPENGL_FORWARD_COMPAT, GL_TRUE)
    glfw.window_hint(glfw.SAMPLES, config['sampling_level'])
예제 #9
0
파일: main.py 프로젝트: jarys/engine
from engine import game
from engine.net.online import client

game.client = client
#from Box2D import b2World
#game.init(world=b2World(gravity=(0, 0), doSleep=True))

#import rule_connect
#rule_connect.add()
from engine.camera import Camera

Camera().add()

from engine.assets import camera_control

camera_control.add()

#import b2draw
#b2draw.init()

#from engine.assets.firefly import Firefly
import random
for _ in range(100):
    pass  #Firefly(random.randint(-40, 40), random.randint(-30, 30)).add()

#from engine.assets.tilemap import TileMap, SolidBlock
#tilemap = TileMap((0, 0), (10, 10))
#tilemap.add()

from engine.entity import Entity
from engine.net.online import online, online_entity
예제 #10
0
import os
import pdf2image
from sys import stdout

app = Flask(__name__)
CORS(app)

UPLOAD_FOLDER = os.path.basename('uploads')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user_data.db'
db = SQLAlchemy(app)
app.logger.addHandler(logging.StreamHandler(stdout))
app.config['SECRET_KEY'] = 'secret!'
app.config['DEBUG'] = True
socketio = SocketIO(app)
camera = Camera(Makeup_artist())


class User(db.Model):
    """Model for Users"""
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String)
    last_name = db.Column(db.String)
    email = db.Column(db.String, unique=True)
    password = db.Column(db.String)
    country = db.Column(db.String)


db.create_all()

예제 #11
0
파일: bubbles.py 프로젝트: jarys/bubbles
import engine.game as game
game.init()

#import rule_connect
#rule_connect.add()
from engine.camera import Camera
Camera(zoom=0.02).add()

import engine.assets.camera_control as camera_control
camera_control.add()

from bullet import Bullet
from bubble import Bubble
import random
from engine.physics import Vec2
#Bubble((0, 0), 1).add()

import control
control.add()

from grid import Grid
Grid().add()

game.start()
 def setUp(self):
     self.camera = Camera(glm.vec3(0, 0, 0))
     self.camera.speed = 2
     self.camera.sensitivity = 2
     self.projection = helper.getProjection()
예제 #13
0
        # final point, final line, connects back to first point
        elif idx == len(polygon) - 1:
            lineDef.asLeaf(lineDefs[-1], lineDefs[0], polygon[idx][2],
                           polygon[idx][3])
            lineDefs.append(lineDef)
            allLineDefs.append(lineDef)

solidBsp = SolidBSPNode(allLineDefs)
#print(solidBsp.toText())

# TESTING WALL DRAWING
wallTest = allLineDefs[4]
# camPoint = [90, 150]
# camDirRads = 0
# camDir = engine.mathdef.toVector(camDirRads)
camera = Camera()
camera.worldX = 150
camera.worldY = 60
camera.angle = -math.pi / 2

# testPoint = [60, 20]
# for lineDef in allLineDefs:
#     isBehind = lineDef.isPointBehind(testPoint[0], testPoint[1])
#     print(lineDef.start, lineDef.end, lineDef.facing, isBehind)
# print(solidBsp.inEmpty(testPoint))

display = Display(1920, 1080)
listener = EventListener()
pygame.mouse.set_visible(False)
pygame.event.set_grab(True)
font = pygame.font.Font(None, 36)