Nathan et Felix (Carnot 2026, Premiere)

UNIVERS / THÈME CHOISI:

U3

MODE D'EMPLOI

Utiliser la flèche du haut pour sauter

PRÉSENTATION / EXPLICATIONS

Tu es entré dans la ferme d'un fou et tu essaie par tous les moyens de t'en échapper, mais les barrières t'en empêchent.

Code Python
import pyxel
import random

class Player:
    def __init__(self, health, coins, level):
        self.health = health
        self.coins = coins
        self.level = level

    def take_damage():
        self.health -= 1

    def take_life():
        self.health += 1

    def take_coin():
        self.coins += 1


class App:
    def reset(self):
        self.x = 0
        self.y = 100
        self.speed = 0
        self.sprite = 0
        self.can_jump = True
        self.test = 112
        self.test2 = 48
        self.running = False
        self.rotate = 16
        self.can_spawn = True
        self.barriere = 40000000
        self.gameo = False


    def __init__(self):
        pyxel.init(128, 128, title="NDC 2023")
        pyxel.load("U3.pyxres")
        self.reset()
        pyxel.run(self.update, self.draw)

    def update(self):
        self.sprite = 0   
        if self.x > 239:
            self.x = 16
        self.rotate = 16
        if self.test != 112:
            self.test = 112
            self.test2 = 48
            self.sprite = 0
        self.x = (self.x + 3)
        self.running = True

        if pyxel.btnp(pyxel.KEY_UP):
            if self.can_jump:
                self.speed = -5
                self.y = 99
        if self.y < 100:
            print(pyxel.pget(self.x, self.y + 2))
            self.y += self.speed
            self.speed += 0.7
            self.can_jump = False
        else:
            self.can_jump = True
        if self.barriere<= self.x < self.barriere+16 and self.y > 92:
            self.gameo = True
        if self.gameo and pyxel.btnp(pyxel.KEY_SPACE):
            self.reset()

    def draw(self):
        if self.gameo:
            pyxel.cls(0)
            self.x = 0
            pyxel.text(90, 50, "game over",8)
            pyxel.text(60, 80, "press space to restart",8)
        else:
            pyxel.cls(0)
            pyxel.camera(self.x-54, 0)
            if self.can_spawn:
                self.can_spawn = False
                print("salut")
                self.barriere = random.randint(int(self.x)+90,int(self.x) + 110)

            if self.x > self.barriere:
                self.can_spawn = False


            pyxel.blt(70, -237, 2, 0, 0, 255, 255, scale=2)
            if self.running == True:
                if pyxel.frame_count % 20 <10:
                    self.test = 128
                    self.test2 = 48
                else:
                    self.test = 144
                    self.test2 = 48
            else:
                self.test = 112
                self.test2 = 48
            pyxel.blt(self.x, self.y, self.sprite, self.test2, self.test, self.rotate, 16, 1)
            pyxel.blt(self.barriere, 100, 0, 64, 32, 16, 16, 1)



App()


#utiliser la camera pour le defilement