This is a library to make a game 3d on ios or macos with uikit (macos with mac catalyst)
BobbyGame3D
là thư viện Objective-C cho iOS/macOS (SceneKit + UIKit), giúp bạn dễ dàng tạo geometry 3D, material, và shader với cache tự động để tối ưu hiệu năng.
BobbyGame3D.h
và BobbyGame3D.m
vào project của bạn.#import <SceneKit/SceneKit.h>
#import <UIKit/UIKit.h>
#import "BobbyGame3D.h"
// Tạo một sphere với radius = 1.0
SCNGeometry *sphere = [BobbyGeometry geometryWithType:@"sphere"
parameters:@{@"radius": @(1.0)}];
// Tạo một box với width=1, height=2, length=3, chamferRadius=0.1
SCNGeometry *box = [BobbyGeometry geometryWithType:@"box"
parameters:@{@"width": @(1.0),
@"height": @(2.0),
@"length": @(3.0),
@"chamferRadius": @(0.1)}];
// Lấy material màu đỏ
SCNMaterial *redMaterial = [BobbyGame3D materialWithColor:[UIColor redColor]];
// Gán material cho geometry
BobbyGeometry *geomWrapper = [[BobbyGeometry alloc] init];
geomWrapper.geometry = sphere;
[geomWrapper setMaterial:redMaterial];
NSString *fragmentShader = @"_output.color.rgb = _output.color.rgb * vec3(1.0, 0.5, 0.5);";
[geomWrapper applyShader:fragmentShader];
SCNShaderModifierEntryPointFragment
được dùng mặc định.SCNScene *scene = [SCNScene new];
SCNNode *node = [SCNNode node];
node.geometry = geomWrapper.geometry;
[scene.rootNode addChildNode:node];
SCNView *sceneView = [[SCNView alloc] initWithFrame:self.view.bounds];
sceneView.scene = scene;
[self.view addSubview:sceneView];
BobbyGeometry
với nhiều loại geometry (cylinder, torus, plane…) theo nhu cầu.Nếu bạn muốn, mình có thể viết thêm README phiên bản “Dùng BobbyGame3D từ Nim”, tức là hướng dẫn Nim gọi ObjC backend trực tiếp, tận dụng geometry, material, shader.
Bạn có muốn mình làm luôn không? ```