【GUI】-- 10 貪吃蛇小游戲之靜態面板繪制

GUI編程

04 貪吃蛇小游戲

4.1 第一步:先繪制一個靜態的面板

首先,需要新建兩個類,一個StartGame類作為游戲的主啟動類;一個GamePanel類作為游戲的面板類。此外,再新建一個Data類作為數據中心(存放了小蛇各部分圖像的URL及ImageIcon)。代碼如下:

StartGame:

package com.duo.snake;import javax.swing.*;//游戲的主啟動類
public class StartGame {public static void main(String[] args) {JFrame frame = new JFrame();frame.setVisible(true);frame.setResizable(false);frame.setTitle("貪吃蛇-2023");frame.setBounds(5, 10, 915, 740);frame.setLocationRelativeTo(null);frame.add(new GamePanel());frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}
}

GamePanel:

package com.duo.snake;import javax.swing.*;
import java.awt.*;//游戲的面板
public class GamePanel extends JPanel {@Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);  //起到清屏的作用//先繪制一個靜態的面板Data.header.paintIcon(this, g, 25, 11);g.fillRect(25, 75, 850, 600);this.setBackground(Color.white);}
}

Data:

package com.duo.snake;import javax.swing.*;
import java.net.URL;//數據中心
public class Data {//相對路徑  tx.jpg//絕對路徑  /:相當于當前的項目public static URL headerURL = Data.class.getResource("static/header.png");public static URL upURL = Data.class.getResource("static/up.png");public static URL downURL = Data.class.getResource("static/down.png");public static URL leftURL = Data.class.getResource("static/left.png");public static URL rightURL = Data.class.getResource("static/right.png");public static URL bodyURL = Data.class.getResource("static/body.png");public static URL foodURL = Data.class.getResource("static/food.png");public static ImageIcon header = new ImageIcon(headerURL);public static ImageIcon up = new ImageIcon(upURL);public static ImageIcon down = new ImageIcon(downURL);public static ImageIcon left = new ImageIcon(leftURL);public static ImageIcon right = new ImageIcon(rightURL);public static ImageIcon body = new ImageIcon(bodyURL);public static ImageIcon food = new ImageIcon(foodURL);}

最后,通過StartGame中main方法,顯示當前繪制的靜態窗口如下:

圖1


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160693.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信朋友圈全新玩法,輕松互動,引爆你的社交圈

隨著社交媒體的普及,越來越多的人開始利用朋友圈來展示自己的生活和與朋友互動。而在這個數字時代,定時發圈、跟圈和朋友圈互動已經成為了一種社交習慣。本文將介紹這些功能的概念和一鍵轉發朋友圈的實現方法。 什么是定時發圈、跟圈、朋友圈互動和一鍵轉…

Embedding技術與應用(4): Embedding應用工程探析

編者按:隨著互聯網內容數量的急劇增長,個性化推薦已成為各大科技公司的核心競爭力之一。那么,如何構建一個可靠、高效的基于嵌入技術的推薦系統,使其能夠在實際生產環境中正常運行呢?這是所有從業者都關心的問題。 本文…

git的實驗:cherry-pick,github對比代碼的兩種方式

某個commit,比如 c1,,最早是在a分支做的,當被cherry-pick到b分之后,還是一樣的revision嗎? 實驗1:c1被cherry-pick到別的分支后,revision不變對嗎?(答案是變…

druid keepAlive 導致數據庫連接數飆升

一.背景 應用在執行完某個復雜業務,主要包含20幾個查詢SQL的操作后,會導致數據庫連接池一直升高 druid版本:1.2.11 druid配置文件: spring.datasource.druid.maxActive100 spring.datasource.druid.initialSize20 spring.datas…

python解決登錄圖形驗證碼

摘要:測試過程中經常遇到圖片驗證碼,以下主要是調用百度OCR圖片識別獲取驗證碼,實現登錄 1、百度云申請創建應用

【自動駕駛】一些業內自動駕駛專業術語釋義

Trajectory 軌跡信息,一般都會發布未來5-10秒的trajactory信息。 Trajectory flicker 軌跡抖動 Nudge 道內避障。在維持車道不變的情況下,橫向偏離車道中心以繞開obstacle/agent。 Xlane Nudge 借道避障。借用對向車道或自行車道以繞開obstacle/a…

VMware Workstation 與 Device/Credential Guard 不兼容 解決辦法

問題描述 問題描述: VMware 啟動虛擬機會報錯。無法運行。 錯誤信息:VMware Workstation 與 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 原因分析: 通常原因是 Window 系統開啟了 內置的Hyper-V 虛擬機。 解決方案&…

氣死了,過五關,斬六將,結果被 HR 捅了一刀!!

Hello,大家好,我是 Sunday。 大家有沒有遇到過這樣的事情:“過五關,斬六將。通過了兩輪、甚至是三輪的技術面,最后 HR 面被“捅死”了” 這樣的事情,最近在一位同學身上連續出現了兩次,弄得人…

【資深硬件工程師總結-千兆以太網設計指南】

文章目錄 01通用PCB布線指南02標志焊盤中的接地過孔區示例03EMI注意事項04ESD注意事項 資深硬件工程師總結-千兆以太網設計指南 本應用筆記旨在幫助客戶使用Microchip的10/100/1000 Mbps以太網器件系列設計PCB。本文檔提供有關PCB布線的建 議, PCB 布線是保持信號完…

【算法挨揍日記】day30——300. 最長遞增子序列、376. 擺動序列

300. 最長遞增子序列 300. 最長遞增子序列 題目解析: 給你一個整數數組 nums ,找到其中最長嚴格遞增子序列的長度。 子序列 是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。例如&#…

遞增遞減運算符 ++ -- 前置后置的區別

1 18 運算符-算術運算符-遞增遞減_嗶哩嗶哩_bilibili 2 .1 #include <iostream> using namespace std; int main() {int a 0;int b 0;a ;b ;cout << "a " << a << endl;cout << "b " << b << endl;} 輸出…

whip和whep

原文為runner365.git大佬的文章 原文鏈接&#xff1a;https://blog.csdn.net/sweibd/article/details/124552793 WHIP接口 什么是whip 全稱: WebRTC-HTTP ingestion protocol (WHIP). rfc地址: rfc-draft-murillo-whip-00 簡單說&#xff0c;就是通過HTTP接口能導入webrtc媒…

上位機與plc寫心跳定時掃描連接狀態

方法一&#xff1a;上位機讀plc的某個地址&#xff0c;每秒 置0和置1&#xff0c;plc檢查地址值每3秒值都是1就報錯。 方法二&#xff1a;上位機每兩秒給地址置1&#xff0c;plc一秒讀到1就清除信號&#xff0c;讀到0說明心跳掉線了。

C++電腦組裝項目(涉及知識點:多態)

需求&#xff1a; #include <iostream> #include "Computer.h" #include "AbstractCpu.h" #include "AbstractMemory.h" #include "AbstractVideoCard.h" #include "IntelCpu.h" #include "IntelMemory.h" …

Redis的持久化(新)

Redis中數據都保存在內存&#xff0c;但是內存中的數據變換很快&#xff0c;也很容易丟失&#xff0c;比如連接斷開、宕機停機等等。而Redis提供的數據持久化機制有RDB(Redis DataBase)和AOF(Append Only File)。 1.RDB RDB是指在指定的時間間隔內將內存中的數據集快照寫入到磁…

HTML玩轉超鏈接a標簽

大家應該都知道&#xff0c;a標簽主要是轉跳鏈接&#xff0c;接下來&#xff0c;讓我為大家介紹一下a標簽的使用&#xff01; 主要的作用&#xff1a;從當前頁面進行跳轉 標簽名標簽語義常用屬性單/雙標簽a超鏈接href&#xff1a;要跳轉的具體位置 target&#xff1a;跳轉時如…

第一百七十七回 如何創建垂直方向的Switch

文章目錄 1. 概念介紹2. 思路與方法2.1 實現思路2.2 實現方法3. 示例代碼4. 內容總結我們在上一章回中介紹了"如何創建漸變色邊角"相關的內容,本章回中將介紹" 如何創建垂直方向的Switch".閑話休提,讓我們一起Talk Flutter吧。 1. 概念介紹 我們在前面…

zookeeper單機版的搭建

一 zookeeper的搭建 1.1 上傳zkjar包 1.2 搭建配置 1.解壓壓縮包 [rootlocalhost export]# tar -zxvf zookeeper-3.7.0-bin.tar.gz 2.創建data文件夾 [rootlocalhost export]# cd apache-zookeeper-3.7.0-bin/ [rootlocalhost apache-zookeeper-3.7.0-bin]# ls bin conf…

利用人工智能打破應試教育慣性促進學生思維活化與創新能力培養的研究

全文均為人工智能獨立研究完成 應試教育導致學生迷信標準答案慣性導致思維僵化-移動機器人-CSDN博客 用AI魔法打敗AI魔法-CSDN博客 課題名稱建議&#xff1a;“利用人工智能打破應試教育慣性&#xff0c;促進學生思維活化與創新能力培養研究”。 這個課題名稱明確指出了研究的…

高斯消元(完全主元法 and 部分主元法) C++代碼

部分主元法高斯消元 /* 算法步驟&#xff1a;1.枚舉每一列&#xff0c;找到絕對值最大的一行2.將該行和第一行交換3.將該行行首置為一4.將下面所有行第 i 列置為零 */#include <iostream> #include <cmath>using namespace std; const int N 109; const double e…