我刚想到用JS和Canvas绘制棋盘的想法,我有这样的代码,它可以用for循环绘制方框。
canvas = document.getElementById("canvas");
ctx = canvas.getContext("2d");
var x, y,
boxWidth = 30,
boxHeight = 30;
for (x = 0; x < canvas.width; x += boxWidth) {
for (y = 0; y < canvas.height; y += boxHeight) {
ctx.beg
我需要一个大的长方形填充一个棋盘图案,它必须能够缩放。当我一个一个地画每个正方形的时候,最终的结果是我想要的,但是一旦我有成千上万的方块来创建每一帧,这是一种非常低效的绘制方法。为了解决这个问题,我决定创建一个模式画布,然后用一个简单的模式填充整个区域。
下面是这两种方法的示例:
左边的黑色棋盘图案是用画布创建的,红色棋盘是通过绘制每个方格创建的。
这是可以工作但速度慢的代码:
//unitWidth and unitHeight are the dimensions of each square. Since the checkerboard uses squares, they are t
我有一个负责在屏幕上绘制矩形的函数,它在我的程序的主循环中,它这样做:
DrawRetangle (SDL_Renderer * Renderer, SDL_Rect MyRect) {
// Clean the renderer
SDL_RenderClear (Renderer);
// Position x, y, width and height of the rectangle.
MyRect = {x, y, width, height};
// Rectangle border color
SDL_SetRenderDrawCo
我正在创建一个游戏,允许一个玩家通过键盘上的箭头键输入来移动棋盘。目标是收集棋盘上的宝石,避免怪物随意移动。我在GUI中绘制我的棋盘时遇到了问题。每个"tile“、"item”和"character“都是用简单、通用的绘制方法绘制的,比如drawRect和drawOval。但是,我不知道如何将它们绘制在一组面板中。
我的问题出在构造函数还是画图方法上?帮助!
public class LevelPanel extends JPanel {
private static Player player;
private Level level;
pri
我正在玩的锈蚀和想要画一个矩形和一个点在屏幕上。虽然这似乎在一定程度上起到了作用,但我得到了各种不同颜色的垃圾像素,这些像素围绕着绘制所需工件的区域。为什么会这样呢?如果这有帮助的话,我在MacBook Pro上有一个M1 Max。
下面是代码:
extern crate sdl2;
use sdl2::event::Event;
use sdl2::pixels::Color;
use sdl2::rect::Point;
use sdl2::rect::Rect;
pub fn main() {
let sdl_context = sdl2::init().unwra