From d0d7376ad8099a63d7ee9a721f22d1d81434de74 Mon Sep 17 00:00:00 2001 From: eugenep Date: Thu, 8 Apr 2021 16:29:37 +0200 Subject: [PATCH] Implement direction movement --- images/robot1.bmp | Bin 0 -> 12426 bytes main.py | 8 ++++---- sprites.py | 44 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 images/robot1.bmp diff --git a/images/robot1.bmp b/images/robot1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e20fa62678e53791465aa19ae11dbd9c7183b5bb GIT binary patch literal 12426 zcmeHLX;4#F6vk<%Gwt6_XZowtAL^hZDk4h)A_giU0wJ;`Aq#N52msWAqf>qlBipy9xAOsSi3W6XY0)eqES#HnGC21BwJJT0*=G}RD-1oTez3+VY zJLlYcSRvVSos2CT>;8~sgj`W$-DM*mMPOlRceL=Jodu>zN-WYj!&j=l87XJ77o zI>pb;?bD37xaodzaUUHybm(KBPgEaF744g6dK&-z(DDNMh;B3kGy^mPGy^mPGy^mP zGy^mP?=u5>y@Xn!r5Rjyt9@8HbD4BcrXTxdgCw$53oeuq^LhxTD&7|LsI;T z_*lv66|%H-Nr(3Dy-{5?GBQGdfvI}^J24kPCQ*e(qbbbGT^h`p?;ki%EN7Ob>)Ql`?JzglJ6)Qh!t2-4kp_Ab7tCqC@%E%X1elM1Rc8?)1Z}g zAlYLS+ks*q;WPB%khCJ+#~ z;LQkIpAp}V#19b$*`SMQG{iKbu@9wQsL+bkNY;&b$Ev2e%vqj)9J_>LO&|f}NpGK@ zmxp|BVL~tBD-A~E#PII|z|>h)p^@BmxV zhD5EPB`pYkVk^J|>0`t_aN611@7NRU$B^N$A(Syt%D}^m3HgZ$2^pEY(w?G-I#7;{<_(^# zujbBn@kz}VDPBYH#It~%+Gd#PvOy0)De7X=Ooq?CW(|A-(g{Tt5aoAvbp`{oT`z$Hu=ezPAqCpiLKK-z&8$X18uln&ts{(ld! z#9!V%7^%Xp`u6zEvvBqLjey00-^hfARsEO*<0P8#b8|{@45bV|(NBf?vEaY!r%9#e z3xp7R%PT4>U!cSXh~HosjQ}S7@C(Xb0e-3?5WE^ia6`^szq7I(3EtX&HN(TH8#gZS z@+ip5y`w?f`cO!nKH3c4=mManc|qJY<+m{X6!kpj2u2feAvf1JYUd`=$=U*ae3kt2(!eY-R>zVV{+%Ul{2)htHsaZjoU6{Sd z_hM^LG+w+}yRgOjVVOK}v9EX8>C@LG2pSF-j*Kd2Wv+fPN+Vu>D)*GS}STOd;@g3v(E&8I$*~{nXLmYc3 z5)Zr?ntA=ah~aVJ!P96Qg{-nLteH6n&kBEQ**}Z~O(?8RYbABF=1m>4er7~TLpSG8 zl(`6U^O;P+maQ3av63SrAPl|4IuS@<3*U;7;|=?Gv>Wl0{Y&V9vKiifR|g!ie*r6q z7eI%@W@ql+yK@L}YqgdpfIq@2dSc|D9I}7pUsg|@H9PmpeRv_19pUVNMpV?(+vnry z{%wBY<^jZ07(^3nQcP+Ybphl49kyNk%7@eDxTYUDg)!^2)I^=J`5-E4@96MjdL^ZA z+uDr;50K!k>nF>)QOJ+g(_QB5DmjKfKxNDs+W<7WupAf~iiwKk1P8CZR38ULHrTvR zP`_%$^(*1MVGsERrl)&(rLlfBc~wL*3t(VTVPSv|(_g%jccKQ@4?D-JAGR{qXSy=H zQU{}B0;L72#SgiDvwM`BG)^F`!I4O6` z69HduRMej+DcZg%)w+JZ=X!Oexqc4g&2el}0NZ~Q@K{=5KY-kUF(iDAH(=8513Ump la6;dF33uK#&L^EK8UW1z%>c~+%>c~+%>c~+&A@xdz&~c*uIm5* literal 0 HcmV?d00001 diff --git a/main.py b/main.py index ffe2cc8..245cba8 100644 --- a/main.py +++ b/main.py @@ -79,13 +79,13 @@ class Game: if event.key == pg.K_ESCAPE: self.quit() if event.key == pg.K_LEFT: - self.player.move(dx=-1) + self.player.move(dx=-1, direction='Left') if event.key == pg.K_RIGHT: - self.player.move(dx=1) + self.player.move(dx=1, direction='Right') if event.key == pg.K_UP: - self.player.move(dy=-1) + self.player.move(dy=-1, direction='Up') if event.key == pg.K_DOWN: - self.player.move(dy=1) + self.player.move(dy=1, direction='Down') def show_start_screen(self): pass diff --git a/sprites.py b/sprites.py index 7b1d70e..bfc1696 100644 --- a/sprites.py +++ b/sprites.py @@ -1,28 +1,64 @@ import pygame as pg +import enum from settings import * class Player(pg.sprite.Sprite): - def __init__(self, game, x, y): + def __init__(self, game, x, y, direction = 'Right'): self.groups = game.all_sprites pg.sprite.Sprite.__init__(self, self.groups) self.game = game #self.image = pg.Surface((TILESIZE, TILESIZE)) self.image = pg.image.load('images/robot.bmp') + self.baseImage = pg.image.load('images/robot.bmp') #self.image.fill(YELLOW) self.image = pg.transform.scale(self.image, (TILESIZE, TILESIZE)) + self.baseImage = pg.transform.scale(self.image, (TILESIZE, TILESIZE)) self.rect = self.image.get_rect() self.x = x self.y = y + self.direction = direction - def move(self, dx=0, dy=0): - self.x += dx - self.y += dy + def move(self, dx=0, dy=0, direction = ''): + if direction == self.direction: + if self.direction == Direction.Right.name: + if dx > 0: + self.x += dx + + if self.direction == Direction.Up.name: + if dy < 0: + self.y += dy + + if self.direction == Direction.Down.name: + if dy > 0: + self.y += dy + + if self.direction == Direction.Left.name: + if dx < 0: + self.x += dx + + elif direction != self.direction: + self.direction = direction + print(self.direction) + """if self.direction == Direction.Up.name: + self.image = pg.transform.rotate(self.baseImage, 90) + if self.direction == Direction.Right.name: + self.image == pg.transform.rotate(self.baseImage, 360) + if self.direction == Direction.Down.name: + self.image == pg.transform.rotate(self.baseImage, -90) + if self.direction == Direction.Left.name: + self.image == pg.transform.rotate(self.baseImage, -180)""" + def update(self): self.rect.x = self.x * TILESIZE self.rect.y = self.y * TILESIZE +class Direction(enum.Enum): + Up = 1; + Left = 2; + Down = 3; + Right = 4; class Mine(pg.sprite.Sprite):