如何制作处理旋转的无限/重复世界,就像在这个游戏中一样:
http://bloodfromastone.co.uk/retaliation.html
我通过这样的层次结构编码了我的旋转移动世界:
场景
- mainLayer(CCLayer)
- rotationLayer(CCNode)
- positionLayer(CCNode)
rotationLayer和positionLayer具有相同的大小(现在为4000x4000像素).
我通过旋转rotationLayer来旋转整个世界,并通过移动positionLayer来移动整个世界,这样玩家总是在设备屏幕上保持居中,这是移动和旋转的世界.
现在我想做到这样,如果玩家到达世界的界限(世界被移动,以便世界界限进入与设备屏幕界限接触),那么世界被"包裹"到相反的界限这样世界就是无限的.如果世界不旋转那很容易,但现在它确实如此,我不知道如何做到这一点.我在数学和数学思考方面都很傻,所以我需要一些帮助.
现在我认为我不需要任何与cocos2d-iphone相关的帮助.我需要的是一些方法来计算我的球员是否超出了世界范围,然后以某种方式计算我必须给世界包裹世界的新位置.
我想我必须计算一个圆形的半径,这个圆形将成为我在广场世界中的代工,无论方形世界处于什么角度,都将确保可见的矩形(屏幕)始终位于世界广场.然后我需要一种方法来计算可见的矩形边界是否在边界圆之外,如果是这样的话,我需要一种方法来计算边界圆中的新相对位置以移动世界.所以说明我添加了5张图片.
可见矩形在旋转的方形世界内的边界内部:

可见矩形的顶部在旋转的方形世界中击中边界圆:

旋转的方形世界移动到相反的垂直位置,以便可见矩形的底部现在在旋转的世界内击中边界:

可见矩形顶部的另一个示例是在旋转的方形世界内点击边界以说明不同的场景:

再次旋转的方形世界移动到相反的垂直位置,以便可见矩形的底部现在在旋转的世界内击中边界:

在非旋转的情况下移动positionLayer是我弄清楚的数学,正如我所说,只要世界没有旋转,我就可以解决这个问题,但事实确实如此.移动/定位的world/CCNode(positionLayer)位于旋转的world/CCNode(rotationLayer)内.旋转的rotationLayer的锚点始终位于屏幕的中心,但是当移动的positionLayer位于旋转的rotationLayer内时,它会围绕rotationLayer的锚点旋转.然后我迷失了...当我将positionLayer向下移动以使其顶部边框击中屏幕顶部时我需要将该positionLayer包装为JohnPS描述但不是那么简单,我需要将其包裹在基于矢量的矢量中关于rotationLayer CCNode的旋转.这个我不知道该怎么做.
谢谢
Søren
我正在运行 Android Studio 2020.3.1,在更新到 2020.3.1 Patch 1 时出现此错误:
似乎缺少这个文件:
目录/jre/Contents/Home/Frameworks/JavaNativeFoundation.framework/Versions/A/._JavaNativeFoundation.tbd
有没有我可以用来解决这个问题的解决方法?
谢谢
索伦
我有一个在XML布局中定义的AppCompatButton,我为它设置了一个主题:
android:theme="@style/CustomAccentOverlay"Run Code Online (Sandbox Code Playgroud)
我已经设定:
android:stateListAnimator="@null"Run Code Online (Sandbox Code Playgroud)
删除阴影.我有两个问题.
即使阴影未显示,按钮的高度也会扣除阴影的高度.我应该以其他方式删除阴影,或者我该如何解决这个问题?
按钮有圆角,我希望角落很锋利.我无法在按钮上设置背景,因为我想保持标准的涟漪效果,如果我设置了背景,那就消失了(至少我不知道如果设置背景怎么保持它).我试过设置
<item name="android:bottomLeftRadius">0dp</item>Run Code Online (Sandbox Code Playgroud)
以及CustomAccentOverlay主题的所有其他角落以及相应的样式,但它不起作用.如何在按钮上将拐角半径设置为零?
谢谢
Søren
我正在努力让现有的 .Net 函数应用程序在本地运行。它是在 Windows 上使用 Visual Studio 开发的,但我在 Mac(M1 CPU)上使用 VS Code。我对 .Net 还很陌生,我正在努力弄清楚需要配置什么才能让项目运行。
\n我添加了一个launch.json:
\n{\n "version": "0.2.0",\n "configurations": [\n {\n "name": "Attach to .NET Functions",\n "type": "coreclr",\n "request": "attach",\n "processId": "${command:azureFunctions.pickProcess}"\n }\n ]\n}Run Code Online (Sandbox Code Playgroud)\n和 local.settings.json:
\n{\n "IsEncrypted": false,\n "Values": {\n "AzureWebJobsStorage": "UseDevelopmentStorage=true",\n "FUNCTIONS_WORKER_RUNTIME": "dotnet"\n }\n}Run Code Online (Sandbox Code Playgroud)\n并且项目中已有一个tasks.json:
\n{\n "version": "2.0.0",\n "tasks": [\n {\n "label": "clean (functions)",\n "command": "dotnet",\n "args": [\n "clean",\n "/property:GenerateFullPaths=true",\n "/consoleloggerparameters:NoSummary"\n ],\n "type": "process",\n "problemMatcher": "$msCompile",\n "options": {\n "cwd": "${workspaceFolder}/Naboor.Statistics"\n }\n },\n …Run Code Online (Sandbox Code Playgroud) 即使我相信我确实启用了 multidex,我也达到了 65536 的限制。我的 build.gradle 中有以下内容:
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
}
dexOptions {
preDexLibraries false
jumboMode true
keepRuntimeAnnotatedClasses false
// incremental false
javaMaxHeapSize "2g" // Use gig increments depending on needs
}
}Run Code Online (Sandbox Code Playgroud)
我有自己的应用程序实现,我尝试扩展 MultiDexApplication 并尝试调用 MultiDex.install(this); 在 attachBaseContext (不是同时)中,但我仍然不断收到以下错误:
D8: Cannot fit requested classes in the main-dex file.
fields: 66685 > 65536
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archivesRun Code Online (Sandbox Code Playgroud)
这是否意味着不应用 multidexing,所以即使我尽我所能启用它,我的构建设置中也没有启用 multidex,或者是什么导致了这种情况?有任何想法吗?
谢谢
索伦
我已经查看了用于链接动画的交错动画,但它们对一个小部件的属性使用了一个动画,例如不透明度动画控制淡入,但是如果我想先淡入然后淡出同一个小部件怎么办?我的意思是我已经创建了淡入淡出动画,它用于像这样的小部件不透明度值:
_opacityDontWorry = Tween(
begin: 0.0,
end: 1.0,
).animate(
CurvedAnimation(parent: _animationController, curve: Interval(0.0, 0.75, curve: Curves.easeIn)),
);Run Code Online (Sandbox Code Playgroud)
所以这两个现在像这样绑定在一起:
Opacity(
opacity: _opacityDontWorry.value,
child: Text("Don't worry"),
)Run Code Online (Sandbox Code Playgroud)
这项工作很好,我的不透明度逐渐淡入,但是在淡入之后我希望它在短暂的停顿后淡出,但是我该怎么做?我是创建一个新的 Tween 并用它覆盖 _opacityDontWorry,还是?我在这里是否走在正确的道路上,如何链接多个改变小部件上相同属性的动画?
谢谢
索伦
我正在尝试Flutter,需要为Android和iOS制作一个插件包,并且已经开始使用Android。我需要与之通信的Android Java代码使用字节数组(byte [])作为其某些方法的输入和返回类型。在Dart中此映射到什么?
我安装了以下软件包:
我有我的上下文文件类:
namespace API.Context
{
public class EventContext : DbContext
{
public EventContext(DbContextOptions<EventContext> options) : base(options)
{
}
public DbSet<Property> Property { get; set; }
public DbSet<Event> Event { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Event>(entity =>
{
entity.HasKey(e => e.ID);
entity.Property(e => e.Title).IsRequired();
});
modelBuilder.Entity<Property>(entity =>
{
entity.HasKey(e => e.ID);
entity.Property(e => e.Key).IsRequired();
entity.Property(e => e.Value).IsRequired();
entity.HasOne(d => d.Event)
.WithMany(p => p.Properties);
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的 Program.cs:
using API.Context;
using Microsoft.EntityFrameworkCore; …Run Code Online (Sandbox Code Playgroud) 我有一个简单的ActionMailer类,如下所示:
class MyMailer < ActionMailer::Base
def mail(from, to, cc, bcc, subject, message, sent_at = Time.now)
@subject = subject
@recipients = to
@from = from
@cc = cc
@bcc = bcc
@sent_on = sent_at
@body["message"] = message
@headers = {}
end
endRun Code Online (Sandbox Code Playgroud)
我从控制器那里得到它:
MyMailer.deliver_mail(mail.from, mail.to, mail.cc, mail.bcc, mail.subject, mail.message)Run Code Online (Sandbox Code Playgroud)
我更喜欢保持简单,没有模板等,它是一个没有视图的web服务.
如何更改它以便能够发送带嵌入图像的HTML邮件(我的意思是img标签)?我需要附加正确的mime类型的图像,并设置正确的mime类型的身体,但如何?
谢谢
我有一个我想要MKMapView放大的中心位置以及一个位置列表(纬度/经度)。我想根据此位置列表设置缩放级别(距离),以便同时可以看到许多这些位置MKMapView,但具有最小缩放级别(或最大距离),以便我MKMapView不会缩放太多了。
假设我有一个包含 10 个位置的列表,但其中一个位置离我的中心位置太远,如果我显示其中的一个位置MKMapView将被缩小到很多,我该如何计算 的距离参数MKCoordinateRegionMakeWithDistance?
我希望我能很好地解释我的问题,我认为我很难解释它。
谢谢
索伦