Code Snake Game in Java
ฝัง
- เผยแพร่เมื่อ 12 ก.ย. 2024
- How to code a snake game in Java for beginners! Learn how to create a game of snake in Java using the awt and swing graphics library. Throughout the tutorial, you will learn how to create a graphical user interface (GUI) to display the Snake game, create the game loop, listen for Key presses to move the snake, use the ArrayList to store the snake's segments, and check collision and out of bounds for game over.
Setup Java with Visual Studio Code:
• How to set up Java in ...
Code: github.com/ImK...
Website: www.kennyyipco...
Java Game Programming Projects Playlist:
• Java Game Programming ...
JavaScript Game Programming Projects Playlist:
• JavaScript Game Progra...
Subscribe for more coding tutorials 😄!
Check out the playlist of web project tutorials here!
th-cam.com/play/PLnKe36F30Y4Y1XQOqNsL9Fgg_p6nYhcng.html
Code Snake Game in JavaScript: th-cam.com/video/baBq5GAL0_U/w-d-xo.html
Code Snake Game in Python: th-cam.com/video/FtqWCo1_I4g/w-d-xo.html
Got a tutorial suggestion? Let me know down below!
This is just perfect videos for beginners that have learned the lauguage and how it works but needs to see how you use the code in easy small programs. There are tons of "learn how to program"-videos but with no usable examples. That is just like learning some chord on the guitar but no song to play. YT needs a lot more songs to play, like this. You also have a perfect voice for this and no messing around with side tracks. This is the equalivent to BASIC programs that you could find in paper magazines in the 80s. Just perfect! Keep them coming. Thank you.
Thank you for the opportunity of coding a snake game, it was very beneficial to my coding journey as a student an I do look forward to future projects. You made my entire week awsome.😊
I'm so grateful for your videos! It's so much more fun learning Java when there's some GUI and fun games your working with. I've been slowly learning Java for the past year now, but it's all CLI apps in every tutorial. I'm following your tutorial now and I'm learning so much from them, but I know I'll be coming back in a couple of month and do them all over again when I know even more and probably understand even more of all the things your doing.
I just wish you could explain even more of what your doing and why. For an example:
why do you need to add "true" at the end when you're changing the tiles for the snake and the food from 2D to 3D?
Keep up the good work and I promise to recommend this channel to all my classmates (I'm currently studying QA-testing and were using Java)
I try not to overexplain sometimes so i might not explain 1-2 parameters, but on some IDEs (or if you use vscode), hovering over the function will tell you what the params mean. Basically the boolean value for 3D indicates whether it should be 3D raised or etched. Meaning, should it look like the top of a cube (true), or should it look like a cube shape hole in the ground (false).
Thank You for this video!❤@@KennyYipCoding
May I ask how did you learn to code? Did you learn by creating games?@@KennyYipCoding
How are you doing in learning Java?
@@dovydasbalciunas5002 yes! so people focus too much on syntax and "correctness", instead it is better to learn by building projects :) So I can pretty much code 2D games in any programming language because I understand the concepts, even if I'm not an expert on said language.
thanks for explaining all the complicated parts! really helped me out a lot!
The way u explanation for use of each line of code is ❤❤❤ best i have ever seen, thanks you
Thanks for the flawless tutorial!
Great tutorial, thanks for the clear and concise logic.
Thank you so much TTTOTTTT i really needed this for our final project
Thanks! you have a knack for story telling, which is good for in this line of work (media).
I followed your tutorial on how to code a snake game in Javascript, I think Java is harder but let's see 😁❤️
Thanks for your videos 💙
Let me know how it goes!
Support from India❤️
Thank you for this video. it was very helpful and understandable.
Love from India ❤❤😊😊
maaaaaaaaan i love your videos you are taking me to the next level
Obrigado que tutorial incrível, ficou muito bom esse jogo. Assisti vários vídeos de como criar um jogo da cobrinha, e eu percebi que existe várias inúmeras maneiras de fazer um jogo mesmo sendo parecido, más com instruções diferentes, Obrigado vc explicou muito bem .
the best snake video on entire you tube
I have a question, if i press two directions at the same time when going the opposite direction, it bugs out and ends the game, how do i fix this?
Just did the project and it did help me clear my java fundamentals!I just had one idea,how can I increase the speed of the snake each time it eats the food?
Hmm looks complicated.. The speed increases with a lower level of the Timer. Maybe you can use and adapt to the same system as the velocity.
@@ronin6397 thanks for your suggestion!
Does this code work on BlueJ too?
First of all thank you very much for this tutorial! Apreciate it!
I have a dual boot machine, I tried this tutorial first on Ubuntu and it didn't work, it didn't open the window when I executed the program on 3:44, then I switched to windows 10 and it worked fine.
Do you think is there something wrong with my machine or with how I installed java on Ubuntu? Or does this code doesn't work on Ubuntu?
Hello Kenny, I am wondering why when I type in line #9.....frame.setVisible (true);
and line #11....frame.setsetLocationRelativeTo(null);
a "b:" and a "c:" are added automatically to the "true" and "null" like (b:true) and (c:null).
Is it there an "auto-correction command" in the VS that I can deselect?
Wonderful videos and thanks for teaching me VS and Java.
I think you might be referring to the parameter help box.
th-cam.com/video/BB0gZFpukJU/w-d-xo.htmlsi=W-lNBaE7m-T-l-cT
In my pinned comment for the how to set up java in vs code video, you will find instructions on how to disable this feature
That was very good tutorial i learned alot by following along and tweaking! I just have a quick observation regarding the draw(Graphics g) function you created for both the snake and the food graphics. Coming from JS i find it so odd the behavior of both the .setcolor and .fillRect methods, because at first I was so confused of how these methods were targeting the desired tiles but then i figured it out after reading the docs, apparently all subsequent graphics after .setColor will be drawn with said color until specified otherwise. It just seems unecessaribly verbose if I wanted to generate a more complex pattern but i guess thats just Java.
Yes you can think of setColor as pinking a color pencil, and you only switch colors after calling setColor (picking another pencil) again! I also have a snake tutorial in JS if you want to see how it’s done in JS
hey thanks for the amazing video! Next time, could you explain a little bit why you written some of the code?
Thanks from Canada!
Hi! Thanks for watching! Let me know what parts of the code were confusing for feedback!
@@KennyYipCoding Yeah, I agree. Sometimes you just add something and I wonder why and how you knew that.
Still, your videos are great! There's hardly anyone doing any usable Java tutorials that's not CLI
Hmm, at the point of 20:30, I get an error on the line:
gameLoop = new Timer(100, this);
It says that "The constructor Timer(int, SnakeGame) is undefined
And, the line:
gameLoop.start();
Has the error "The method start() is undefined for the type Timer"
Any idea what this might mean?
+1 "
bro did you solve it I'm getting the same error
hello i had the same problem but as soon as i deleted "import java.util.Timer;" the code ran properly and i had no issues.Try it.
Thanks for the latest info.
Perfect It really helped 😊
This seems like a really cool video! I'm new to programming and often don't know what I'm doing, but I'm trying to copy the code down, and I get the error: package javax.swing does not exist(compiler.err.doesnt.exist) after typing import javax.swing.*; I have the java extension pack and a JDK that works for other programs, but not here. Does anyone know what might be happening? Thanks!
Appreciate this tutorial bro
Thank you for the helpful video
Thank you so much bro finally i made snake game 😊❤
Really cool. Thanks
Question: Why do you need to declare all the stuff for the frame. and then declare stuff again in another class so it can be drawn on?
can you build a platformer game in java?
Thenks bro i love you
Thank you
❤ from India
10/10
Thank you very much!
where are you from?
perfect brother keep up
The grid isn't showing up. There are no errors as the program runs. I'm not sure if its because im on a mac and hes using windows but the program produces nothing when I run it.
Do you have javafx experiance, it is possibile too? Snake game?
Tks for the video, but I get bug: when i press left down right sequence fastly, game over.
Can u fix that, it happen when score is greater than two
Awesome
Sir please upload java from beginning please sir
Love from India❤
I can´t run the code,I think it´s because the javax.swing feature is not working, but I´ve written it exactly how you did, so I am confused a little bit.
Sorry if there is a mistake on my side, but I´d be really happy if you could help me with that.
I set up Java in vscode like you in your tutorial, but I could´ve done a mistake, so I please help me if you can.
Also thank xou for creating videos like this.
Can we do this in scanner class?
Is there any idea how can I put a button that says "Start Over" and the game resets from the start again. When u lose, u have to close and run it again, wonder how can I do that, beginner btw peace.
Doing it with a button is unnecessary, you can add a check for a key in the key pressed function, and check if gameOver, if so, flip gameOver back to false and reset variables back to starting state. Ex) set score back to 0, clear the snake body parts array, place the food randomly.
@@KennyYipCoding thanks big time
i have a question, if we use random for the food, will it spaw inside the snake ?
Yes but it is very unlikely to collide with the snake’s head given the total number of square available.
awesome content
Thank you❤️
I have made something similar too can I share its link?
thankss
Thank u
Hi bro! Thnx for lessons.
I have a problem with class "tile". This class not found in my IDE. Why? My IDE tell me "do not find symbol "tile".
I wouldn’t be able to tell. Did you make a typo? Ex) Tile, not tile. It should also say which line your issue is coming from
@@KennyYipCoding I'm writing on mac os, maybe that's the problem?
@@KennyYipCoding I understand that Tile and tile are completely different things, but I can't use it myself, because the IDE does not recognize it
@@olehliashyk6988
perhaps a problem with your project setup? is Tile in a different class file?
@@KennyYipCoding I don't have a Tile class at all. I thought it was the same as JFTame etc. And because of that I can't continue my studies (((
nice
at the point of 20:30, I get an error on the line:
gameLoop = new Timer(100, this);
It says that "The constructor Timer(int, SnakeGame) is undefined
And, the line:
gameLoop.start();
Has the error "The method start() is undefined for the type Timer"
Same here
I figured out our issue we IMPORTED THE WRONG TIMER
@@COZYTapezz How do we import the right one?
I found how to fix it!
@@COZYTapezzthank you
new subs here
is anyone know how to restart game from which key
u just have to make one in the keyPressed function.
Here is a code just paste it in there:
if (e.getKeyCode() == KeyEvent.VK_SPACE){
snakeHead = new Tile(5, 5);
snakeBody = new ArrayList();
placeApple();
velocityX = 0;
velocityY = 0;
gameOver = false;
}
The best way to appreciate you is by Subscribing. Thanks for this video. Can you please create a soccer game development tutorial.
grate
nice video. if it bothers you that the snake goes in with and and one more body tile in the boarder and doesn't die, just do - 1 at the boardWith and boardHeight like this: if (snakeHead.x*tileSize < 0 || snakeHead.x*tileSize > boardWidth - 1||
snakeHead.y*tileSize < 0 || snakeHead.y*tileSize > boardHeight - 1){
gameOver = true;
}
AI:🗿🗿
he i like you but java dont and thank you for letting me see thise because now i now java is not a fit form me but a fun learning experiense (love ur vids btw)
сду перваши вы тут?
аххавхах
Thank you for this video, it help to learn how write java code :) !
I try tobuild a restart function after a game over. For exemple, when you press the space key, it restart the snake game. I failed but, can you advice or give food for thought please ?
Thank you in advance.
I tried this :
boolean restart = false;
public void keyPressed(KeyEvent e) {
...
// restart function
if (e.getKeyCode() == KeyEvent.VK_SPACE && gameOver) {
restart = true;
}
}
@Override
public void actionPerformed(ActionEvent e) {
...
if (gameOver) {
gameLoop.stop();
if (restart) {
gameOver = false;
gameLoop.restart();
}
}
}