Pacman Game Tutorial with JavaScript and HTML5 Canvas

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 135

  • @workfromhome5724
    @workfromhome5724 2 ปีที่แล้ว +11

    Chris just don't stop making
    javascript game tutorials.we are all subscribing to you.

  • @tomevans5062
    @tomevans5062 ปีที่แล้ว +2

    These are currently the best JS game tutorials. I'll have to subscribe to add the additional features - sound, etc.

    • @ChrisCourses
      @ChrisCourses  ปีที่แล้ว +1

      Thanks Tom, working hard on these, but have been a huge slacker on the Pacman course. Finishing the multiplayer one here on TH-cam then deciding what to hit hard next

  • @irizavr
    @irizavr 2 ปีที่แล้ว +6

    OMG, you're the the best course marker that i've ever seen!
    I'm not from eng-speaking country, but your tutorials are really clear and full of information!
    And also your web-site is JUST OMG I WANNA LIVE THERE ! It's soooo comfortable and useful! Plan to watch, study and grow up as developer by your courses AND to donate to you of cause! Your channel is the best!

  • @lucaslima7759
    @lucaslima7759 2 ปีที่แล้ว +4

    How this guy has so few subs? Let's help to share his content everyone

  • @2kBofFun
    @2kBofFun ปีที่แล้ว +2

    Awesome.
    For the movement/collision, remember how Pac-Man plays: if you move through an aisle to the right, you can already press up, and once you can move up, it will change the direction. You never need to hold keys in real Pac-Man, just give orders of direction up front with small nudges with the stick. If you want to make it even more realistic, make the velocity 1, but change the amount of updates per second for pac-man and the ghosts, so you can adjust the speed of player and enemy gradually when the game advances.

    • @shigzgd5072
      @shigzgd5072 ปีที่แล้ว +1

      changing the velocity creates a constant movement how would i go about updating it per second ? player.velocity.y = 1

  • @christalwillett5399
    @christalwillett5399 ปีที่แล้ว +1

    Excellent tutorial, explained perfectly. I appreciate the inclusion of mistakes and how to fix them.

  • @jeskah1931
    @jeskah1931 2 ปีที่แล้ว +8

    I was looking for a html project to play with, this is awesome!

  • @stanleychukwu7424
    @stanleychukwu7424 2 ปีที่แล้ว +3

    man, you're going off the grid this year!!!! Goodluck champ!!

  • @DopEZTam
    @DopEZTam 2 ปีที่แล้ว +5

    Hi Chris, Great video so far! Please upload more of these

  • @JoeKnouse
    @JoeKnouse 2 ปีที่แล้ว +8

    This was pretty fantastic. A great tutorial with much to learn along the way.

  • @bilaledu9206
    @bilaledu9206 ปีที่แล้ว +6

    This is an awesome tutorial! Easy to understand and broke down into meaningful and clear steps. I've learned so much coding chapter by chapter along with you. Thanks a lot and keep it up! 🙌

  • @zuoh
    @zuoh 4 หลายเดือนก่อน

    I am so thankful that i've made the right choice by watching your video
    I'm at the 2:25:33 mark (Add win condition) - I appreciated every single seconds (also had to go backward a few times to understand things more clearly)
    I don't know what else to say, just thanks for that free video man

  • @josephcieplak8920
    @josephcieplak8920 2 ปีที่แล้ว +5

    Your tutorials are the best!

  • @darkl3iaX
    @darkl3iaX 2 ปีที่แล้ว +1

    I LOVE IT!!!!!!!!!! GOD dude, you should be at least top 5 in the youtuber list.

    • @ChrisCourses
      @ChrisCourses  2 ปีที่แล้ว +1

      That would be pretty sick, maybe one day 👀

    • @darkl3iaX
      @darkl3iaX 2 ปีที่แล้ว

      @@ChrisCourses trust me, you will. Im watching every single video in your channel (pressing like), and all of them are pure gold. Amazing skills, totally envy you if i had at least half of your knowledge i would be able to reach my dream. (Find a job in USA or Canada). Keep it up!

  • @lyon8539
    @lyon8539 9 หลายเดือนก่อน +3

    at the confusing bit 1:04:17 when you are done with the function it would be nice if you even checked everything, that would be easier to follow. It took me a while because I had an error and couldn't find it. But it is a great tutorial

  • @AdeelKhan-ox1bs
    @AdeelKhan-ox1bs 2 ปีที่แล้ว +1

    Hello Chris! looking forward to more of these types of videos. A video related to your pokemon game would be great!

  • @DoorsExciteMe
    @DoorsExciteMe 2 ปีที่แล้ว +3

    These canvas games are amazing Chris!

  • @marwahaj-hassan568
    @marwahaj-hassan568 7 หลายเดือนก่อน

    just finished this video for a school project.
    I've been writing notes of everything you said and explained and wrote the whole code with many comments and all these stuff.
    I just want to say that you are really REALLY good at teaching and thank u so much for this tutorial!!
    Bcz of you i now have huge interest in js and it might be my first time ever liking programming that much!!
    Unfortunatly i dont have the ability to get the premium package but i will support you in otherways!
    Thank u so much again

    • @messiisthebest
      @messiisthebest 5 หลายเดือนก่อน

      do you have code, i am stuck at ghost random movement

  • @gektorix
    @gektorix 2 ปีที่แล้ว +3

    I tried to write a game using functional programming and realized that OOP allows to have more abstract interaction with different objects. Thanks Chris for using the latest JS updates.

  • @johnadriandodge
    @johnadriandodge 2 ปีที่แล้ว +2

    Dear Jedi Chris
    WOW and WHOA!!
    What an amazing display of using advanced JS, with object-oriented techniques.
    You have a superb ability to rapidly code and speak, super clean and super clear, while doing it simultaneously!
    Much appreciation Jedi C.
    Double Jedi for you.

  • @gektorix
    @gektorix 2 ปีที่แล้ว +2

    Chris, that was the hardest project for me. I had to start from the beginning twice because I couldn't figure out the paddings myself. I also didn't use game assets and just used 'strokeStyle'. Anyway, you're my hero. Keep up the good work!

  • @mendes5015
    @mendes5015 2 ปีที่แล้ว +15

    Sou do Brasil e consegui acompanhar tranquilo! Só com as legendas, sem da também. Quem for BR e tiver na dúvida, pode assistir que você entende tudo!

  • @samehdhamer6889
    @samehdhamer6889 ปีที่แล้ว +1

    This was really useful for me thank you 🌸🌸🌸

  • @DannyHille
    @DannyHille 2 ปีที่แล้ว +2

    A more compact way to do input handling:
    const keys = {};
    onkeydown=onkeyup=e=>e.repeat||(keys[e.key]=e.type=='keydown'?1:0);
    then do a check like this:
    if(keys.w)console.log('up is pressed'):
    checking if space is pressed:
    if(keys[" "])console.log('space is pressed')

  • @tayliecarlson7830
    @tayliecarlson7830 2 ปีที่แล้ว +3

    Hey Chris! Can you help me?? I am having a problem with the collision detection. Once I added that in the pac man is just on a continuous movement. So, if I press 'd' it will just keep going right until I press another key. For some reason the code player.position.x = 0 & player.position.y = 0 in the if statement(circleCollidesWithRectangle) isn't being read. Do you know why that is happening?

  • @Coding_Asmr_PraDev
    @Coding_Asmr_PraDev 2 ปีที่แล้ว +27

    Can you please tell me yr secret to discipline/consistency

    • @KonflictYT
      @KonflictYT 2 ปีที่แล้ว +3

      Theres no magic trick. Start somewhere, set small goals and stay consistent. “Success is the sum of small efforts repeated day in and day out.” A little bit of commitment per day compounds over time. Good luck!

    • @shanugamer8309
      @shanugamer8309 ปีที่แล้ว

      @ujjawalsingh3805 you are enjoying?

    • @paultapping9510
      @paultapping9510 8 หลายเดือนก่อน

      study less, do more projects

  • @givenmahlangu4720
    @givenmahlangu4720 2 ปีที่แล้ว +1

    Chris you the best bro

  • @shafkatkabir1570
    @shafkatkabir1570 6 หลายเดือนก่อน +1

    what would the problem be with setting the velocity like this:
    case 'w':
    player.velocity.y = -5;
    player.velocity.x = 0;
    console.log(player.velocity);
    break;
    I don't seem to be having any problems with this so far. I'm at 53:42

  • @lucascecin
    @lucascecin 2 ปีที่แล้ว

    Awesome! Thanks for the lesson, Chris!

  • @rishabhsengupta344
    @rishabhsengupta344 ปีที่แล้ว +1

    Guys help! I tried doing this project using reactJS and i keep getting stuck on the ghost collisions. After a few random movements the ghost keep looping left and right over a boundary. Please fuc**** help me, i cant find any damn mistakes

  • @TheFuture36520
    @TheFuture36520 2 ปีที่แล้ว +1

    Chris are you Nikola tesla?
    I've been trying to make this for years couldn't really figure this out properly.
    But you do it like a magic wish 😀😀😀

  • @MovieMovie-m4m
    @MovieMovie-m4m 28 วันที่ผ่านมา

    I watched the collisions part several times only to realize why you need to loop through that boundaries array and making that circle rectangle object.
    *Insert The wire realisation meme*

  • @burakabi_
    @burakabi_ 2 ปีที่แล้ว +1

    You have the best Tutorials :) I like That !

  • @CanalGeekDev
    @CanalGeekDev 2 ปีที่แล้ว +1

    hello Chris, I would add a validation to avid the Boundaries to be created everytime it will blow up the memory and cpu, by using this below:
    if(boundaries.length === 0) {
    ....
    }

  • @18.j
    @18.j 2 ปีที่แล้ว +3

    Thats awesome thank you! Will definitely check pro version cause the game there look amazing

  • @ct_yurk_1510
    @ct_yurk_1510 2 ปีที่แล้ว

    You are a good man. Thank you

  • @nevfelemrecicek
    @nevfelemrecicek 2 ปีที่แล้ว

    I love your video, perfect tutorial

  • @samicat_art
    @samicat_art 2 ปีที่แล้ว

    I love all your videos! I'm trying to learn to code games by myself, since in college all I do is websites. Your easy tutorials motivates me to learn to code, I did the pokemon game and I'm doing this pac-man right now! Lol I still have some inssues with the player going throught the paths xD I just need to see that part 10 times more until I figure out what I did wrong. Keep it up! ^^

  • @isbeb507
    @isbeb507 2 ปีที่แล้ว

    thanks for making this! i was looking for best practices on making, like, menu layouts and such, UI interfaces i suppose.

  • @nowarm
    @nowarm 2 ปีที่แล้ว

    thank you very much ! You are so awesome !!

  • @jellycoding
    @jellycoding 2 ปีที่แล้ว +1

    You should not use this movement code for production. On many keyboards some keys don't register if a key is already pressed (I think they are grouped somehow).

  • @BryanChance
    @BryanChance ปีที่แล้ว

    Priceless tutorial. Thank you so much!

  • @rachelvanderlely6324
    @rachelvanderlely6324 ปีที่แล้ว +1

    why did you use and statements instead of or statements for the collision detection

  • @NavyaVedachala
    @NavyaVedachala 2 ปีที่แล้ว +1

    How do you generate these game assets? Is there a tutorial? Do they have to be same width and height as 40px 40px or are they getting resized?

  • @toffeequeen1338
    @toffeequeen1338 2 ปีที่แล้ว +1

    Do you have a way that once you win the game or you die that the game resets itself automatically?

  • @johnatteo822
    @johnatteo822 2 ปีที่แล้ว +1

    Chris is the pacman premium game available I was looking to purchasing it on your website? by itself or do i have to pay the monthly to access it? Thanks for the courses you make bro!

    • @ChrisCourses
      @ChrisCourses  2 ปีที่แล้ว +1

      Not available yet, I'm pretty behind on courses in general atm, but hope to have that fixed within the next month when I hire an editor. Sorry bout the delay!

    • @johnatteo822
      @johnatteo822 2 ปีที่แล้ว

      @@ChrisCourses oh ok bro cool thanks for the response.. Chris that automated water dispenser is so bad ass dude lmao

    • @ChrisCourses
      @ChrisCourses  2 ปีที่แล้ว

      @@johnatteo822 Haha thanks man, I legit use it every day still, surprisingly big life improvement

    • @atf9406
      @atf9406 2 ปีที่แล้ว

      @@ChrisCourses Hi Chris, I am having trouble with the part which make it easier passing through two walls

  • @fritzpop347
    @fritzpop347 11 หลายเดือนก่อน +1

    I can get my web browser to look like that can anyone help ?

  • @SynisterScientist
    @SynisterScientist 2 ปีที่แล้ว

    @Chris Courses - My ghost is moving erratically but passes through the walls and then goes off screen. What have I messed up on?

  • @jairforero
    @jairforero 2 ปีที่แล้ว +1

    excelent, very thank. nice

  • @nurlykhankopenov
    @nurlykhankopenov ปีที่แล้ว

    I really liked the video, it taught me a lot, thanks for that. But I found one bug for ghost movement simulation, which is when the map is different, and ghost collision array might be empty, like no collision with walls, ghost can move in 4 directions, but the code doesn't handle that case

  • @bemreq
    @bemreq ปีที่แล้ว

    Tried everything and wrote same code lines frame by frame but i can not get my collision logs this logs are empty. Checked everywhere and asked to chat gpt but couldnt fix it the problem ? Any solutions ?

  • @mohamedbelhadi7909
    @mohamedbelhadi7909 ปีที่แล้ว +1

    Mine did not work

  • @起風咯
    @起風咯 2 ปีที่แล้ว +1

    what if add some AI feature on the PACMAN(the small yellow one)

  • @atf9406
    @atf9406 2 ปีที่แล้ว +1

    Hi, it seems like the collition only works on the x - axis for me

  • @dmaberlin
    @dmaberlin ปีที่แล้ว

    suggest some cool tutorials on vanilla js, but in text, book form

  • @ZaynBrando
    @ZaynBrando 2 ปีที่แล้ว

    This is a very good tutorial, but I'm a little lost bc i've reached 17:15 in the video and my draw function isn't working. I've made no syntax errors that I can see. Anyone else struggling? I'm using vs Code.

  • @DishonoredSkull
    @DishonoredSkull ปีที่แล้ว

    How do you make the map stay inside a responsive canvas? I added a second "map" to the left so I have two, however trying to make it run on mobile, the map assets wont stay inside. They go out of the canvas. Their position is moved using a const x and y offset and have tried to modify this to make it stay in the canvas. (I made them lets when doing this, im aware consts cant change)

  • @dmaberlin
    @dmaberlin ปีที่แล้ว

    I have a question - how do you get more effect from rewriting code after the author?
    so that my knowledge is well-established, should I write a similar application after going through the lesson or redo an existing one ?
    what to do, please advise ?

  • @binaryburnout3d
    @binaryburnout3d 2 ปีที่แล้ว +2

    question. could we make a map with only 1 image, like a PNG and then use the Alpha layer for collision?

  • @tonepivk9701
    @tonepivk9701 ปีที่แล้ว

    Hi, I would like to have multiple maps. How can I change maps with function? thanks

  • @flebedev9974
    @flebedev9974 ปีที่แล้ว

    Thanks for the great assets!

  • @zentheplayerrapper8504
    @zentheplayerrapper8504 ปีที่แล้ว

    ;v perfect game bro 👍😎❤👈

  • @VANDTAN
    @VANDTAN ปีที่แล้ว

    The tutorial is awesome but I've reached a super thight spot which I found difficult cause I get the same error always

  • @oxydol3456
    @oxydol3456 ปีที่แล้ว

    Thanks!

  • @BrianRiendeau
    @BrianRiendeau ปีที่แล้ว

    what todo list is this? seems nice to have

  • @goon4031
    @goon4031 ปีที่แล้ว

    amazing

  • @marcholman291
    @marcholman291 ปีที่แล้ว

    Is it just me or does anyone else feel the controls are terribly difficult? So much so I would envision the average player giving up in five or ten seconds. It's the cornering and change of direction. We never really solved that problem where the controls don't easily allow the player to, for example, make a downward turn between two blocks.

  • @EmperorOab
    @EmperorOab 2 ปีที่แล้ว

    Awesome project! I'm genuinely curious on the legality of hosting it though. Is it subject to copyright issues? Asking for a friend ;)

  • @asemotaosasenaga4048
    @asemotaosasenaga4048 2 ปีที่แล้ว

    I totally love your videos but Is it necessary to use java script to draw your player. Can't I use css

  • @messiisthebest
    @messiisthebest 5 หลายเดือนก่อน

    why the hell the ghost movement isnot working

  • @hrishabhjaiswal1620
    @hrishabhjaiswal1620 ปีที่แล้ว

    why we are writing && in colliding condition .. why not or??

  • @brittshook8358
    @brittshook8358 ปีที่แล้ว

    Is the premium tutorial for this available?

  • @jennyferbello2004
    @jennyferbello2004 ปีที่แล้ว

    ¿Alguien sabe como puedo centrar el laberinto en el medio de la página?

  • @ynsbl
    @ynsbl 2 ปีที่แล้ว

    this is really weird my comment just disappear after a few seconds, anyway good luck guys!

  • @keithnieves6921
    @keithnieves6921 2 ปีที่แล้ว

    Hey im having problems rendering the boundaries
    can anyone help the @15:01

  • @huynhphatat3919
    @huynhphatat3919 ปีที่แล้ว

    can you share the full source code?

  • @awesomeblacka4423
    @awesomeblacka4423 9 หลายเดือนก่อน

    2:06:02
    (time frames for every day when i stop)

  • @risingpelican8106
    @risingpelican8106 ปีที่แล้ว

    Can you be my javascript professor?

  • @RommyRandhawa
    @RommyRandhawa ปีที่แล้ว

    you saved my life

  • @SmittyInparadis
    @SmittyInparadis 2 ปีที่แล้ว

    Please post more

  • @yoguy515
    @yoguy515 2 ปีที่แล้ว

    anyone of u guys know how to deploy it...i'm having so much difficulties

  • @haaz386
    @haaz386 ปีที่แล้ว

    doubt? 1:38:00

  • @ariebolotin2173
    @ariebolotin2173 2 ปีที่แล้ว

    23456 had to be intentional

  • @AshwinSKumar
    @AshwinSKumar ปีที่แล้ว

    I used google web designer and I used google web designer.

  • @pegaexpress4335
    @pegaexpress4335 2 ปีที่แล้ว

    I will give you some advice so that you can increase your subscribers and have more views... hire a person who can translate your videos into Spanish, American people are not really interested in programming BUT LATIN ONES ARE SO BELIEVE ME, GET A TRANSLATOR AND YOU WILL GET MORE SUBSCRIBERS

  • @tim.e.l
    @tim.e.l 2 ปีที่แล้ว

    🥵🥵🥵