返回代码库

安卓版俄罗斯方块开发

4.0
en移动开发安卓开发俄罗斯方块游戏编程

提示语

create a tetris game for android

生成结果

import React, { useState, useEffect } from 'react';
import './App.css';

const App = () => {
  const [board, setBoard] = useState(Array(20).fill(Array(10).fill(0)));
  const [piece, setPiece] = useState({ shape: [[1]], position: { x: 0, y: 0 } });
  const [score, setScore] = useState(0);

  useEffect(() => {
    const handleKeyDown = (event) => {
      switch (event.key) {
        case 'ArrowLeft':
          movePiece(-1);
          break;
        case 'ArrowRight':
          movePiece(1);
          break;
        case 'ArrowDown':
          dropPiece();
          break;
        default:
          break;
      }
    };
    window.addEventListener('keydown', handleKeyDown);
    return () => window.removeEventListener('keydown', handleKeyDown);
  }, [piece]);

  const movePiece = (direction) => {
    setPiece(prev => ({
      ...prev,
      position: { ...prev.position, x: prev.position.x + direction }
    }));
  };

  const dropPiece = () => {
    setPiece(prev => ({
      ...prev,
      position: { ...prev.position, y: prev.position.y + 1 }
    }));
  };

  const renderBoard = () => {
    return board.map((row, i) => (
      <div key={i} className="flex">
        {row.map((cell, j) => (
          <div key={j} className={`w-8 h-8 border ${cell ? 'bg-blue-500' : 'bg-gray-200'}`}></div>
        ))}
      </div>
    ));
  };

  return (
    <div className="flex flex-col items-center justify-center min-h-screen bg-gray-100">
      <div className="text-2xl font-bold mb-4">Tetris</div>
      <div className="bg-white p-4 shadow-lg rounded-lg">
        {renderBoard()}
      </div>
      <div className="mt-4 text-xl font-semibold">Score: {score}</div>
      <div className="mt-4 text-sm text-gray-600">© 2025 Tetris Inc.</div>
    </div>
  );
};

export default App;

更多推荐

查看全部